Merge "Use enhanced estimate battery info when available"
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 78c227f..b04c8ab 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -166,8 +166,6 @@
                 android:value="com.android.settings.category.ia.homepage"/>
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
                 android:value="com.android.settings.network.NetworkDashboardFragment"/>
-            <meta-data android:name="com.android.settings.summary"
-                android:resource="@string/network_dashboard_summary"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -193,8 +191,6 @@
                 android:value="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment"/>
             <meta-data android:name="com.android.settings.category"
                 android:value="com.android.settings.category.ia.homepage"/>
-            <meta-data android:name="com.android.settings.summary"
-                android:resource="@string/connected_devices_dashboard_summary"/>
             <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
                 android:value="true" />
         </activity>
@@ -1497,7 +1493,7 @@
         <!-- Second and third-level settings -->
 
         <!-- Lock screen settings -->
-        <activity android:name="ConfirmDeviceCredentialActivity"
+        <activity android:name=".password.ConfirmDeviceCredentialActivity"
             android:exported="true"
             android:theme="@android:style/Theme.NoDisplay">
             <intent-filter android:priority="1">
@@ -1505,9 +1501,13 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
+        <!-- Activity alias for compatibility -->
+        <activity-alias android:name=".ConfirmDeviceCredentialActivity"
+            android:targetActivity=".password.ConfirmDeviceCredentialActivity"
+            android:exported="true" />
 
         <!-- Note this must not be exported since it authenticates the given user -->
-        <activity android:name="ConfirmDeviceCredentialActivity$InternalActivity"
+        <activity android:name=".password.ConfirmDeviceCredentialActivity$InternalActivity"
             android:exported="false"
             android:permission="android.permission.MANAGE_USERS"
             android:resizeableActivity="false"
@@ -1548,10 +1548,10 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="ConfirmLockPattern"
+        <activity android:name=".password.ConfirmLockPattern"
             android:theme="@style/GlifTheme.Light"/>
 
-        <activity android:name="ConfirmLockPassword"
+        <activity android:name=".password.ConfirmLockPassword"
             android:windowSoftInputMode="stateHidden|adjustResize"
             android:theme="@style/GlifTheme.Light"/>
 
@@ -1593,17 +1593,17 @@
         </activity>
 
         <!-- Note this must not be exported since it returns the password in the intent -->
-        <activity android:name="ConfirmLockPattern$InternalActivity"
+        <activity android:name=".password.ConfirmLockPattern$InternalActivity"
             android:exported="false"
             android:theme="@style/GlifTheme.Light"/>
 
         <!-- Note this must not be exported since it returns the password in the intent -->
-        <activity android:name="ConfirmLockPassword$InternalActivity"
+        <activity android:name=".password.ConfirmLockPassword$InternalActivity"
             android:exported="false"
             android:windowSoftInputMode="adjustResize"
             android:theme="@style/GlifTheme.Light"/>
 
-        <activity android:name="SetupChooseLockGeneric"
+        <activity android:name=".password.SetupChooseLockGeneric"
             android:taskAffinity="com.android.wizard"
             android:theme="@style/GlifTheme.Light"
             android:label="@string/lock_settings_picker_title">
@@ -1613,7 +1613,7 @@
             </intent-filter>
         </activity>
 
-        <activity android:name="ChooseLockGeneric"
+        <activity android:name=".password.ChooseLockGeneric"
             android:label="@string/lockpassword_choose_lock_generic_header"
             android:excludeFromRecents="true"
             android:exported="false" />
@@ -1660,27 +1660,27 @@
                 android:resource="@string/suggested_fingerprint_lock_settings_summary" />
         </activity>
 
-        <activity android:name="ChooseLockGeneric$InternalActivity" android:exported="false"
+        <activity android:name=".password.ChooseLockGeneric$InternalActivity"
+            android:exported="false"
             android:label="@string/lockpassword_choose_lock_generic_header"
-            android:excludeFromRecents="true"
-        />
+            android:excludeFromRecents="true" />
 
-        <activity android:name="SetupChooseLockPattern"
+        <activity android:name=".password.SetupChooseLockPattern"
             android:exported="false"
             android:taskAffinity="com.android.wizard"
             android:theme="@style/GlifTheme.Light" />
 
-        <activity android:name="ChooseLockPattern"
+        <activity android:name=".password.ChooseLockPattern"
             android:exported="false"
             android:theme="@style/GlifTheme.Light" />
 
-        <activity android:name="SetupChooseLockPassword"
+        <activity android:name=".password.SetupChooseLockPassword"
             android:exported="false"
             android:taskAffinity="com.android.wizard"
             android:theme="@style/GlifTheme.Light"
             android:windowSoftInputMode="stateVisible|adjustResize" />
 
-        <activity android:name="ChooseLockPassword"
+        <activity android:name=".password.ChooseLockPassword"
             android:exported="false"
             android:theme="@style/GlifTheme.Light"
             android:windowSoftInputMode="stateVisible|adjustResize"/>
@@ -1876,6 +1876,20 @@
                 android:value="true" />
         </activity>
 
+        <!-- The opposite of DevelopmentSettingsActivity, it's no-op and only enabled when the real
+             activity is disabled to be CTS compliant. -->
+        <activity
+            android:name=".development.DevelopmentSettingsDisabledActivity"
+            android:icon="@drawable/ic_settings_development"
+            android:label="@string/development_settings_title"
+            android:theme="@android:style/Theme.NoDisplay">
+            <intent-filter android:priority="-1">
+                <action android:name="android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
+                <action android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
         <activity android:name="Settings$PrintSettingsActivity"
                 android:label="@string/print_settings"
                 android:icon="@drawable/ic_settings_print"
diff --git a/res/drawable-hdpi/empty_search_results.png b/res/drawable-hdpi/empty_search_results.png
new file mode 100644
index 0000000..290f0ed
--- /dev/null
+++ b/res/drawable-hdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-mdpi/empty_search_results.png b/res/drawable-mdpi/empty_search_results.png
new file mode 100644
index 0000000..9ef49a6
--- /dev/null
+++ b/res/drawable-mdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xhdpi/empty_search_results.png b/res/drawable-xhdpi/empty_search_results.png
new file mode 100644
index 0000000..92a9392
--- /dev/null
+++ b/res/drawable-xhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xxhdpi/empty_search_results.png b/res/drawable-xxhdpi/empty_search_results.png
new file mode 100644
index 0000000..894ed7b
--- /dev/null
+++ b/res/drawable-xxhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable-xxxhdpi/empty_search_results.png b/res/drawable-xxxhdpi/empty_search_results.png
new file mode 100644
index 0000000..8f12e96
--- /dev/null
+++ b/res/drawable-xxxhdpi/empty_search_results.png
Binary files differ
diff --git a/res/drawable/ic_settings_accessibility.xml b/res/drawable/ic_settings_accessibility.xml
index 34c0bdd..1570312 100644
--- a/res/drawable/ic_settings_accessibility.xml
+++ b/res/drawable/ic_settings_accessibility.xml
@@ -21,5 +21,5 @@
         android:tint="?android:attr/colorControlNormal">
     <path
         android:fillColor="#FFFFFFFF"
-        android:pathData="M12.0,2.0c1.1,0.0 2.0,0.9 2.0,2.0s-0.9,2.0 -2.0,2.0 -2.0,-0.9 -2.0,-2.0 0.9,-2.0 2.0,-2.0zm9.0,7.0l-6.0,0.0l0.0,13.0l-2.0,0.0l0.0,-6.0l-2.0,0.0l0.0,6.0L9.0,22.0L9.0,9.0L3.0,9.0L3.0,7.0l18.0,0.0l0.0,2.0z"/>
+        android:pathData="M20.5 6c-2.61.7-5.67 1-8.5 1s-5.89-.3-8.5-1L3 8c1.86.5 4 .83 6 1v13h2v-6h2v6h2V9c2-.17 4.14-.5 6-1l-.5-2zM12 6c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"/>
 </vector>
diff --git a/res/drawable/no_search_results.xml b/res/drawable/no_search_results.xml
deleted file mode 100644
index a75a443..0000000
--- a/res/drawable/no_search_results.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--
-  Copyright (C) 2017 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-
-  -->
-
-<vector android:height="24dp" android:viewportHeight="267.9"
-    android:viewportWidth="236.3" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
-    <path android:fillAlpha="0.9" android:fillColor="#00000000"
-        android:pathData="M18,-19c0,-0.4 0,-0.5 -0.3,-0.3l-12,7c-0.3,0.2 -0.2,0.5 0.1,0.6l11.9,7C18,-4.5 18,-4.7 18,-5V-19z"
-        android:strokeColor="#FFFFFF" android:strokeWidth="2"/>
-    <path android:fillAlpha="0.9" android:fillColor="#00000000"
-        android:pathData="M18.9,-12c0,-3.8 -3.1,-6.9 -6.9,-6.9c-3.8,0 -6.9,3.1 -6.9,6.9c0,3.8 3.1,6.9 6.9,6.9C15.8,-5.1 18.9,-8.2 18.9,-12z"
-        android:strokeColor="#FFFFFF" android:strokeWidth="1.8033"/>
-    <path android:fillAlpha="0.9" android:fillColor="#00000000"
-        android:pathData="M19,-5.7C19,-5.4 18.6,-5 18.2,-5H5.8C5.4,-5 5,-5.4 5,-5.7v-12.6C5,-18.6 5.4,-19 5.8,-19h12.4c0.4,0 0.8,0.4 0.8,0.7V-5.7z"
-        android:strokeColor="#FFFFFF" android:strokeWidth="2"/>
-    <path android:fillColor="#FAFAFA" android:pathData="M118.2,134.4m-118.2,0a118.2,118.2 0,1 1,236.4 0a118.2,118.2 0,1 1,-236.4 0"/>
-    <path android:fillColor="#F5F5F5" android:pathData="M22.8,239L96,206.2c0.2,-0.1 0.3,-0.1 0.5,-0.1l117.3,23c0.7,0.2 0.9,1.2 0.2,1.5l-75.9,37.2c-0.2,0.1 -0.3,0.1 -0.5,0.1L23,240.5C22.2,240.3 22.1,239.3 22.8,239z"/>
-    <path android:fillColor="#E8E8E8" android:pathData="M35.6,76.5l102,17.3l0,167.4l-102,-23.2z"/>
-    <path android:fillColor="#E8E8E8" android:pathData="M35.7,19.6l102,17.3l0,79.2l-102,-23.2z"/>
-    <path android:fillColor="#EFEFEF" android:pathData="M35.7,19.6l66.6,-19.6l100.5,19.1l-65.1,18.5z"/>
-    <path android:fillColor="#00000000"
-        android:pathData="M37.6,131.9L135.2,150"
-        android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
-    <path android:fillAlpha="0.5" android:fillColor="#00000000"
-        android:pathData="M39.1,185.3L132.3,204.8"
-        android:strokeColor="#C1C1C1" android:strokeWidth="0.1816"/>
-    <path android:fillColor="#00000000"
-        android:pathData="M137.7,147.6L116.5,154.5"
-        android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
-    <path android:fillColor="#00000000" android:pathData="M35.7,142.2"
-        android:strokeColor="#E0E0E0" android:strokeWidth="0.1816"/>
-    <path android:fillAlpha="5.000000e-02" android:fillColor="#FF000000" android:pathData="M35.7,140.9l101.7,9.2l0,33.1l-101.8,-21.3z"/>
-    <path android:fillColor="#CECECE" android:pathData="M71,36.9l28.8,5l0,5.8l-28.8,-5.3z"/>
-    <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M71,36.9l28.8,5l0,1.7l-28.8,-5.3z"/>
-    <path android:fillAlpha="0.5" android:fillColor="#CECECE" android:pathData="M68.4,147.3l28.8,5.1l0,5.8l-28.8,-5.4z"/>
-    <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M68.4,147.3l28.8,5.1l0,1.7l-28.8,-5.4z"/>
-    <path android:fillAlpha="0.7" android:fillColor="#CECECE" android:pathData="M68.4,201.2l28.8,5.4l0,5.8l-28.8,-5.7z"/>
-    <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M68.4,201.2l28.8,5.4l0,1.6l-28.8,-5.6z"/>
-    <path android:fillColor="#EAEAEA" android:pathData="M16.2,80.3l100.3,18.1l0,58.5l-100.3,-20.2z"/>
-    <path android:fillColor="#EFEFEF" android:pathData="M137.7,37.6l0,53.9l-21.2,6.9l0,58.5l21.2,-6.9l0,111.1l65.1,-30l0,-212z"/>
-    <path android:fillColor="#E57373" android:pathData="M16.2,80.3l19.5,-8.2l0,11.7z"/>
-    <path android:fillAlpha="0.6" android:fillColor="#E57373" android:pathData="M137.7,91.5l-102,-19.4l0,11.7l80.8,14.6z"/>
-    <path android:fillColor="#CECECE" android:pathData="M47.2,95.5l28.8,5l0,5.8l-28.8,-5.2z"/>
-    <path android:fillAlpha="0.1" android:fillColor="#1F1F1F" android:pathData="M47.2,95.5l28.8,5l0,1.7l-28.8,-5.2z"/>
-    <path android:fillColor="#EAEAEA" android:pathData="M35.7,72.1L35.7,72.1l-19.6,8.1l0,0.1l0,0l100.3,18.1l0,0l0,0l21.6,-7L35.7,72.1zM116.5,97.5L19.4,80l16.4,-6.8L134,91.8L116.5,97.5z"/>
-</vector>
diff --git a/res/layout-land/confirm_lock_password.xml b/res/layout-land/confirm_lock_password.xml
index 63b7e48..0cc9339 100644
--- a/res/layout-land/confirm_lock_password.xml
+++ b/res/layout-land/confirm_lock_password.xml
@@ -22,7 +22,6 @@
     <include layout="@layout/confirm_lock_background_base" />
 
     <LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@+id/topLayout"
         android:orientation="vertical"
         android:layout_width="match_parent"
@@ -45,18 +44,12 @@
             android:layout_marginEnd="24dp"
             android:layout_marginTop="8dp"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            />
-
-        <View
-            android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="1"/>
+            android:layout_height="wrap_content"/>
 
         <FrameLayout
-            android:layout_height="wrap_content"
             android:layout_width="match_parent"
-            android:orientation="horizontal">
+            android:layout_height="0dp"
+            android:layout_weight="1">
 
             <Button
                 style="@android:style/Widget.Material.Button.Borderless"
@@ -69,24 +62,31 @@
                 android:layout_marginEnd="8dp"
                 android:layout_marginBottom="14dp"/>
 
-            <EditText android:id="@+id/password_entry"
-                android:layout_width="208dp"
+            <LinearLayout
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal|bottom"
-                android:layout_marginBottom="26dp"
-                android:inputType="textPassword"
-                android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
-                android:gravity="center"
-                android:textSize="16sp"
-                style="@style/TextAppearance.PasswordEntry"/>
+                android:layout_gravity="center_vertical"
+                android:gravity="center_horizontal"
+                android:orientation="vertical">
 
-            <TextView style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
-                android:accessibilityLiveRegion="polite"
-                android:id="@+id/errorText"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center_horizontal|bottom"
-                android:layout_marginBottom="10dp"/>
+                <com.android.settings.widget.ScrollToParentEditText
+                    android:id="@+id/password_entry"
+                    android:layout_width="208dp"
+                    android:layout_height="wrap_content"
+                    android:inputType="textPassword"
+                    android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
+                    android:gravity="center"
+                    android:textSize="16sp"
+                    style="@style/TextAppearance.PasswordEntry"/>
+
+                <TextView style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
+                    android:accessibilityLiveRegion="polite"
+                    android:id="@+id/errorText"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginBottom="10dp"/>
+
+            </LinearLayout>
 
             <ImageView
                 android:id="@+id/fingerprintIcon"
diff --git a/res/layout/account_header.xml b/res/layout/account_header.xml
deleted file mode 100755
index 818d47c..0000000
--- a/res/layout/account_header.xml
+++ /dev/null
@@ -1,53 +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.
--->
-
-<LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        style="@style/EntityHeader"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-        android:gravity="center_vertical"
-        android:paddingTop="24dip"
-        android:paddingBottom="24dip"
-        android:orientation="horizontal">
-
-        <LinearLayout
-          android:id="@+id/icon_container"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:minWidth="56dp"
-          android:orientation="horizontal"
-          android:paddingEnd="12dp"
-          android:paddingTop="12dp"
-          android:paddingBottom="12dp">
-                <ImageView
-                  android:id="@android:id/icon"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:maxWidth="48dp"
-                  android:maxHeight="48dp"/>
-        </LinearLayout>
-
-        <TextView
-          android:id="@android:id/title"
-          style="@style/TextAppearance.EntityHeaderTitle"
-          android:layout_width="wrap_content"
-          android:layout_height="wrap_content"
-          android:singleLine="true"/>
-
-</LinearLayout>
diff --git a/res/layout/app_details.xml b/res/layout/app_details.xml
deleted file mode 100644
index 2db23e4..0000000
--- a/res/layout/app_details.xml
+++ /dev/null
@@ -1,116 +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.
-  -->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:orientation="vertical">
-
-    <!-- App snippet with buttons -->
-    <RelativeLayout
-        android:id="@+id/app_snippet"
-        style="@style/EntityHeader"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:paddingStart="?android:attr/listPreferredItemPaddingStart"
-        android:paddingEnd="0dp"
-        android:paddingTop="24dp"
-        android:paddingBottom="24dp">
-        <ImageView
-            android:id="@+id/app_detail_icon"
-            android:layout_width="56dp"
-            android:layout_height="56dp"
-            android:scaleType="fitXY"
-            android:layout_gravity="center_horizontal"
-            android:antialias="true"/>
-
-        <LinearLayout
-            android:id="@+id/app_detail_links"
-            android:layout_width="wrap_content"
-            android:layout_height="match_parent"
-            android:layout_alignParentEnd="true"
-            android:orientation="vertical">
-
-            <ImageButton
-                android:id="@+id/right_button"
-                style="?android:attr/actionOverflowButtonStyle"
-                android:layout_width="wrap_content"
-                android:layout_weight="1"
-                android:layout_height="0dp"
-                android:minWidth="@dimen/min_tap_target_size"
-                android:src="@drawable/ic_settings_24dp"
-                android:tint="?android:attr/colorAccent"/>
-
-            <ImageButton
-                android:id="@+id/left_button"
-                style="?android:attr/actionOverflowButtonStyle"
-                android:layout_width="wrap_content"
-                android:layout_weight="1"
-                android:layout_height="0dp"
-                android:minWidth="@dimen/min_tap_target_size"
-                android:src="@null"
-                android:tint="?android:attr/colorAccent"/>
-
-        </LinearLayout>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_toEndOf="@id/app_detail_icon"
-            android:layout_toStartOf="@id/app_detail_links"
-            android:paddingStart="24dp"
-            android:paddingEnd="24dp"
-            android:orientation="vertical">
-
-            <TextView
-                android:id="@+id/app_detail_title"
-                style="@style/TextAppearance.EntityHeaderTitle"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:singleLine="false"
-                android:ellipsize="marquee"
-                android:gravity="start"
-                android:textDirection="locale"
-                android:paddingTop="8dp"/>
-
-            <TextView
-                android:id="@+id/install_type"
-                android:visibility="gone"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="start"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                android:textColor="?android:attr/textColorSecondary"/>
-
-            <TextView
-                android:id="@+id/app_detail_summary"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:gravity="start"
-                android:singleLine="true"
-                android:ellipsize="marquee"
-                android:textAppearance="@android:style/TextAppearance.Material.Body1"
-                android:textColor="?android:attr/textColorSecondary"/>
-
-        </LinearLayout>
-
-    </RelativeLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/choose_lock_password.xml b/res/layout/choose_lock_password.xml
index 0888b5e..988f331 100644
--- a/res/layout/choose_lock_password.xml
+++ b/res/layout/choose_lock_password.xml
@@ -42,31 +42,43 @@
             android:lines="2"
             android:textAppearance="?android:attr/textAppearanceMedium"/>
 
-        <!-- Password entry field -->
-        <EditText android:id="@+id/password_entry"
+        <LinearLayout
+            android:id="@+id/password_container"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center"
-            android:gravity="center"
-            android:inputType="textPassword"
-            android:imeOptions="actionNext|flagNoExtractUi|flagForceAscii"
-            android:textSize="24sp"
-            style="@style/TextAppearance.PasswordEntry"/>
+            android:clipChildren="false"
+            android:clipToPadding="false"
+            android:orientation="vertical"
+            android:layoutMode="opticalBounds"
+            android:paddingBottom="8dp">
 
-        <LinearLayout
-                android:id="@+id/bottom_container"
+            <!-- Password entry field -->
+            <com.android.settings.widget.ScrollToParentEditText
+                android:id="@+id/password_entry"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:clipChildren="false"
-                android:clipToPadding="false"
-                android:orientation="vertical">
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:gravity="center"
+                android:inputType="textPassword"
+                android:imeOptions="actionNext|flagNoExtractUi|flagForceAscii"
+                android:textSize="24sp"
+                style="@style/TextAppearance.PasswordEntry"/>
 
             <android.support.v7.widget.RecyclerView
-                    android:id="@+id/password_requirements_view"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"/>
+                android:id="@+id/password_requirements_view"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"/>
 
         </LinearLayout>
+
+        <Button
+            android:id="@+id/screen_lock_options"
+            style="@style/SuwGlifButton.Tertiary"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/setup_lock_settings_options_button_label"
+            android:visibility="gone" />
+
     </LinearLayout>
 
 </com.android.setupwizardlib.GlifLayout>
diff --git a/res/layout/choose_lock_pattern_common.xml b/res/layout/choose_lock_pattern_common.xml
index a54987d..84103ae 100644
--- a/res/layout/choose_lock_pattern_common.xml
+++ b/res/layout/choose_lock_pattern_common.xml
@@ -22,6 +22,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:icon="@drawable/ic_lock"
+    android:layout="@layout/suw_glif_blank_template"
     settings:suwFooter="@layout/choose_lock_pattern_common_footer"
     settings:suwHeaderText="@string/lockpassword_choose_your_pattern_header">
 
@@ -34,6 +35,26 @@
         android:clipToPadding="false"
         android:orientation="vertical">
 
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
+
+            <ImageView
+                android:id="@+id/suw_layout_icon"
+                style="@style/LockPatternIconStyle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/ic_lock" />
+
+            <TextView
+                android:id="@+id/suw_layout_title"
+                style="@style/SuwGlifHeaderTitle"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+
+        </LinearLayout>
+
         <!-- takes up all space above button bar at bottom -->
         <LinearLayout
             android:layout_width="match_parent"
@@ -47,7 +68,6 @@
             <TextView android:id="@+id/headerText"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_weight="1"
                 android:minLines="2"
                 android:gravity="center"
                 android:textSize="18sp" />
@@ -55,7 +75,7 @@
             <com.android.internal.widget.LockPatternView android:id="@+id/lockPattern"
                 android:layout_width="match_parent"
                 android:layout_height="0dip"
-                android:layout_weight="4" />
+                android:layout_weight="1" />
 
         </LinearLayout>
 
diff --git a/res/layout/confirm_lock_password_base.xml b/res/layout/confirm_lock_password_base.xml
index 6942863..0c65e86 100644
--- a/res/layout/confirm_lock_password_base.xml
+++ b/res/layout/confirm_lock_password_base.xml
@@ -47,8 +47,7 @@
             android:layout_marginEnd="?attr/confirmDeviceCredentialsSideMargin"
             android:layout_marginTop="12dp"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            />
+            android:layout_height="wrap_content" />
 
         <Button
             style="@android:style/Widget.Material.Button.Borderless"
@@ -64,29 +63,36 @@
               android:layout_height="0dp"
               android:layout_weight="1"/>
 
-        <EditText
-            android:id="@+id/password_entry"
-            android:layout_width="208dp"
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="-40dp"
-            android:inputType="textPassword"
-            android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
-            android:gravity="center"
-            android:textSize="16sp"
-            style="@style/TextAppearance.PasswordEntry"/>
+            android:gravity="center_horizontal"
+            android:orientation="vertical">
 
-        <TextView
-            style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
-            android:accessibilityLiveRegion="polite"
-            android:id="@+id/errorText"
-            android:layout_width="wrap_content"
+            <com.android.settings.widget.ScrollToParentEditText
+                android:id="@+id/password_entry"
+                android:layout_width="208dp"
+                android:layout_height="wrap_content"
+                android:inputType="textPassword"
+                android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
+                android:gravity="center"
+                android:textSize="16sp"
+                style="@style/TextAppearance.PasswordEntry"/>
+
+            <TextView
+                style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
+                android:accessibilityLiveRegion="polite"
+                android:id="@+id/errorText"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="12dp"
+                android:layout_marginEnd="12dp"/>
+
+        </LinearLayout>
+
+        <View android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_weight="1"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginStart="12dp"
-            android:layout_marginEnd="12dp"
-            android:gravity="center_vertical"/>
+            android:layout_weight="1"/>
 
         <ImageView
             android:id="@+id/fingerprintIcon"
diff --git a/res/layout/confirm_lock_password_internal.xml b/res/layout/confirm_lock_password_internal.xml
index 0652e7e..701ff57 100644
--- a/res/layout/confirm_lock_password_internal.xml
+++ b/res/layout/confirm_lock_password_internal.xml
@@ -19,7 +19,6 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:icon="@drawable/ic_lock"
-    android:layout="@layout/suw_glif_blank_template"
     android:importantForAutofill="noExcludeDescendants">
 
     <com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient
@@ -28,19 +27,6 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
-        <ImageView
-            android:id="@+id/suw_layout_icon"
-            style="@style/SuwGlifIcon"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:src="@drawable/ic_lock" />
-
-        <TextView
-            android:id="@+id/headerText"
-            style="@style/SuwGlifHeaderTitle"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content" />
-
         <TextView
             android:id="@+id/detailsText"
             style="@style/SuwDescription.Glif"
@@ -54,29 +40,36 @@
             android:layout_height="0dp"
             android:layout_weight="1" />
 
-        <EditText
-            android:id="@+id/password_entry"
-            android:layout_width="208dp"
+        <LinearLayout
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginTop="-40dp"
-            android:inputType="textPassword"
-            android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
-            android:gravity="center"
-            android:textSize="16sp"
-            style="@style/TextAppearance.PasswordEntry"/>
+            android:gravity="center_horizontal"
+            android:orientation="vertical">
 
-        <TextView
-            style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
-            android:accessibilityLiveRegion="polite"
-            android:id="@+id/errorText"
-            android:layout_width="wrap_content"
+            <com.android.settings.widget.ScrollToParentEditText
+                android:id="@+id/password_entry"
+                android:layout_width="208dp"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:inputType="textPassword"
+                android:imeOptions="actionNext|flagNoFullscreen|flagForceAscii"
+                android:gravity="center"
+                android:textSize="16sp"
+                style="@style/TextAppearance.PasswordEntry"/>
+
+            <TextView
+                android:id="@+id/errorText"
+                style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:accessibilityLiveRegion="polite"/>
+
+        </LinearLayout>
+
+        <Space
+            android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_weight="1"
-            android:layout_gravity="center_horizontal"
-            android:layout_marginStart="12dp"
-            android:layout_marginEnd="12dp"
-            android:gravity="center_vertical"/>
+            android:layout_weight="1" />
 
         <ImageView
             android:id="@+id/fingerprintIcon"
diff --git a/res/layout/confirm_lock_pattern_internal_base.xml b/res/layout/confirm_lock_pattern_internal_base.xml
index e20d04d..cd5739e 100644
--- a/res/layout/confirm_lock_pattern_internal_base.xml
+++ b/res/layout/confirm_lock_pattern_internal_base.xml
@@ -27,77 +27,61 @@
         android:layout_height="match_parent"
         android:orientation="vertical">
 
-        <ScrollView
+        <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="0dp"
-            android:layout_weight="2">
+            android:layout_height="wrap_content"
+            android:orientation="vertical">
 
-            <LinearLayout
+            <ImageView
+                android:id="@+id/suw_layout_icon"
+                style="@style/LockPatternIconStyle"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:src="@drawable/ic_lock" />
+
+            <TextView
+                android:id="@+id/headerText"
+                style="@style/SuwGlifHeaderTitle"
                 android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:orientation="vertical">
+                android:layout_height="wrap_content" />
 
-                <ImageView
-                    android:id="@+id/suw_layout_icon"
-                    style="@style/SuwGlifIcon"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:src="@drawable/ic_lock" />
+            <TextView
+                style="@style/SuwDescription.Glif"
+                android:id="@+id/detailsText"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginStart="?attr/suwMarginSides"
+                android:layout_marginEnd="?attr/suwMarginSides" />
 
-                <TextView
-                    android:id="@+id/headerText"
-                    style="@style/SuwGlifHeaderTitle"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content" />
-
-                <TextView
-                    style="@style/SuwDescription.Glif"
-                    android:id="@+id/detailsText"
-                    android:layout_width="match_parent"
-                    android:layout_height="wrap_content"
-                    android:layout_marginStart="?attr/suwMarginSides"
-                    android:layout_marginEnd="?attr/suwMarginSides" />
-
-            </LinearLayout>
-
-        </ScrollView>
+        </LinearLayout>
 
         <com.android.internal.widget.LockPatternView
             android:id="@+id/lockPattern"
-            android:layout_width="312dp"
-            android:layout_height="0dp"
-            android:layout_weight="3"
-            android:layout_gravity="center_horizontal"/>
-
-        <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_weight="1"
-            android:orientation="vertical">
+            android:layout_weight="4"
+            android:layout_gravity="center_horizontal"/>
 
-            <TextView
-                style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
-                android:accessibilityLiveRegion="polite"
-                android:id="@+id/errorText"
-                android:layout_width="wrap_content"
-                android:layout_height="0dp"
-                android:layout_weight="1"
-                android:layout_gravity="center_horizontal"
-                android:layout_marginTop="12dp"
-                android:layout_marginStart="12dp"
-                android:layout_marginEnd="12dp"
-                android:gravity="center_vertical"/>
+        <TextView
+            style="@style/TextAppearance.ConfirmDeviceCredentialsErrorText"
+            android:accessibilityLiveRegion="polite"
+            android:id="@+id/errorText"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="12dp"
+            android:layout_marginStart="12dp"
+            android:layout_marginEnd="12dp"
+            android:gravity="center_vertical"/>
 
-            <ImageView
-                android:id="@+id/fingerprintIcon"
-                android:layout_gravity="center_horizontal"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentBottom="true"
-                android:layout_marginBottom="24dp"
-                android:contentDescription="@string/confirm_fingerprint_icon_content_description"
-                android:visibility="gone"/>
-        </LinearLayout>
+        <ImageView
+            android:id="@+id/fingerprintIcon"
+            android:layout_gravity="center_horizontal"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="24dp"
+            android:contentDescription="@string/confirm_fingerprint_icon_content_description"
+            android:visibility="gone"/>
 
         <Button
             android:id="@+id/cancelButton"
diff --git a/res/layout/password_requirement_item.xml b/res/layout/password_requirement_item.xml
index df7f45c..8080f10 100644
--- a/res/layout/password_requirement_item.xml
+++ b/res/layout/password_requirement_item.xml
@@ -15,8 +15,8 @@
 -->
 
 <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-        android:id="@+id/description_text"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:paddingStart="4dp"
-        android:textSize="14sp"/>
\ No newline at end of file
+    android:id="@+id/description_text"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="?attr/suwGlifHeaderGravity"
+    android:textSize="14sp"/>
diff --git a/res/layout/search_panel.xml b/res/layout/search_panel.xml
index 8f72847..9445e0c 100644
--- a/res/layout/search_panel.xml
+++ b/res/layout/search_panel.xml
@@ -61,18 +61,20 @@
             android:id="@+id/no_results_layout"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
-            android:gravity="center"
+            android:paddingTop="80dp"
             android:orientation="vertical"
             android:visibility="gone">
 
             <ImageView
-            android:layout_height="112dp"
-            android:layout_width="112dp"
-            android:src="@drawable/no_search_results"/>
+            android:layout_height="160dp"
+            android:layout_width="160dp"
+            android:layout_gravity="center_horizontal"
+            android:src="@drawable/empty_search_results"/>
 
             <TextView
             android:layout_height="wrap_content"
             android:layout_width="match_parent"
+            android:paddingTop="24dp"
             android:textSize="18sp"
             android:text="@string/search_settings_no_results"
             android:gravity="center"/>
diff --git a/res/layout/settings_entity_header.xml b/res/layout/settings_entity_header.xml
new file mode 100644
index 0000000..ce81b49
--- /dev/null
+++ b/res/layout/settings_entity_header.xml
@@ -0,0 +1,110 @@
+<?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.
+  -->
+
+<!-- Entity header -->
+<RelativeLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/entity_header"
+    style="@style/EntityHeader"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+    android:paddingEnd="0dp"
+    android:paddingTop="24dp"
+    android:paddingBottom="24dp">
+
+    <ImageView
+        android:id="@+id/entity_header_icon"
+        android:layout_width="48dp"
+        android:layout_height="48dp"
+        android:scaleType="fitXY"
+        android:layout_gravity="center_horizontal"
+        android:antialias="true" />
+
+    <LinearLayout
+        android:id="@+id/entity_header_links"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_alignParentEnd="true"
+        android:orientation="vertical">
+
+        <ImageButton
+            android:id="@android:id/button1"
+            style="?android:attr/actionOverflowButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_weight="1"
+            android:layout_height="0dp"
+            android:minWidth="@dimen/min_tap_target_size"
+            android:src="@drawable/ic_settings_24dp"
+            android:tint="?android:attr/colorAccent" />
+
+        <ImageButton
+            android:id="@android:id/button2"
+            style="?android:attr/actionOverflowButtonStyle"
+            android:layout_width="wrap_content"
+            android:layout_weight="1"
+            android:layout_height="0dp"
+            android:minWidth="@dimen/min_tap_target_size"
+            android:src="@null"
+            android:tint="?android:attr/colorAccent" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_toEndOf="@id/entity_header_icon"
+        android:layout_toStartOf="@id/entity_header_links"
+        android:paddingStart="24dp"
+        android:paddingEnd="24dp"
+        android:orientation="vertical">
+
+        <TextView
+            android:id="@+id/entity_header_title"
+            style="@style/TextAppearance.EntityHeaderTitle"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:singleLine="false"
+            android:ellipsize="marquee"
+            android:gravity="start"
+            android:textDirection="locale"
+            android:paddingTop="8dp" />
+
+        <TextView
+            android:id="@+id/install_type"
+            android:visibility="gone"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="start"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:textAppearance="@android:style/TextAppearance.Material.Body1"
+            android:textColor="?android:attr/textColorSecondary" />
+
+        <TextView
+            android:id="@+id/entity_header_summary"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:gravity="start"
+            android:singleLine="true"
+            android:ellipsize="marquee"
+            android:textAppearance="@android:style/TextAppearance.Material.Body1"
+            android:textColor="?android:attr/textColorSecondary" />
+
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/vpn_dialog.xml b/res/layout/vpn_dialog.xml
index 47be368..71ce0ad 100644
--- a/res/layout/vpn_dialog.xml
+++ b/res/layout/vpn_dialog.xml
@@ -37,7 +37,8 @@
             <TextView style="@style/vpn_label"
                     android:text="@string/vpn_type"
                     android:labelFor="@+id/type"/>
-            <Spinner style="@style/vpn_value" android:id="@+id/type"
+            <Spinner style="@style/vpn_value"
+                     android:id="@+id/type"
                     android:prompt="@string/vpn_type"
                     android:entries="@array/vpn_types"/>
 
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 61a6476..d959cef 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Goed"</item>
     <item msgid="8986346415847956850">"Uitstekend"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Altyd"</item>
-    <item msgid="844721238536786870">"Slegs wanneer ingeprop"</item>
-    <item msgid="1986753720941888596">"Nooit"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Altyd"</item>
-    <item msgid="7433294150916905997">"Slegs wanneer ingeprop"</item>
-    <item msgid="1390404486722375028">"Nooit"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Afgelope 30 dae"</item>
     <item msgid="6600989128423965319">"Stel gebruiksiklus …"</item>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 92bc9dc..8687d92 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Jy is nou \'n ontwikkelaar!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Toemaar, jy is reeds \'n ontwikkelaar."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Draadloos en netwerke"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Skakelpunte"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Toestel"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ontkoppel?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Dit sal jou verbinding met &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt; beëindig."</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Jy het nie toestemming om Bluetooth-instellings te verander nie."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Nabye toestelle kan <xliff:g id="DEVICE_NAME">%1$s</xliff:g> sien as Bluetooth-instellings oop is."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth se MAC-adres: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Ontkoppel <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Uitsaai"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Dekativeer profiel?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s wil toegang tot jou boodskappe verkry. Gee toegang aan %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM-toegangversoek"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil toegang hê tot jou SIM-kaart. As jy toegang tot jou SIM-kaart verleen, sal die dataverbinding op jou toestel vir die duur van die verbinding gedeaktiveer wees. Verleen toegang aan <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Vir ander toestelle sigbaar as <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum en tyd"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Kies tydsone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Lig op om wakker te maak"</string>
     <string name="doze_title" msgid="2259176504273878294">"Stemmingvertoning"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Maak skerm wakker wanneer jy kennisgewings ontvang"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Altyd aan"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Wys tyd, kennisgewingikone en ander inligting"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Lettertipegrootte"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Maak teks groter of kleiner"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM-kaart se sluitinstellings"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Gebruik <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> moet:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Instellings kan nie jou antwoord verifieer nie omdat \'n program \'n toestemmingversoek verberg."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Instellings kan nie op jou handeling reageer nie, omdat \'n ander program bo-oor hierdie opsies gewys word."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"As jy <xliff:g id="SERVICE">%1$s</xliff:g> aanskakel, sal jou toestel nie jou skermslot gebruik om data-enkripsie te verbeter nie."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Omdat jy \'n toeganklikheiddiens aangeskakel het, sal jou toestel nie jou skermslot gebruik om data-enkripsie te verbeter nie."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Jy moet jou patroon bevestig, want as <xliff:g id="SERVICE">%1$s</xliff:g> aangeskakel is, beïnvloed dit datakodering."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Kennisgewings"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Gevorderd"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Werkkennisgewings"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Laat ikoonkentekens toe"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Flikkerende lig"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Op die sluitskerm"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Wys alle kennisgewinginhoud"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Middelmatig"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Hoog"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Dringend"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Laat klank toe"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Laat klank toe"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Moenie \'n geluid maak, vibreer of hierdie kennisgewings vir \'n kort tyd op die huidige skerm wys nie."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Kennisgewingassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Kennisgewingtoegang"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Beeld-in-beeld"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Laat beeld-in-beeld toe"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Laat toe dat hierdie program \'n beeld-in-beeld-venster skep terwyl die program oop is of nadat jy dit verlaat het (byvoorbeeld, om voort te gaan om \'n video te kyk). Hierdie venster wys bo-oor ander programme wat jy gebruik."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nee"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Toegang tot Moenie Steur Nie"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Geen geïnstalleerde programme het toegang tot Moenie Steur Nie versoek nie"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Laai tans programme …"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Moet nooit hierdie kennisgewings wys nie"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Wys kennisgewings"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Moet nooit kennisgewings in die skadu of op randtoestelle wys nie"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Kenteken-programikoon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Wys kennisgewings as kentekens in die Home-program as dit gesteun word."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Laat ikoonkenteken toe"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignoreer Moenie Steur Nie"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Laat hierdie kennisgewings steeds onderbreek wanneer Moenie Steur Nie na \'Net prioriteit\' gestel is"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Op die sluitskerm"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Wys oor ander programme"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> van <xliff:g id="COUNT_1">%2$d</xliff:g> programme word toegelaat om oor ander te wys"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Programme met toestemming"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nee"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installeer onbekende apps"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installeer programme uit onbekende bronne"</string>
     <string name="write_settings" msgid="4797457275727195681">"Verander stelselinstellings"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Programtoestemming om stelselinstellings te verander"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Mag stelselinstellings verander"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Hierdie toestemming laat \'n program toe om stelselinstellings te verander."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nee"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Toegelaat"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nie toegelaat nie"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Laat van hierdie bron af toe"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dubbeldraai vir kamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Maak die kameraprogram oop deur jou pols twee keer vinnig te draai"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g>-datawaarskuwing"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g>-datawaarskuwing / <xliff:g id="ID_2">%2$s</xliff:g>-datalimiet"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Faktureringsiklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Maandeliks op dag <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Netwerkbeperkinge"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> beperkings</item>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 2e991b8..b20d791 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ጥሩ"</item>
     <item msgid="8986346415847956850">"እጅግ በጣም ጥሩ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ሁልጊዜ"</item>
-    <item msgid="844721238536786870">"ሲሰካ ብቻ"</item>
-    <item msgid="1986753720941888596">"በፍፁም"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ሁልጊዜ"</item>
-    <item msgid="7433294150916905997">"ሲሰካ ብቻ"</item>
-    <item msgid="1390404486722375028">"ፈፅሞ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"የመጨረሻዎቹ 30 ቀኖች"</item>
     <item msgid="6600989128423965319">"የአጠቃቀም ዑደት አዘጋጅ..."</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index f0f350e..7594d11 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"አሁን ገንቢ ሆነዋል!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"አያስፈልግም፣ አስቀድሞ ገንቢ ሆነዋል።"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ይለያይ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ከ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&amp;gt ጋርያልዎትን ተያያዥ ያበቃል።"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"የብሉቱዝ ቅንብሮችን ለመለወጥ ፈቃድ የልዎትም።"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> የብሉቱዝ ቅንብሮች ክፍት ሆኖ ሳለ አቅራቢያ ላሉ መሣሪያዎች ይታያል።"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"የብሉቱዝ ማክ አድራሻ፦ <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"የ<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ግንኙነት ይቋረጥ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ማሰራጨት"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"መገለጫ ይቦዝን?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s የእርስዎን መልዕክቶች ሊደርስበት ይፈልጋል። መዳረሻ ለ%2$s ይሰጥ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"የሲም መዳረሻ ጥያቄ"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> የእርስዎ ሲም ካርድ ላይ መድረስ ይፈልጋል። ወደ ሲም ካርዱ መዳረሻ መስጠት በእርስዎ መሣሪያ ላይ ግንኙነቱ ላይ በሚቆይበት ጊዜ  ያክል የውሂብ ተገኚነትን ያሰናክላል። ለ<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> መዳረሻ ስጥ"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ለሌሎች መሣሪያዎች እንደ <xliff:g id="DEVICE_NAME">^1</xliff:g> ሆኖ ይታያል"</string>
     <string name="date_and_time" msgid="9062980487860757694">"ቀን እና ሰዓት"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"የጊዜ ሰቅ ምረጥ"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"ለማንቃት ያንሱ"</string>
     <string name="doze_title" msgid="2259176504273878294">"ከባቢያዊ ማሳያ"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ማሳወቂያዎችን ሲቀበሉ ማያ ገጽን አንቃ"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ሁልጊዜ ይበራል"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"ሰዓት፣ የማሳወቂያ አዶዎች እና ሌላ መረጃ አሳይ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"የቁምፊ መጠን"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ጽሑፍ ያተልቁ ወይም ያሳንሱ"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"የSIM ካርድ ቆልፍ ቅንብሮች"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> ይጠቀሙ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ይህን ማድረግ አለበት፦"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"አንድ መተግበሪያ የፍቃድ ጥያቄ እያገደ ስለሆነ ቅንብሮች ጥያቄዎን ማረጋገጥ አይችሉም።"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ሌላ መተግበሪያ በእነዚህ አማራጮች ላይ እያሳየ ስለሆነ ቅንብሮች ለእርስዎ እርምጃ ምላሽ መስጠት አይችልም።"</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>ን ማብራት የውሂብ ምስጠራ ላይ ተጽዕኖ ስለሚያሳርፍ፣ የእርስዎን ስርዓተ-ጥለት ማረጋገጥ ያስፈልግዎታል።"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"ማሳወቂያዎች"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"የላቀ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"የስራ ማሳወቂያዎች"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"የአዶ ባጆችን ያሳዩ"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ብርሃን አብለጭለጭ"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"በማያ ገጽ ቁልፉ ላይ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ሁሉንም የማሳወቂያ ይዘቶችን አሳይ"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"መካከለኛ"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ከፍተኛ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"አስቸኳይ"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ድምፅ ይፍቀዱ"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ድምፅ ይፍቀዱ"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ድምፅ አታሰማ፣ አትንዘር ወይም እነዚህን ማሳወቂያዎች ወደ የአሁኑ ማያ ገጽ አታሳይ።"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"የማሳወቂያ ረዳት"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"የማሳወቂያ መዳረሻ"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ስዕል-ላይ-ስዕል"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ስዕል-በስዕል-ውስጥ ፍቀድ"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ይህ መተግበሪያ ክፍት ሆኖ ሳለ ወይም ከተዉት በኋላ (ለምሳሌ፦ አንድ ቪዲዮ ለመመልከት) የስዕል-በስዕል ውስጥ መስኮት እንዲፈጥር ይፍቀዱለት። ይህ መስኮት እየተጠቀሙባቸው ባሉ ሌሎች መተግበሪያዎች ላይ ያሳያል።"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"አዎ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"አይ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"የአትረብሽ መዳረሻ"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ምንም የተጫኑ መተግበሪያዎች የተጠየቀው አትረብሽ መዳረሻ የላቸውም"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"መተግበሪያዎችን በመጫን ላይ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"እነዚህን ማሳወቂያዎች በጭራሽ አታሳይ"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"ማሳወቂያዎች አሳይ"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"በጥላ ወይም በጎን ያሉ ውጫዊ መሣሪያዎች ላይ ማሳወቂያዎችን በጭራሽ አታሳይ"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"የባጅ መተግበሪያ አዶ"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"በHome መተግበሪያ ላይ የሚደገፍ ከሆነ ማሳወቂያዎችን እንደ ባጆች አሳይ።"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"የአዶ ባጅ ይፍቀዱ"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"«አትረብሽ»ን ሻር"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"«አትረብሽ» ወደ ቅድሚያ ብቻ በሚቀናበርበት ጊዜ እነዚህ ማሳወቂያዎች እንዲያቋርጡ ይፍቀዱ"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"በማያ ገጽ ቁልፉ ላይ"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"በሌሎች መተግበሪያዎች ላይ አሳይ"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> ከ<xliff:g id="COUNT_1">%2$d</xliff:g> መተግበሪያዎች በሌሎች መተግበሪያዎች ላይ እንዲያሳዩ ተፈቅዶላቸዋል"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ፍቃድ ያላቸው መተግበሪያዎች"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"አዎ"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"አይ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ያልታወቁ መተግበሪያዎችን ይጫኑ"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"መተግበሪያዎችን ጫን ያልታወቁ ምንጮች"</string>
     <string name="write_settings" msgid="4797457275727195681">"የስርዓት ቅንብሮችን ይቀይራል"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"መተግበሪያ የስርዓት ቅንብሮች ፈቃድን ይቀይራል"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"የስርዓት ቅንብሮችን ለማዘመን ያስችላል"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ይህ ፈቃድ መተግበሪያው የስርዓት ቅንብሮችን ለመቀየር ያስችለዋል።"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"አዎ"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"አይ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ይፈቀዳል"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"አይፈቀድም"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ከዚህ ምንጭ ፍቀድ"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ለካሜራ ሁለት ጊዜ ይጠምዝዙት"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"የእጅ አንጓዎን ሁለት ጊዜ በመጠምዘዝ የካሜራ መተግበሪያውን ይክፈቱ"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ወርሃዊ በዕለት <xliff:g id="ID_1">%1$s</xliff:g> ላይ"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"የአውታረ መረብ ገደቦች"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ገደቦች</item>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 61ee07c..a2a7794 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"جيدة"</item>
     <item msgid="8986346415847956850">"ممتازة"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"دومًا"</item>
-    <item msgid="844721238536786870">"عند التوصيل فقط"</item>
-    <item msgid="1986753720941888596">"مطلقًا"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"دومًا"</item>
-    <item msgid="7433294150916905997">"عند التوصيل فقط"</item>
-    <item msgid="1390404486722375028">"مطلقًا"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"آخر ۳۰ يومًا"</item>
     <item msgid="6600989128423965319">"تعيين دورة الاستخدام..."</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 38c4621..24a0d0b 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -34,6 +34,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"لقد أصبحت الآن مطور برامج!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"لا حاجة لذلك، فأنت مطور برامج فعلاً."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -114,7 +116,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"هل تريد قطع الاتصال؟"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"‏سيؤدي هذا إلى إنهاء الاتصال مع:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ليست لديك أذونات لتغيير إعدادات بلوتوث."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> مرئي للأجهزة القريبة أثناء فتح إعدادات البلوتوث."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"‏عنوان MAC للبلوتوث: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"هل تريد فصل <xliff:g id="DEVICE_NAME">%1$s</xliff:g>؟"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"البث"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"تعطيل الملف الشخصي؟"</string>
@@ -162,6 +167,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"‏يريد %1$s الدخول إلى رسائلك. هل تريد منح %2$s حق الدخول؟"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"‏طلب حق الوصول إلى شريحة SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"‏يريد <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> الوصول إلى شريحة SIM. ويؤدي منح حق الوصول إلى شريحة SIM إلى تعطيل اتصال البيانات على جهازك طوال مدة الاتصال. منح حق الوصول إلى <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"مرئي باسم <xliff:g id="DEVICE_NAME">^1</xliff:g> للأجهزة الأخرى"</string>
     <string name="date_and_time" msgid="9062980487860757694">"التاريخ والوقت"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"اختيار المنطقة الزمنية"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -951,12 +957,12 @@
     <string name="musicfx_title" msgid="3415566786340790345">"تأثيرات موسيقية"</string>
     <string name="ring_volume_title" msgid="5592466070832128777">"مستوى صوت الرنين"</string>
     <string name="vibrate_in_silent_title" msgid="3897968069156767036">"اهتزاز عند تشغيل الوضع صامت"</string>
-    <string name="notification_sound_title" msgid="5137483249425507572">"صوت الإشعار الافتراضي"</string>
+    <string name="notification_sound_title" msgid="5137483249425507572">"صوت الإشعار التلقائي"</string>
     <string name="incoming_call_volume_title" msgid="8073714801365904099">"نغمة الرنين"</string>
     <string name="notification_volume_title" msgid="2012640760341080408">"التنبيه"</string>
     <string name="checkbox_notification_same_as_incoming_call" msgid="1073644356290338921">"استخدام مستوى صوت المكالمة الواردة للإشعارات"</string>
     <string name="home_work_profile_not_supported" msgid="1357721012342357037">"لا يتوافق مع الملفات الشخصية للعمل"</string>
-    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"صوت الإشعار الافتراضي"</string>
+    <string name="notification_sound_dialog_title" msgid="3805140135741385667">"صوت الإشعار التلقائي"</string>
     <string name="media_volume_title" msgid="3576565767317118106">"الوسائط"</string>
     <string name="media_volume_summary" msgid="5363248930648849974">"تعيين مستوى الصوت للموسيقى ومقاطع الفيديو"</string>
     <string name="alarm_volume_title" msgid="2285597478377758706">"المنبّه"</string>
@@ -1069,6 +1075,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"الرفع لتنبيه الجهاز"</string>
     <string name="doze_title" msgid="2259176504273878294">"عرض المحيط"</string>
     <string name="doze_summary" msgid="3846219936142814032">"تنشيط الشاشة عند تلقي إشعارات"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"التشغيل دائمًا"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"إظهار الوقت ورموز الإشعار والمعلومات الأخرى"</string>
     <string name="title_font_size" msgid="4405544325522105222">"حجم الخط"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"يمكنك تكبير النص أو تصغيره."</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"‏إعدادات تأمين شريحة SIM"</string>
@@ -1939,8 +1947,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"هل تريد استخدام <xliff:g id="SERVICE">%1$s</xliff:g>؟"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"خدمة <xliff:g id="SERVICE">%1$s</xliff:g> تحتاج إلى:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"نظرًا لأن هناك تطبيقًا يحجب طلب الإذن، لا تستطيع الإعدادات التحقق من ردك."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"بسبب عرض تطبيق آخر في أعلى هذه الخيارات، لا يمكن أن تستجيب الإعدادات للإجراء الذي اتخذته."</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="enable_service_pattern_reason" msgid="777577618063306751">"نظرًا لأن تشغيل <xliff:g id="SERVICE">%1$s</xliff:g> يؤثر في تشفير البيانات، يجب تأكيد النقش."</string>
@@ -2845,9 +2852,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>
-    <string name="notification_ringtone_title" msgid="4468722874617061231">"صوت الإشعار الافتراضي"</string>
+    <string name="notification_ringtone_title" msgid="4468722874617061231">"صوت الإشعار التلقائي"</string>
     <string name="notification_unknown_sound_title" msgid="2535027767851838335">"صوت صادر عن تطبيق"</string>
-    <string name="notification_sound_default" msgid="565135733949733766">"صوت الإشعار الافتراضي"</string>
+    <string name="notification_sound_default" msgid="565135733949733766">"صوت الإشعار التلقائي"</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>
@@ -2900,6 +2907,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"الإشعارات"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"متقدمة"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"إشعارات العمل"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"السماح بشارات الرمز"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"وميض الضوء"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"على شاشة التأمين"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"عرض كل محتوى الإشعارات"</string>
@@ -2925,7 +2933,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"مستوى أهمية متوسط"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"مستوى أهمية مرتفع"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"مستوى أهمية ملحّة"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"السماح بالصوت"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"السماح بالصوت"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"لا يُسمح بإصدار تنبيه صوتي أو بالاهتزاز أو بعرض هذه الإشعارات بسرعة على الشاشة الحالية."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"مساعد الإشعار"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"الدخول إلى الإشعارات"</string>
@@ -2958,8 +2966,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"صورة داخل صورة"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"السماح بنافذة صورة داخل صورة"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"يمكنك السماح لهذا التطبيق بإنشاء نافذة صورة داخل صورة أثناء فتح التطبيق أو بعد مغادرته (على سبيل المثال، لمتابعة مشاهدة فيديو)، علمًا بأن هذه النافذة تظهر أمام التطبيقات الأخرى التي تستخدمها."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"نعم"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"لا"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"الوصول إلى إعداد \"عدم الإزعاج\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"لم تطلّب أي تطبيقات مثبّتة حق الوصول إلى إعداد \"عدم الإزعاج\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"جارٍ تحميل التطبيقات..."</string>
@@ -2993,8 +2999,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"عدم عرض هذه الإشعارات"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"عرض الإشعارات"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"‏عدم عرض الإشعارات في مركز الإشعارات أو على الأجهزة المرتبطة بحساب Google"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"علامة الإشعارات التي تظهر فوق رمز التطبيق"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"‏عرض الإشعارات على هيئة شارات على تطبيق Home، إن توفّرت إمكانية ذلك."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"السماح بشارة الرمز"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"إلغاء وضع \"عدم الإزعاج\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"السماح لهذه الإشعارات بمتابعة المقاطعة عند تعيين وضع \"عدم الإزعاج\" على \"ذات الأولوية فقط\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"على شاشة التأمين"</string>
@@ -3019,9 +3024,9 @@
     <string name="zen_mode_rule_type" msgid="2289413469580142888">"نوع القاعدة"</string>
     <string name="zen_mode_rule_type_unknown" msgid="3049377282766700600">"غير معروف"</string>
     <string name="zen_mode_configure_rule" msgid="8865785428056490305">"تهيئة القاعدة"</string>
-    <string name="zen_schedule_rule_type_name" msgid="142936744435271449">"قاعدة زمنية"</string>
+    <string name="zen_schedule_rule_type_name" msgid="142936744435271449">"قاعدة خاصة بزمن"</string>
     <string name="zen_schedule_rule_enabled_toast" msgid="3379499360390382259">"تم ضبط القاعدة التلقائية على تشغيل وضع \"عدم الإزعاج\" أثناء أوقات محددة"</string>
-    <string name="zen_event_rule_type_name" msgid="2645981990973086797">"قاعدة حدث"</string>
+    <string name="zen_event_rule_type_name" msgid="2645981990973086797">"قاعدة خاصة بحدث"</string>
     <string name="zen_event_rule_enabled_toast" msgid="6910577623330811480">"تم ضبط القاعدة التلقائية على تشغيل وضع \"عدم الإزعاج\" أثناء أحداث محددة"</string>
     <string name="zen_mode_event_rule_calendar" msgid="8787906563769067418">"أثناء الأحداث لـ"</string>
     <string name="zen_mode_event_rule_summary_calendar_template" msgid="5135844750232403975">"أثناء الأحداث للتقويم <xliff:g id="CALENDAR">%1$s</xliff:g>"</string>
@@ -3050,14 +3055,14 @@
     <string name="zen_mode_from_anyone" msgid="2638322015361252161">"من أي شخص"</string>
     <string name="zen_mode_from_contacts" msgid="2232335406106711637">"من جهات الاتصال فقط"</string>
     <string name="zen_mode_from_starred" msgid="2678345811950997027">"من جهات الاتصال المميزة بنجمة فقط"</string>
-    <string name="zen_mode_from_none" msgid="8219706639954614136">"بدون"</string>
+    <string name="zen_mode_from_none" msgid="8219706639954614136">"ولا أي رسالة"</string>
     <string name="zen_mode_alarms" msgid="2165302777886552926">"التنبيهات"</string>
     <string name="zen_mode_reminders" msgid="5458502056440485730">"التذكيرات"</string>
     <string name="zen_mode_events" msgid="7914446030988618264">"الأحداث"</string>
     <string name="zen_mode_all_callers" msgid="584186167367236922">"جميع المتصلين"</string>
-    <string name="zen_mode_selected_callers" msgid="3127598874060615742">"المتصلون المحددون"</string>
-    <string name="zen_mode_repeat_callers" msgid="5019521886428322131">"المتصلون المتكررون"</string>
-    <string name="zen_mode_repeat_callers_summary" msgid="7192713032364140137">"في حال اتصال الشخص نفسه للمرة الثانية في غضون <xliff:g id="MINUTES">%d</xliff:g> من الدقائق، اسمح له."</string>
+    <string name="zen_mode_selected_callers" msgid="3127598874060615742">"المتصلون المحدّدون"</string>
+    <string name="zen_mode_repeat_callers" msgid="5019521886428322131">"المتصلون المتكرّرون"</string>
+    <string name="zen_mode_repeat_callers_summary" msgid="7192713032364140137">"السماح فقط في حال اتصال الشخص نفسه للمرة الثانية في غضون <xliff:g id="MINUTES">%d</xliff:g> من الدقائق."</string>
     <string name="zen_mode_when" msgid="2767193283311106373">"تشغيل تلقائي"</string>
     <string name="zen_mode_when_never" msgid="8809494351918405602">"مطلقًا"</string>
     <string name="zen_mode_when_every_night" msgid="3122486110091921009">"كل ليلة"</string>
@@ -3084,11 +3089,11 @@
     </plurals>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="7465525754879341907">"التغيير إلى التنبيهات فقط حتى <xliff:g id="FORMATTEDTIME">%1$s</xliff:g>"</string>
     <string name="zen_mode_summary_always" msgid="6172985102689237703">"تغيير إلى المقاطعة دائمًا"</string>
-    <string name="zen_mode_screen_on" msgid="7712038508173845101">"حظر عندما تكون الشاشة في وضع الإيقاف"</string>
-    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"منع الإشعارات التي يتم تجاهلها باستخدام إعداد \"عدم الإزعاج\" من الظهور بشكل سريع أو الظهور بالكامل على الشاشة"</string>
-    <string name="zen_mode_screen_off" msgid="5026854939192419879">"حظر عندما تكون الشاشة في وضع الإيقاف"</string>
-    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"منع الإشعارات التي يتم تجاهلها باستخدام إعداد \"عدم الإزعاج\" من تشغيل الشاشة أو إحداث وميض لمصباح الإشعارات"</string>
-    <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"منع الإشعارات التي يتم تجاهلها باستخدام إعداد \"عدم الإزعاج\" من تشغيل الشاشة"</string>
+    <string name="zen_mode_screen_on" msgid="7712038508173845101">"حظرها عندما تكون الشاشة مشغّلة"</string>
+    <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"منع الإشعارات التي يتمّ تجاهلها في وضع \"عدم الإزعاج\" من الظهور بشكل جزئي أو كامل على الشاشة"</string>
+    <string name="zen_mode_screen_off" msgid="5026854939192419879">"حظرها عندما تكون الشاشة غير مشغلّة"</string>
+    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"منع الإشعارات التي يتم تجاهلها في وضع \"عدم الإزعاج\" من تشغيل الشاشة أو إحداث وميض عبر مصباح الإشعارات"</string>
+    <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"منع الإشعارات التي يتم تجاهلها في وضع \"عدم الإزعاج\" من تشغيل الشاشة"</string>
     <string name="zen_mode_all_visual_interruptions" msgid="2851308980832487411">"إيقاف"</string>
     <string name="zen_mode_screen_on_visual_interruptions" msgid="7373348148129140528">"عندما تكون الشاشة في وضع التشغيل"</string>
     <string name="zen_mode_screen_off_visual_interruptions" msgid="4850792880144382633">"عندما تكون الشاشة في وضع الإيقاف"</string>
@@ -3353,8 +3358,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"عرض التطبيق أمام غيره"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"يتم السماح لعدد <xliff:g id="COUNT_0">%1$d</xliff:g> من <xliff:g id="COUNT_1">%2$d</xliff:g> تطبيق بالظهور أمام غيره من التطبيقات"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"التطبيقات التي تحمل أذونات"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"نعم"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"لا"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"تثبيت التطبيقات غير المعروفة"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"تثبيت التطبيقات من مصادر غير معروفة"</string>
     <string name="write_settings" msgid="4797457275727195681">"تعديل إعدادات النظام"</string>
@@ -3367,10 +3374,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"إذن تعديل التطبيق لإعدادات النظام"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"السماح بتعديل إعدادات النظام"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"يتيح هذا الإذن للتطبيق إمكانية تعديل إعدادات النظام."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"نعم"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"لا"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"مسموح به"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"غير مسموح به"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"السماح بتثبيت تطبيقات من هذا المصدر"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"يمكنك اللف مرتين لفتح الكاميرا"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"يمكنك فتح تطبيق الكاميرا من خلال لف رسغك مرتين"</string>
@@ -3469,8 +3472,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"شهريًا في يوم <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"قيود الشبكات"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="zero"><xliff:g id="COUNT">%1$d</xliff:g> قيد</item>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index 0f5d59e..5a1f909 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Yaxşı"</item>
     <item msgid="8986346415847956850">"Əla"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Həmişə"</item>
-    <item msgid="844721238536786870">"Yalnız taxılı olduğu zaman"</item>
-    <item msgid="1986753720941888596">"Heç vaxt"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Həmişə"</item>
-    <item msgid="7433294150916905997">"Yalnız qoşulan zaman"</item>
-    <item msgid="1390404486722375028">"Heç vaxt"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Son 30 gün"</item>
     <item msgid="6600989128423965319">"İstifadə siklini əldə edin..."</item>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 20aab43..84f28a8 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Siz indi tərtibatçısınız!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Ehtiyac yoxdur, Siz artı gəlişdiricisiniz."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Simsiz və şəbəkələr"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Əlaqələr"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Cihaz"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ayrılsın mı?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Sizin bununla bağlantınızı kəsəcək:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Bluetooth ayarlarını dəyişməyə icazəniz yoxdur."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth ayarları açıq olarkən <xliff:g id="DEVICE_NAME">%1$s</xliff:g> yaxınlıqdakı cihazlara görünən olur."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC ünvanı: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ayrılsın?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Yayım"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profil deaktiv edilsin?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s sizin mesajlarınıza giriş istəyir. %2$s adlı istifadəçi üçün girişə icazə verilsin?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM girişi sorğusu"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> SIM kartınıza giriş hüququ istəyir. SIM karta giriş hüququnun verilməsi bağlantı müddətində cihazınızda data bağlantını deaktiv edəcək. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> cihazına giriş hüququ verin"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Digər cihazlara <xliff:g id="DEVICE_NAME">^1</xliff:g> olaraq görünür"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Vaxt və tarix"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Vaxt zonasını seçin"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Oyatmaq üçün qaldırın"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ətraf mühit displeyi"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Bildirişlər aldığınız zaman ekran oyansın"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Həmişə aktiv"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Vaxt, bildiriş ikonası və digər məlumatları göstərin"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Şrift ölçüsü"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Mətni kiçildin və ya böyüdün"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SİM kart kilidi parametrləri"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> xidməti istifadə edilsin?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> etməlidir:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Çünki, tətbiq icazə sorğusunu anlaşılmaz edir. Ayarlar cavabınızı doğrulaya bilməz."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Digər tətbiqlər bu seçimlərin üstündə göstərildiyinə görə Ayarlar əməliyyata cavab verə bilmir."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"<xliff:g id="SERVICE">%1$s</xliff:g> aktiv olarsa, cihazınız data şifrələnməsini genişləndirmək üçün ekran kilidini istifadə etməyəcək."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Girişimlik xidmətini aktiv etdiyiniz üçün cihazınız data şifrələnməsini genişləndirmək üçün ekran kilidini istifadə etməyəcək."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> xidmətinin aktiv edilməsi şifrələnməyə təsir etdiyi üçün modelinizi təsdiq etməlisiniz."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Bildirişlər"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Qabaqcıl"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"İş bildirişləri"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"İkona nişanlarına icazə verin"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Parıltı işığı"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Ekran kilidində"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Bütün bildiriş məzmunlarını göstər"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Orta"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Yüksək"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Vacib"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Səsə icazə verin"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Səsə icazə verin"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Səs, vibrasiyanı deaktiv edin və ya bu bildirişlərə cari ekranınızda baxın."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Bildiriş köməkçisi"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Bildiriş girişi"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Şəkil-içində-şəkil"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Şəkil içində şəkil icazəsi"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Tətbiq açıq olanda və ya tətbiqdən çıxdıqdan sonra (məsələn, videoya baxmağa davam etmək üçün) bu tətbiqə şəkil içində şəkil pəncərəsi yaratmağa icazə verin. Bu pəncərə istifadə etdiyiniz digər tətbiqlərin üstündə görüntülənəcək."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Bəli"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Xeyr"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"Narahat etməyin\" girişi"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Heç bir tətbiq \"Narahat etməyin\" girişi sorğusu göndərməyib"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Tətbiqlər endirilir..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Bu bildirişlər heç vaxt göstərilməsin"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Bildirişləri göstərin"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Bildirişləri heç vaxt ekranda və ya periferik cihazlarda göstərməyin."</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Nişan tətbiq ikonası"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Əgər dəstəkləyirsə, bildirişləri Əsas tətbiqdə nişanlar kimi göstərin."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"İkona nişanına icazə verin"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Narahat etməyin\" seçimini əvəzləyin"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Narahat Etməyin seçimi Yalnız Prioritet üçün ayarlandıqda bildirişlərin mane olmasına imkan verin"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Ekran kilidində"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Tətbiqlər üzərindən görüntüləmə"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Digər tətbiqlərin üzərindən görüntülənən <xliff:g id="COUNT_1">%2$d</xliff:g> tətbiqdən <xliff:g id="COUNT_0">%1$d</xliff:g> tətbiq"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Icazəsi ilə Apps"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Bəli"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Xeyr"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Naməlum tətbiqlərin quraşdırılması"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"naməlum mənbələrdən tətbiq quraşdırın"</string>
     <string name="write_settings" msgid="4797457275727195681">"Sistem ayarlarında dəyişiklik edin"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Tətbiqin sistem ayarlarını dəyişdirmə icazəsi"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Sistem ayarlarını dəyişdirməyə imkan verin"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Bu icazə tətbiqə sistem ayarlarını dəyişdirməyə imkan verir."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Bəli"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Xeyr"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"İcazə verilib"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"İcazə verilməyib"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Bu mənbədən icazə verin"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kamera üçün iki dəfə burun"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Biləyinizi iki dəfə buraraq kamera tətbiqini açın"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> Data xəbərdarlığı"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> Data xəbərdarlığı / <xliff:g id="ID_2">%2$s</xliff:g> Data limiti"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Hesablama dövrü"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"<xliff:g id="ID_1">%1$s</xliff:g> günündə hər ay"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Şəbəkə məhdudiyyətləri"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> məhdudiyyət</item>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 7e1c9bd..f5a74d0 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobra"</item>
     <item msgid="8986346415847956850">"Odlična"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Uvek"</item>
-    <item msgid="844721238536786870">"Samo kad se puni"</item>
-    <item msgid="1986753720941888596">"Nikad"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Uvek"</item>
-    <item msgid="7433294150916905997">"Samo kad se puni"</item>
-    <item msgid="1390404486722375028">"Nikada"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Poslednjih 30 dana"</item>
     <item msgid="6600989128423965319">"Podesi ciklus potrošnje..."</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 265b3a6..34390ef 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -31,10 +31,12 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Postali ste programer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nema potrebe, već ste programer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bežična veza i mreže"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Veze"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Uređaj"</string>
-    <string name="header_category_personal" msgid="3310195187905720823">"Lično"</string>
+    <string name="header_category_personal" msgid="3310195187905720823">"Lični"</string>
     <string name="header_category_access" msgid="7580499097416970962">"Pristup"</string>
     <string name="header_category_system" msgid="2816866961183068977">"Sistem"</string>
     <string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Omogući vezu za prenos podataka"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Želite li da prekinete vezu?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Ovim ćete prekinuti vezu sa uređajem:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nemate dozvolu za promenu podešavanja Bluetooth-a."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> je vidljiv uređajima u blizini dok su Bluetooth podešavanja otvorena."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC adresa Bluetooth-a: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Želite li da prekinete vezu sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Emitovanje"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Želite li da onemogućite profil?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s želi da pristupi porukama. Želite li da odobrite pristup za %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Zahtev za pristup SIM kartici"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi da pristupa SIM kartici. Odobravanje pristupa SIM kartici će onemogućiti vezu za prenos podataka na uređaju dok traje povezivanje. Dajte pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Drugim uređajima vidljiv kao <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum i vreme"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Izbor vremenske zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -585,7 +591,7 @@
       <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> aktivne aplikacije</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aktivnih aplikacija</item>
     </plurals>
-    <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+    <string name="manage_trust_agents" msgid="4629279457536987768">"Pouzdani agenti"</string>
     <string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Da biste ga koristili, prvo podesite zaključavanje ekrana"</string>
     <string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ništa"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +968,7 @@
     <string name="search_settings" msgid="1910951467596035063">"Pretraga"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Upravljanje podešavanjima pretrage i istorijom"</string>
     <string name="search_settings_no_results" msgid="8799027492641230999">"Nema rezultata"</string>
-    <string name="display_settings" msgid="7965901687241669598">"Prikaz"</string>
+    <string name="display_settings" msgid="7965901687241669598">"Ekran"</string>
     <string name="accelerometer_title" msgid="7854608399547349157">"Automatsko rotiranje ekrana"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Promeni položaj automatski prilikom rotiranja tableta"</string>
     <string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Automatska promena položaja prilikom rotacije telefona"</string>
@@ -1033,6 +1039,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Podigni za aktivaciju"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambijentalni ekran"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Probudite ekran kada primite obaveštenja"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Uvek uključeno"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Prikazuje vreme, ikone obaveštenja i druge informacije"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Veličina fonta"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Omogućava da tekst bude veći ili manji"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Zaključavanje SIM kartice"</string>
@@ -1879,8 +1887,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Želite li da koristite <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> treba:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Pošto aplikacija skriva zahtev za dozvolu, Podešavanja ne mogu da verifikuju odgovor."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Podešavanja ne mogu da odgovore na radnju jer se neka druga aplikacija prikazuje preko ovih opcija."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ako uključite <xliff:g id="SERVICE">%1$s</xliff:g>, uređaj neće koristiti zaključavanje ekrana da bi poboljšao šifrovanje podataka."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Pošto ste uključili uslugu pristupačnosti, uređaj neće koristiti zaključavanje ekrana da bi poboljšao šifrovanje podataka."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Pošto uključivanje usluge <xliff:g id="SERVICE">%1$s</xliff:g> utiče na šifrovanje podataka, treba da potvrdite šablon."</string>
@@ -2202,7 +2209,7 @@
     <string name="no_device_admins" msgid="4846602835339095768">"Nema dostupnih aplikacija za administratora uređaja"</string>
     <string name="personal_device_admin_title" msgid="2849617316347669861">"Lični"</string>
     <string name="managed_device_admin_title" msgid="7853955652864478435">"Posao"</string>
-    <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Nedostupno"</string>
+    <string name="no_trust_agents" msgid="7450273545568977523">"Nema dostupnih pouzdanih agenata"</string>
     <string name="add_device_admin_msg" msgid="1501847129819382149">"Aktiviraj aplikaciju za administratore?"</string>
     <string name="add_device_admin" msgid="4192055385312215731">"Aktiviraj ovu aplikaciju za administratore uređaja"</string>
     <string name="device_admin_add_title" msgid="3140663753671809044">"Administrator uređaja"</string>
@@ -2816,6 +2823,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Obaveštenja"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Napredna"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obaveštenja za Work"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Dozvoli značke na ikonama"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Uključi treperenje lampice"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na zaključanom ekranu"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Prikaži sav sadržaj obaveštenja"</string>
@@ -2841,7 +2849,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Srednji"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Visok"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Hitan"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Dozvoli zvuk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Dozvoli zvuk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Nema nikakvog zvuka ni vibracije niti se ova obaveštenja nakratko prikazuju na aktuelnom ekranu."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Pomoćnik za obaveštenja"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Pristup obaveštenjima"</string>
@@ -2871,8 +2879,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Slika u slici"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Dozvoli sliku u slici"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Dozvolite ovoj aplikaciji da pravi prozor slike u slici dok je otvorena ili kada izađete iz nje (na primer, da biste nastavili da gledate neki video). Ovaj prozor se prikazuje preko drugih aplikacija koje koristite."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Da"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Pristup opciji Ne uznemiravaj"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nijedna instalirana aplikacija nije zahtevala pristup opciji Ne uznemiravaj"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Učitavaju se aplikacije..."</string>
@@ -2900,8 +2906,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nikada ne prikazuj ova obaveštenja"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Prikazuj obaveštenja"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Obaveštenja se nikada ne prikazuju na traci ili periferijskim uređajima"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ikona značke za aplikaciju"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Prikazuje obaveštenja kao značke u aplikaciji Home ako je to podržano."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Dozvoli značku na ikoni"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Zameni režim Ne uznemiravaj"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Omogućava da ova obaveštenja nastave da se prikazuju kada je režim Ne uznemiravaj podešen na opciju Samo prioritetni prekidi"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na zaključanom ekranu"</string>
@@ -3042,7 +3047,7 @@
     <string name="storage_used" msgid="7128074132917008743">"Memorijski prostor u upotrebi"</string>
     <string name="change" msgid="6657848623929839991">"Promeni"</string>
     <string name="change_storage" msgid="600475265207060436">"Promenite memoriju"</string>
-    <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja aplikacije"</string>
+    <string name="notifications_label" msgid="8543457911148619898">"Obaveštenja o aplikaciji"</string>
     <string name="notifications_enabled" msgid="6983396130566021385">"Uključena"</string>
     <string name="notifications_disabled" msgid="334416731283131597">"Sve je isključeno"</string>
     <string name="notifications_partly_blocked" msgid="592071133950126656">"Uključenih kategorija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3168,12 +3173,12 @@
     <string name="usb_use_power_only" msgid="6426550616883919530">"Napajanje"</string>
     <string name="usb_use_power_only_desc" msgid="3461232831015575152">"Punite povezani uređaj. Radi samo sa uređajima koji podržavaju punjenje preko USB-a."</string>
     <string name="usb_use_file_transfers" msgid="7409600791007250137">"Prenos datoteka"</string>
-    <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosi datoteke na drugi uređaj"</string>
+    <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Prenosite datoteke na drugi uređaj"</string>
     <string name="usb_use_photo_transfers" msgid="7794775645350330454">"Prenos slika (PTP)"</string>
-    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosi slike ili datoteke ako MTP nije podržan (PTP)"</string>
+    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Prenosite slike ili datoteke ako MTP nije podržan (PTP)"</string>
     <string name="usb_use_MIDI" msgid="870922185938298263">"Korišćenje uređaja u MIDI režimu"</string>
-    <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristi ovaj uređaj kao MIDI"</string>
-    <string name="usb_use" msgid="3256040963685055320">"Upotrebite USB za:"</string>
+    <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Koristite ovaj uređaj kao MIDI"</string>
+    <string name="usb_use" msgid="3256040963685055320">"Koristite USB za:"</string>
     <string name="usb_pref" msgid="1400617804525116158">"USB"</string>
     <string name="usb_summary_charging_only" msgid="7544327009143659751">"Punjenje uređaja"</string>
     <string name="usb_summary_power_only" msgid="3629517713817003738">"Napajanje"</string>
@@ -3236,8 +3241,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Prikaz preko drugih aplikacija"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikacije sa dozvolom za prikaz preko drugih: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije sa dozvolom"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalirajte nepozn. apl."</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instaliranje aplikacije nepoznati izvori"</string>
     <string name="write_settings" msgid="4797457275727195681">"Menjanje podešavanja sistema"</string>
@@ -3250,10 +3257,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Dozvola za menjanje podešavanja sistema za aplikaciju"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Dozvoli menjanje podešavanja sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Ova dozvola dozvoljava aplikaciji da menja podešavanja sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Da"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dozvoljeno"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nije dozvoljeno"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Dozvoli iz ovog izvora"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dvaput zaokrenite za kameru"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Otvorite aplikaciju Kamera tako što ćete dvaput zaokrenuti ručni zglob"</string>
@@ -3277,7 +3280,7 @@
     <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Uto 18:02"</string>
     <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Uto 18:03"</string>
     <string name="disconnected" msgid="4836600637485526329">"Nije povezano"</string>
-    <string name="data_usage_summary_format" msgid="7507047900192160585">"Koristi se <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
+    <string name="data_usage_summary_format" msgid="7507047900192160585">"Iskorišćeno je <xliff:g id="AMOUNT">%1$s</xliff:g> podataka"</string>
     <plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
       <item quantity="one">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikaciju</item>
       <item quantity="few">Isključeno za <xliff:g id="COUNT">%d</xliff:g> aplikacije</item>
@@ -3349,8 +3352,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Upozorenje za potrošnju podataka: <xliff:g id="ID_1">%1$s</xliff:g>/Ograničenje za potrošnju podataka: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Obračunski ciklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Svakog <xliff:g id="ID_1">%1$s</xliff:g>. u mesecu"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Mrežna ograničenja"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ograničenje</item>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 6cbe699..5b1d2d2 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Добры"</item>
     <item msgid="8986346415847956850">"Выдатны"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Заўсёды"</item>
-    <item msgid="844721238536786870">"Толькі калі падлучаны"</item>
-    <item msgid="1986753720941888596">"Ніколі"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Заўсёды"</item>
-    <item msgid="7433294150916905997">"Толькі калі падлучаны"</item>
-    <item msgid="1390404486722375028">"Ніколі"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Апошнія 30 дзён"</item>
     <item msgid="6600989128423965319">"Заданне цыклу расходу..."</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 7ca8cc3..5a2c059 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Цяпер вы - распрацоўшчык!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Не трэба, вы ўжо з\'яўляецеся распрацоўшчыкам."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Бесправадныя сеткі"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Сувязi"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Прылада"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Адключыцца?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Гэта завершыць вашу сувязь з прыладай &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"У вас няма дазволу на змяненне налад Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Пакуль Bluetooth уключаны, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> бачная для прылад, якія знаходзяцца побач."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC-адрас Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Адлучыць <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Перадача даных"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Адключыць профіль?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s спрабуе атрымаць доступ да вашых паведамленняў. Дазволіць доступ да %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Запыт доступу да SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> спрабуе атрымаць доступ да вашай SIM-карты. Прадастаўленне доступу да SIM-карты адключыць перадачу даных на прыладзе на час падлучэння. Даць доступ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Бачная для іншых прылад як прылада <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Дата і час"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Вылучыце гадзінны пояс"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1046,6 +1052,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Абуджэнне пры падняцці"</string>
     <string name="doze_title" msgid="2259176504273878294">"Аўтаматычнае ўключэнне экрана"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Абуджаць экран, калі вы атрымліваеце апавяшчэнні"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Заўсёды ўключана"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Паказваць значкі часу, памедамленняў і іншыя даныя"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Памер шрыфта"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Павялічыць або паменшыць тэкст"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Налады блакіроўкі SIM-карты"</string>
@@ -1900,8 +1908,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Выкарыстоўваць службу <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> патрабуе:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Паверх запыту дазволу адлюстроўваецца дадатак, таму ваш адказ не можа быць правераны ў Наладах."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Іншая праграма адлюстроўваецца паверх гэтых опцый, таму налады не адказваюць на ваша дзеянне."</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="enable_service_pattern_reason" msgid="777577618063306751">"Уключэнне <xliff:g id="SERVICE">%1$s</xliff:g> уплывае на шыфраванне даных, таму вы павінны пацвердзіць свой графічны ключ."</string>
@@ -2845,6 +2852,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Апавяшчэнні"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Пашыраныя"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Апавяшчэнні працоўнага профілю"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Дазволіць паказваць паметкі на значку"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Мігценне святла"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"На экране блакіроўкі"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Паказваць усё змесціва ў апавяшчэннях"</string>
@@ -2870,7 +2878,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Сярэдняя"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Высокая"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Тэрміновая"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дазволіць прайграванне гуку"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дазволіць прайграванне гуку"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Не прайграваць гук, не вібрыраваць і не паказваць гэтыя апавяшчэнні хутка ў полі зроку на бягучым экране."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Памочнік па апавяшчэннях"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Доступ да апавяшчэнняў"</string>
@@ -2901,8 +2909,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Відарыс у відарысе"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Дазволіць відарыс у відарысе"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Дазволіць гэтай праграме ствараць акно відарыса ў відарысе, калі праграма адкрыта або пасля таго, як вы выйдзеце з яе (напрыклад, каб працягнуць прагляд відэа). Гэта акно паказваецца паверх іншых праграм, якія вы выкарыстоўваеце."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Так"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Не"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Доступ да рэжыму «Не турбаваць»"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Запытаў доступу да рэжыму «Не турбаваць» ад усталяваных дадаткаў не паступала"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Загрузка дадаткаў..."</string>
@@ -2932,8 +2938,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ніколі не паказваць гэтыя апавяшчэнні"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Паказваць апавяшчэнні"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ніколі не паказваць апавяшчэнні на \"шторцы\" або на перыферыйных прыладах"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Мадыфікатар значка праграмы"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Паказваць апавяшчэнні як значкі ў праграме Home, калі падтрымліваецца."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Дазволіць паказваць паметкі на значку"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ігнараваць рэжым «Не турбаваць»"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Паказваць гэтыя апавяшчэнні, калі ў рэжыме «Не турбаваць» выбрана «Толькі прыярытэтныя»"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"На экране блакіроўкі"</string>
@@ -3277,8 +3282,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Паказваць паверх іншых праграм"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> з <xliff:g id="COUNT_1">%2$d</xliff:g> праграм(-ы) дазволена паказвацца паверх іншых праграм"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Дадаткі з дазволам"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Так"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Не"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Усталёўваць невядомыя праграмы"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"усталёўваць праграмы з невядомых крыніц"</string>
     <string name="write_settings" msgid="4797457275727195681">"Змена сістэмных налад"</string>
@@ -3291,10 +3298,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Дазвол змены сістэмных налад для дадатку"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Дазволіць змяняць сістэмныя налады"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Гэта дазваляе дадатку змяняць сістэмныя налады."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Так"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Не"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Дазволена"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Забаронена"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Дазволіць з гэтай крыніцы"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Павярніце двойчы, каб адкрыць камеру"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Адкрыйце дадатак камеры, двойчы павярнуўшы сваё запясце"</string>
@@ -3391,8 +3394,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Штомесяц у наступны дзень: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Сеткавыя абмежаванні"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> абмежаванне</item>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 297e349..40d14ba 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Добър"</item>
     <item msgid="8986346415847956850">"Отличен"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Винаги"</item>
-    <item msgid="844721238536786870">"Само при включено захранване"</item>
-    <item msgid="1986753720941888596">"Никога"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Винаги"</item>
-    <item msgid="7433294150916905997">"Само при включено захранване"</item>
-    <item msgid="1390404486722375028">"Никога"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Последните 30 дни"</item>
     <item msgid="6600989128423965319">"Цикъл на пренос..."</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index fab217f..64963d4 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Вече сте програмист!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Не е необходимо – вече сте програмист."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Да се изключи ли?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Това ще прекрати връзката ви със:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Нямате разрешение да променяте настройките за Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"При отворени настройки за Bluetooth устройствата в района ще виждат „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC адрес на Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Да се прекрати ли връзката с/ъс <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Излъчване"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Да се деактивира ли потребит. профил?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s иска достъп до съобщенията ви. Ще предоставите ли достъп до %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Заявка за достъп до SIM картата"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> иска да получи достъп до SIM картата ви. Предоставянето му ще деактивира мобилните данни на устройството ви за продължителността на връзката. Разрешаване на достъпа до <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Вижда се като „<xliff:g id="DEVICE_NAME">^1</xliff:g>“ за другите устройства"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Дата и час"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Избор на часова зона"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Събуждане при повдигане"</string>
     <string name="doze_title" msgid="2259176504273878294">"Дисплей, открояващ важни неща"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Включване на екрана при получаване на известия"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Винаги включено"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Показване на часа, иконите за известия и друга информация"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Размер на шрифта"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Уголемяване или намаляване на текст"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Заключване на SIM картата"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Да се използва ли <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> изисква:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"От Настройки не може да се получи потвърждение за отговора ви, защото заявката за разрешение се прикрива от приложение."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Тъй като друго приложение се показва върху тези опции, Настройки не може да отговори на действието ви."</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="enable_service_pattern_reason" msgid="777577618063306751">"Тъй като включването на <xliff:g id="SERVICE">%1$s</xliff:g> засяга шифроването на данни, трябва да потвърдите фигурата си."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Известия"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Разширени"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Служебни известия"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Разрешав. на значки за иконата"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Премигваща светлина"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Върху заключения екран"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Цялото съдържание от известията"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Средна важност"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Голяма важност"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Неотложна важност"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Разрешаване на звуковия сигнал"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Разрешаване на звуковия сигнал"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Без издаване на звук, вибриране или показване на тези известия на текущия екран."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Помощник за известия"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Достъп до известията"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Картина в картина"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Разрешаване на режима „Картина в картина“"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Разрешете на това приложение да създава прозорец в режима „Картина в картина“, докато е отворено или след излизане от него (например, за да продължите да гледате видеоклип). Съответният прозорец ще се показва върху другите приложения, които използвате."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Да"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Не"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Достъп до „Не безпокойте“"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Никое инсталирано приложение не е заявило достъп до „Не безпокойте“"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Приложенията се зареждат..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Без показване на тези известия"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Показване на известията"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Без показване на известия в падащия панел или на периферни устройства"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Показване на значка върху иконата на приложението"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Показване на известията като значки на началния екран, ако функцията се поддържа."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Разрешаване на значка за иконата"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Отмяна на „Не безпокойте“"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Разрешаване на тези известия да продължат да ви прекъсват, когато за режим „Не безпокойте“ е зададено „Само с приоритет“."</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Върху заключения екран"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Показв. върху други приложения"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> от <xliff:g id="COUNT_1">%2$d</xliff:g> приложения имат разрешение да се показват върху други"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Приложения с разрешение"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Да"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Не"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Инст. на неизвестни прилож."</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"инсталиране приложения неизвестни източници"</string>
     <string name="write_settings" msgid="4797457275727195681">"Промяна на сист. настройки"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Промяна на системните настройки от приложения"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Разрешаване на промяна на сист. настройки"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Това разрешение позволява на дадено приложение да променя системните настройки."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Да"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Не"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Има разрешение"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Няма разрешение"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Разрешаване от този източник"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Завъртане два пъти за достъп до камерата"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Отворете приложението Камера с двукратно завъртане на китката си"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Всеки месец на <xliff:g id="ID_1">%1$s</xliff:g>. число"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Мрежови ограничения"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> ограничения</item>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 677e7c2..cca163c 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ভাল"</item>
     <item msgid="8986346415847956850">"খুব ভাল"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"সবসময়"</item>
-    <item msgid="844721238536786870">"কেবলমাত্র যখন প্লাগ ইন তখন"</item>
-    <item msgid="1986753720941888596">"কখনো নয়"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"সবসময়"</item>
-    <item msgid="7433294150916905997">"কেবলমাত্র যখন প্লাগ ইন তখন"</item>
-    <item msgid="1390404486722375028">"কখনই নয়"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"গত ৩০ দিন"</item>
     <item msgid="6600989128423965319">"ব্যবহার চক্র সেট করুন..."</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 2d630e7..dbdaf03 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"আপনি এখন একজন বিকাশকারী!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"কোনো প্রয়োজন নেই, আপনি ইতিমধ্যেই একজন বিকাশকারী।"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"সংযোগ বিচ্ছিন্ন করবেন?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"এটি আপনার সঙ্গে:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;\'র সংযোগ বিচ্ছিন্ন করবে"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"আপনার কাছে ব্লুটুথ সেটিংস পরিবর্তন করার অনুমতি নেই৷"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ব্লুটুথ সেটিংস খোলা থাকা অবস্থায় <xliff:g id="DEVICE_NAME">%1$s</xliff:g> কাছাকাছি ডিভাইসগুলির কাছে দৃশ্যমান হয়৷"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ব্লুটুথ MAC অ্যাড্রেস: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> এর সংযোগ বিচ্ছিন্ন করবেন?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"সম্প্রচার করা হচ্ছে"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"প্রোফাইল অক্ষম করবেন?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s আপনার বার্তাগুলি অ্যাক্সেস করতে ইচ্ছুক। %2$s এ অ্যাক্সেস দেবেন?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"সিম অ্যাক্সেস করার অনুরোধ"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> আপনার সিম কার্ড অ্যাক্সেস করতে চায়। এই সিম কার্ড অ্যাক্সেসের অনুমোদন দিলে তা সংযোগের সময়ে আপনার ডিভাইসে ডেটা সংযোগ অক্ষম করবে। <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> -এ অ্যাক্সেস দিন"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"অন্য ডিভাইস থেকে <xliff:g id="DEVICE_NAME">^1</xliff:g> নামে দেখা যাবে"</string>
     <string name="date_and_time" msgid="9062980487860757694">"দিন ও তারিখ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"সময় অঞ্চল বেছে নিন"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"সক্রিয় করতে লিফ্ট করুন"</string>
     <string name="doze_title" msgid="2259176504273878294">"অ্যামবিয়েন্ট প্রদর্শন"</string>
     <string name="doze_summary" msgid="3846219936142814032">"যখন আপনি বিজ্ঞপ্তিগুলি পাবেন তখন স্ক্রীন জাগায়"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"সর্বদা চালু"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"সময়, বিজ্ঞপ্তির আইকন ও অন্যান্য তথ্য দেখানো হবে"</string>
     <string name="title_font_size" msgid="4405544325522105222">"হরফের আকার"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"পাঠ্য বড় বা ছোট করুন"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"সিম কার্ড লক সেটিংস"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> ব্যবহার করবেন?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> কে এটি করতে হবে:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"একটি অ্যাপ্লিকেশান কোনো অনুমোদনের অনুরোধকে অস্পষ্ট করছে, তাই সেটিংস আপনার প্রতিক্রিয়া যাচাই করতে পারেনি৷"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"অন্য একটি অ্যাপ এই বিকল্পগুলির উপরে ডিসপ্লে হচ্ছে বলে সেটিংস আপনার দেওয়া ইনপুট বুঝতে পারছে না।"</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="enable_service_pattern_reason" msgid="777577618063306751">"কারণ <xliff:g id="SERVICE">%1$s</xliff:g> চালু করলে সেটি ডেটা এনক্রিপশন প্রভাবিত করে, আপনাকে আপনার প্যাটার্ন নিশ্চিত করতে হবে।"</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"বিজ্ঞপ্তি"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"উন্নত"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"কর্মস্থলের বিজ্ঞপ্তিগুলি"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"আইকন ব্যাজের অনুমতি দিন"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"মিটমিট করা আলো"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"লক স্ক্রীনে"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"সমস্ত বিজ্ঞপ্তির সামগ্রীগুলি দেখান"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"মাঝারি"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"বেশি"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"জরুরি"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"শব্দ চালু করুন"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"আওয়াজের অনুমতি দিন"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"শব্দ, কম্পন করে না বা বর্তমান স্ক্রীনে এই বিজ্ঞপ্তিগুলিকে দেখানো হয় না৷"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"বিজ্ঞপ্তি সহায়ক"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"বিজ্ঞপ্তির অ্যাক্সেস"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ছবির-মধ্যে-ছবি"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ছবির-মধ্যে-ছবি তৈরির অনুমতি দিন"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"অ্যাপটি খোলা থাকার সময় অথবা আপনি এটি ছেড়ে বেরিয়ে গেলে (যেমন, কোনো ভিডিও দেখার জন্য) এটিকে একটি ছবির-মধ্যে-ছবি সমেত উইন্ডো তৈরি করার অনুমতি দিন। চালু থাকা অন্যান্য অ্যাপের উপরে এই উইন্ডোটি দেখা যাবে।"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"হ্যাঁ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"না"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"বিরক্ত করবেন না অ্যাক্সেস করুন"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ইনস্টল করা নেই এমন অ্যাপগুলি বিরক্ত করবেন না অ্যাক্সেস করুন এর অনুরোধ জানিয়েছে"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"অ্যাপ্লিকেশানগুলি লোড করা হচ্ছে..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"এই বিজ্ঞপ্তিগুলি কখনোই দেখানো হবে না"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"বিজ্ঞপ্তিগুলি দেখান"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ছায়া বা পেরিফেরাল ডিভাইসে কখনও বিজ্ঞপ্তিগুলি দেখায় না"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ব্যাজ অ্যাপ আইকন"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"সমর্থিত হলে, হোম ট্যাবে ব্যাজ হিসেবে বিজ্ঞপ্তিগুলি দেখায়।"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"আইকন ব্যাজের অনুমতি দিন"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\'বিরক্ত করবেন না\' ওভাররাইড করুন"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"যখন শুধুমাত্র অগ্রাধিকার সাপেক্ষে \'বিরক্ত করবেন না\' সেট করা থাকবে তখন বাধাদানের ক্ষেত্রে এই বিজ্ঞপ্তিগুলিকে চালু থাকতে দিন"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"লক স্ক্রীনে"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"অন্য অ্যাপের উপরে দেখুন"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g>টির মধ্যে <xliff:g id="COUNT_0">%1$d</xliff:g>টি অ্যাপকে বাকিগুলির উপরে দেখতে পাওয়া যাবে"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"অনুমতি সহ অ্যাপ্লিকেশানগুলি"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"হ্যাঁ"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"না"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"অজানা অ্যাপ ইনস্টল করুন"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"অজানা উৎস থেকে আসা অ্যাপ ইনস্টল করুন"</string>
     <string name="write_settings" msgid="4797457275727195681">"সিস্টেম সেটিংস সংশোধন করুন"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"অ্যাপ্লিকেশানটি সিস্টেম সেটিংসের অনুমতি সংশোধন করে"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"সিস্টেম সেটিংস সংশোধন করার অনুমতি দিন"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"এই অনুমতিটি কোনো অ্যাপ্লিকেশানকে সিস্টেম সেটিংস সংশোধন করার অনুমতি দেয়৷"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"হ্যাঁ"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"না"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"অনুমোদিত"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"অনুমোদিত নয়"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"এই উৎস থেকে আসা অ্যাপগুলিকে অনুমতি দিন"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ক্যামেরার জন্য দুবার ঝাঁকান"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"আপনার কব্জি দুবার ঝাঁকিয়ে ক্যামেরা অ্যাপ্লিকেশানটি খুলুন"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"প্রতি মাসের <xliff:g id="ID_1">%1$s</xliff:g> তারিখে"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"নেটওয়ার্ক সীমাবদ্ধতা"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g>টি সীমাবদ্ধতা</item>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 35a2249..e2072db 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobar"</item>
     <item msgid="8986346415847956850">"Odličan"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Uvijek"</item>
-    <item msgid="844721238536786870">"Samo kada je priključen na napajanje"</item>
-    <item msgid="1986753720941888596">"Nikada"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Uvijek"</item>
-    <item msgid="7433294150916905997">"Samo kada je priključen na napajanje"</item>
-    <item msgid="1390404486722375028">"Nikada"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Posljednjih 30 dana"</item>
     <item msgid="6600989128423965319">"Podesi ciklus korištenja…"</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index abe6546..c2b97f7 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -31,6 +31,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Sada ste programer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nema potrebe, već ste programer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bežična veza i mreže"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Veze"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Uređaj"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Prekinuti vezu?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Time će se okončati vaša veza s uređajem:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nemate dozvolu da mijenjate postavke za Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> je vidljiv uređajima u blizini, dok su postavke Bluetootha otvorene."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC adresa za Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Želite li prekinuti vezu sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Emitovanje"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Onemogućiti profil?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s želi pristupiti svojim porukama. Dozvoliti pristup za %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Zahtjev za pristup SIM-u"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti vašoj SIM kartici. Odobrenje pristupa SIM kartici će onemogućiti vezu za prijenos podataka na vašem uređaju za vrijeme trajanja veze. Odobri pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Uređaj je vidljiv drugim uređajima kao <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum i vrijeme"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Odaberite vremensku zonu"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1036,6 +1042,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Podignite za buđenje"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambijentalni prikaz"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ekran se aktivira kada primite obavještenja"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Uvijek uključeno"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Prikaži vrijeme, ikone obavještenja i druge informacije"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Veličina fonta"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Povećavanje ili umanjivanje teksta"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Postavke zaključavanja SIM kartice"</string>
@@ -1765,12 +1773,12 @@
     <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"Kreirati vidžet i omogućiti pristup?"</string>
     <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"Nakon što kreirate vidžet, <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> može pristupiti svim podacima koje prikazuje."</string>
     <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"Uvijek dopusti da aplikacija <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> kreira vidžete i koristi njihove podatke"</string>
-    <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m <xliff:g id="SECONDS">%4$d</xliff:g>s"</string>
-    <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>h <xliff:g id="MINUTES">%2$d</xliff:g>m <xliff:g id="SECONDS">%3$d</xliff:g>s"</string>
-    <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g>m <xliff:g id="SECONDS">%2$d</xliff:g>s"</string>
-    <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g>s"</string>
-    <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g>d <xliff:g id="HOURS">%2$d</xliff:g>h <xliff:g id="MINUTES">%3$d</xliff:g>m"</string>
-    <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> s <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
+    <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min, <xliff:g id="SECONDS">%4$d</xliff:g> s"</string>
+    <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min, <xliff:g id="SECONDS">%3$d</xliff:g> s"</string>
+    <string name="battery_history_minutes" msgid="1467775596084148610">"<xliff:g id="MINUTES">%1$d</xliff:g> min, <xliff:g id="SECONDS">%2$d</xliff:g> s"</string>
+    <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g> s"</string>
+    <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g> d, <xliff:g id="HOURS">%2$d</xliff:g> h, <xliff:g id="MINUTES">%3$d</xliff:g> min"</string>
+    <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> h, <xliff:g id="MINUTES">%2$d</xliff:g> min"</string>
     <string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
     <string name="usage_stats_label" msgid="5890846333487083609">"Statistika korištenja"</string>
     <string name="testing_usage_stats" msgid="7823048598893937339">"Statistika korištenja"</string>
@@ -1885,8 +1893,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Koristiti <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Usluga <xliff:g id="SERVICE">%1$s</xliff:g> treba da:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Aplikacija nije dala dozvolu za zahtjev pa postavke ne mogu potvrditi vaš odgovor."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Postavke ne reagiraju na vašu radnju jer druga aplikacija prekriva ove opcije."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ukoliko uključite uslugu <xliff:g id="SERVICE">%1$s</xliff:g>, uređaj neće koristiti zaključavanje ekrana za poboljšanje šifriranja podataka."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Pošto ste uključili uslugu pristupačnosti, vaš uređaj neće koristiti zaključavanje ekrana za poboljšanje šifriranja podataka."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Uključivanje usluge <xliff:g id="SERVICE">%1$s</xliff:g> utiče na šifriranje podataka, stoga je potrebno da potvrdite svoj obrazac."</string>
@@ -1962,7 +1969,7 @@
     <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Ekran uključen"</string>
     <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS uključen"</string>
     <string name="battery_stats_camera_on_label" msgid="4935637383628414968">"Kamera je uključena"</string>
-    <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Lampa je uključena"</string>
+    <string name="battery_stats_flashlight_on_label" msgid="4319637669889411307">"Svjetiljka je uključena"</string>
     <string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"Wi-Fi"</string>
     <string name="battery_stats_wake_lock_label" msgid="1908942681902324095">"Aktivan"</string>
     <!-- no translation found for battery_stats_phone_signal_label (4137799310329041341) -->
@@ -1980,7 +1987,7 @@
     <string name="packages_subtitle" msgid="4736416171658062768">"Uključeni paketi"</string>
     <string name="battery_abnormal_details_title" msgid="7803612642167433678">"Aplikacija se ne ponaša kako treba"</string>
     <string name="power_screen" msgid="3023346080675904613">"Ekran"</string>
-    <string name="power_flashlight" msgid="7794409781003567614">"Lampa"</string>
+    <string name="power_flashlight" msgid="7794409781003567614">"Svjetiljka"</string>
     <string name="power_camera" msgid="4976286950934622605">"Fotoaparat"</string>
     <string name="power_wifi" msgid="1135085252964054957">"Wi‑Fi"</string>
     <string name="power_bluetooth" msgid="4373329044379008289">"Bluetooth"</string>
@@ -2009,7 +2016,7 @@
     <string name="usage_type_audio" msgid="6957269406840886290">"Zvuk"</string>
     <string name="usage_type_video" msgid="4295357792078579944">"Video"</string>
     <string name="usage_type_camera" msgid="8299433109956769757">"Kamera"</string>
-    <string name="usage_type_flashlight" msgid="1516392356962208230">"Lampa"</string>
+    <string name="usage_type_flashlight" msgid="1516392356962208230">"Svjetiljka"</string>
     <string name="usage_type_on_time" msgid="3351200096173733159">"Vrijeme rada"</string>
     <string name="usage_type_no_coverage" msgid="3797004252954385053">"Vrijeme bez signala"</string>
     <string name="usage_type_total_battery_capacity" msgid="3798285287848675346">"Ukupni kapacitet baterije"</string>
@@ -2026,7 +2033,7 @@
     <string name="battery_desc_standby" product="default" msgid="3009080001948091424">"Potrošnja baterije kada je telefon u stanju pripravnosti"</string>
     <string name="battery_desc_radio" msgid="5479196477223185367">"Potrošnja baterije za mobilni radio"</string>
     <string name="battery_sugg_radio" msgid="8211336978326295047">"Prebacite se na način rada u avionu kako biste štedili napajanje na područjima u kojima nema pokrivenosti mobilnom mrežom"</string>
-    <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom baterijske lampe"</string>
+    <string name="battery_desc_flashlight" msgid="2908579430841025494">"Potrošnja baterije upotrebom svjetiljke"</string>
     <string name="battery_desc_camera" msgid="7375389919760613499">"Potrošnja baterije upotrebom kamere"</string>
     <string name="battery_desc_display" msgid="5432795282958076557">"Potrošnja baterije na prikaz i pozadinsko osvjetljenje"</string>
     <string name="battery_sugg_display" msgid="3370202402045141760">"Smanjite osvjetljenje ekrana i/ili trajanje perioda do isključivanja ekrana"</string>
@@ -2813,16 +2820,16 @@
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"Potpuna tišina"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="6751708745442997940">"Blokiranje vizuelnih ometanja"</string>
-    <string name="sound_work_settings" msgid="6774324553228566442">"Zvuci radnog profila"</string>
-    <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Koristite zvuke ličnog profila"</string>
-    <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvuci su isti za radni i lični profil"</string>
+    <string name="sound_work_settings" msgid="6774324553228566442">"Zvukovi radnog profila"</string>
+    <string name="work_use_personal_sounds_title" msgid="1148331221338458874">"Koristite zvukove ličnog profila"</string>
+    <string name="work_use_personal_sounds_summary" msgid="6207040454949823153">"Zvukovi su isti za radni i lični profil"</string>
     <string name="work_ringtone_title" msgid="5806657896300235315">"Melodija zvona radnog telefona"</string>
     <string name="work_notification_ringtone_title" msgid="6081247402404510004">"Zadani zvuk radnih obavještenja"</string>
     <string name="work_alarm_ringtone_title" msgid="1441926676833738891">"Zadani zvuk radnog alarma"</string>
     <string name="work_sound_same_as_personal" msgid="3123383644475266478">"Isto kao kod ličnog profila"</string>
-    <string name="work_sync_dialog_title" msgid="7123973297187354813">"Želite li zamijeniti zvuke?"</string>
+    <string name="work_sync_dialog_title" msgid="7123973297187354813">"Zamijeniti zvukove?"</string>
     <string name="work_sync_dialog_yes" msgid="7243884940551635717">"Zamijeni"</string>
-    <string name="work_sync_dialog_message" msgid="7841728953710863208">"Zvuci vašeg ličnog profila će se koristi za vaš radni profil"</string>
+    <string name="work_sync_dialog_message" msgid="7841728953710863208">"Zvukovi vašeg ličnog profila će se koristi za vaš radni profil"</string>
     <string name="ringtones_install_custom_sound_title" msgid="5948792721161302255">"Želite li dodati prilagođeni zvuk?"</string>
     <string name="ringtones_install_custom_sound_content" msgid="2195581481608512786">"Ovaj fajl će se kopirati u folder <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
     <string name="ringtones_category_preference_title" msgid="5675912303120102366">"Melodije zvona"</string>
@@ -2830,6 +2837,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Obavještenja"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Napredno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obavještenja za posao"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Dozvoli značke ikona"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Trepćuće svjetlo"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na zaključanom ekranu"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Prikazuj sav sadržaj obavještenja"</string>
@@ -2855,7 +2863,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Srednja"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Visoka"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Hitno"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Dopusti zvuk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Dozvoli zvuk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ne oglašavaj ova obavještenja zvukom, vibriranjem niti kratkim prikazom na aktuelnom ekranu."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistent za obavještenja"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Pristup obavještenjima"</string>
@@ -2885,8 +2893,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Slika u slici"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Dozvoli način rada Slika u slici"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Dozvoli ovoj aplikaciji da kreira prozor u načinu rada Slika u slici dok je aplikacija otvorena ili nakon što je napustite (naprimjer, da nastavite gledati videozapis). Ovaj videozapis se prikazuje preko drugih aplikacija koje koristite."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Da"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Pristup opciji Ne ometaj"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nijedna instalirana aplikacija nije zatražila pristup za Ne ometaj"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Učitavaju se aplikacije..."</string>
@@ -2914,8 +2920,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nikada ne prikazuj ova obavještenja"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Prikaži obavještenja"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nikad ne prikazuj obavještenja u nijansi ili na perifernim uređajima"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Prikaži ikonu aplikacije kao značku"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Prikaži obavještenja kao značke na aplikaciji Home, ukoliko je podržano."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Dozvoli značku ikone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Premosti podešenja usluge Ne ometaj"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Dozvolite da se ova obavještenja i dalje čuju kada je opcija Ne ometaj podešena na Samo prioritetna obavještenja"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na zaključanom ekranu"</string>
@@ -3251,8 +3256,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Prikaz preko drugih aplikacija"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikacije s dozvolom za prikaz preko drugih aplikacija: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije s dozvolom"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instaliranje nepoznatih aplikacija"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instaliranje aplikacije nepoznati izvori"</string>
     <string name="write_settings" msgid="4797457275727195681">"Izmjena postavki sistema"</string>
@@ -3265,10 +3272,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Dozvola za izmjenu postavki sistema aplikacije"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Dozvoli izmijenu postavki sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Ovo odobrenje omogućava aplikaciji da izmijeni postavke sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Da"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dozvoljeno"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nije dozvoljeno"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Dozvoli iz ovog izvora"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dvostruko uvrtanje za otvaranje kamere"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Da biste otvorili aplikaciju za kameru, dva puta uvrnite zglob"</string>
@@ -3364,8 +3367,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Upozorenje o podacima <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Upozorenje o podacima <xliff:g id="ID_1">%1$s</xliff:g> / Ograničenje podataka <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Obračunski ciklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mjesečno, na dan: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Mrežna ograničenja"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ograničenje</item>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 0006c92..4efc4cf 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bona"</item>
     <item msgid="8986346415847956850">"Excel·lent"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Només quan s\'estigui carregant"</item>
-    <item msgid="1986753720941888596">"Mai"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Només quan s\'estigui carregant"</item>
-    <item msgid="1390404486722375028">"Mai"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Els darrers 30 dies"</item>
     <item msgid="6600989128423965319">"Defineix el cicle d\'ús..."</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c13a57f..195eee7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Ara ja ets un desenvolupador"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"No és necessari, ja ets un desenvolupador"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Connexions sense fil i xarxes"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connexions"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositiu"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Vols desconnectar-te?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Això posarà fi a la teva connexió amb:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"No tens permís per canviar la configuració del Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> serà visible per a dispositius propers mentre la configuració de Bluetooth estigui oberta."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adreça MAC de Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Vols desconnectar el dispositiu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Emissió"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vols desactivar el perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s vol accedir als teus missatges. Vols donar-li accés a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Sol·licitud d\'accés a la SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vol accedir a la targeta SIM. Si hi concedeixes accés, es desactivarà la connectivitat de dades al dispositiu mentre duri la connexió. Dóna accés a <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible com a <xliff:g id="DEVICE_NAME">^1</xliff:g> per a altres dispositius"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data i hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Selecció de la zona horària"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Aixeca el dispositiu per activar-lo"</string>
     <string name="doze_title" msgid="2259176504273878294">"Pantalla Ambient"</string>
     <string name="doze_summary" msgid="3846219936142814032">"La pantalla s\'activa quan arriben notificacions"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre activat"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostra l\'hora, les icones de notificació i altres dades"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Mida de la lletra"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Amplia o redueix el text"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Config. de bloqueig de SIM"</string>
@@ -1491,7 +1499,7 @@
     <string name="applications_settings" msgid="5281808652705396152">"Informació d\'aplicacions"</string>
     <string name="applications_settings_summary" msgid="6683465446264515367">"Gestiona les aplicacions i configura les dreceres d\'inici ràpid"</string>
     <string name="applications_settings_header" msgid="1014813055054356646">"Configuració de l\'aplicació"</string>
-    <string name="install_applications" msgid="4872012136210802181">"Orígens desconeguts"</string>
+    <string name="install_applications" msgid="4872012136210802181">"Fonts desconegudes"</string>
     <string name="install_applications_title" msgid="4987712352256508946">"Permet totes les fonts d\'apl."</string>
     <string name="recent_app_category_title" msgid="8449656234283016115">"Aplicacions utilitzades fa poc"</string>
     <string name="see_all_apps_title" msgid="1810966300215671576">"Mostra totes les aplicacions"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Vols fer servir <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Com que hi ha una aplicació que oculta una sol·licitud de permís, no es pot verificar la teva resposta des de la configuració."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"L\'aplicació Configuració no pot realitzar l\'acció perquè hi ha una altra aplicació que s\'està mostrant a sobre d\'aquestes opcions."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Si actives <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositiu no farà servir el bloqueig de pantalla per millorar l\'encriptació de dades."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Com que has activat un servei d\'accessibilitat, el teu dispositiu no farà servir el bloqueig de pantalla per millorar l\'encriptació de dades."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Cal que confirmis el patró perquè l\'activació del servei <xliff:g id="SERVICE">%1$s</xliff:g> afecta l\'encriptació de les dades."</string>
@@ -2159,7 +2166,7 @@
     <string name="privacy_settings_title" msgid="2978878794187459190">"Còpia de seguretat"</string>
     <string name="backup_section_title" msgid="7952232291452882740">"Còpia de seguretat i restauració"</string>
     <string name="personal_data_section_title" msgid="7815209034443782061">"Dades personals"</string>
-    <string name="backup_data_title" msgid="1239105919852668016">"Copia les meves dades"</string>
+    <string name="backup_data_title" msgid="1239105919852668016">"Còpia de seguretat de les meves dades"</string>
     <string name="backup_data_summary" msgid="708773323451655666">"Fes una còpia de seguretat als servidors de Google de dades d\'aplicacions, contrasenyes Wi-Fi i altres opcions de configuració"</string>
     <string name="backup_configure_account_title" msgid="3790872965773196615">"Compte de còpia de seguretat"</string>
     <string name="include_app_data_title" msgid="2829970132260278394">"Inclou dades de l\'aplicació"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificacions"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avançada"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificacions de la feina"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permet les insígnies d\'icona"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Llum intermitent"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"A la pantalla de bloqueig"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostra tot el contingut de les notificacions"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Mitjana"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgent"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permet el so"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permet el so"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"No reprodueix cap so, no vibra ni mostra aquestes notificacions a la pantalla actual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistent de notificacions"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Accés a les notificacions"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imatge en imatge"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permet el mode d\'imatge en imatge"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permet que aquesta aplicació creï una finestra d\'imatge en imatge mentre l\'aplicació està oberta o després de sortir-ne (per exemple, per seguir veient un vídeo). Aquesta finestra es mostra sobre altres aplicacions que estàs utilitzant."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sí"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Accés a No molestis"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Cap aplicació instal·lada no ha sol·licitat accés a No molestis."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"S\'estan carregant les aplicacions..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"No mostris mai aquestes notificacions"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostra notificacions"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"No mostris mai notificacions a l\'àrea de notificacions ni en dispositius perifèrics"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Icona d\'insígnia de l\'aplicació"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Si és compatible, mostra notificacions com a insígnies a l\'aplicació Inici."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permet el símbol de la icona"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Fes prioritària"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permet que aquestes notificacions continuïn interrompent quan el mode No molestis estigui configurat com a Només amb prioritat"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"A la pantalla de bloqueig"</string>
@@ -3197,10 +3202,12 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Mostra sobre altres aplicacions"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> aplicacions que poden mostrar-se sobre altres aplicacions"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicacions amb permís"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sí"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instal·lar aplicacions desconegudes"</string>
-    <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions orígens desconeguts"</string>
+    <string name="keywords_install_other_apps" msgid="761078076051006558">"instal·lar aplicacions fonts desconegudes"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modificar configuració sistema"</string>
     <string name="keywords_write_settings" msgid="6415597272561105138">"modifica la configuració del sistema i hi escriu"</string>
     <string name="write_settings_summary" msgid="4302268998611412696">"<xliff:g id="COUNT_0">%1$d</xliff:g> de: <xliff:g id="COUNT_1">%2$d</xliff:g> aplicacions poden modificar configuració del sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permís aplicació per modificar configuració sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permet modificar la configuració del sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Aquest permís permet que una aplicació modifiqui la configuració del sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sí"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permeses"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"No permeses"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permet d\'aquesta font"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Doble gir per obrir Càmera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Gira el canell dues vegades per obrir l\'aplicació Càmera"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Advertiment de dades: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Advertiment de dades: <xliff:g id="ID_1">%1$s</xliff:g> / Límit de dades: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Cicle de facturació"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Cada mes el dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restriccions de xarxa"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restriccions</item>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 76620c8..8ead7f6 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobrý"</item>
     <item msgid="8986346415847956850">"Vynikající"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Vždy"</item>
-    <item msgid="844721238536786870">"Pouze při nabíjení"</item>
-    <item msgid="1986753720941888596">"Nikdy"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Vždy"</item>
-    <item msgid="7433294150916905997">"Pouze při nabíjení"</item>
-    <item msgid="1390404486722375028">"Nikdy"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Posledních 30 dní"</item>
     <item msgid="6600989128423965319">"Zadat cyklus počítání..."</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 3d20132..6123b4b 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Voilà! Stal se z vás vývojář."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Není potřeba, již jste vývojář."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bezdrátová připojení a sítě"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Připojení"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Zařízení"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Odpojit?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tímto způsobem ukončíte připojení k zařízení:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nemáte oprávnění měnit nastavení Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Při zapnutém připojení Bluetooth je zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g> viditelné pro zařízení v okolí."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresa MAC pro Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Odpojit zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Vysílání"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Deaktivovat profil?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"Zařízení %1$s žádá o přístup k vašim zprávám. Povolit přístup zařízení %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Žádost o přístup k SIM kartě"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Zařízení <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> žádá o přístup k SIM kartě. Po dobu přístupu zařízení k SIM kartě bude datové připojení ve vašem zařízení vypnuto. Chcete zařízení <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> povolit přístup?"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Viditelné pro ostatní zařízení jako <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum a čas"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Vybrat časové pásmo"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Probudit zvednutím zařízení"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambientní displej"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Probudit obrazovku, když dostanete oznámení"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Vždy zapnuto"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Zobrazovat čas, ikony oznámení a další informace"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Velikost písma"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Umožňuje zvětšit nebo zmenšit text"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Nastavení zámku SIM karty"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Zapnout <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> potřebuje:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Žádost o oprávnění je blokována jinou aplikací. Nastavení proto vaši odpověď nemůže ověřit."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Nastavení na vaši akci nemůže zareagovat, protože se přes tyto možnosti zobrazuje jiná aplikace."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Pokud zapnete službu <xliff:g id="SERVICE">%1$s</xliff:g>, zařízení nebude používat zámek obrazovky k vylepšení šifrování dat."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Vzhledem k tomu, že jste zapnuli službu přístupnosti, nebude zařízení používat zámek obrazovky k vylepšení šifrování dat."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Protože zapnutí služby <xliff:g id="SERVICE">%1$s</xliff:g> má vliv na šifrování dat, je třeba, abyste potvrdili své gesto."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Oznámení"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Rozšířená nastavení"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Pracovní oznámení"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Povolit odznaky na ikonách"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blikání kontrolky"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na obrazovce uzamčení"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Zobrazit veškerý obsah oznámení"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Střední"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Vysoká"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Naléhavá"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Povolit zvuk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Povolit zvuk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Na tato oznámení nebudete upozorněni zvukem ani vibrací, ani se nebude zobrazovat jejich náhled na aktuální obrazovce."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistent oznámení"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Přístup k oznámením"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Obraz v obraze"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Povolit obraz v obraze"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Povolí této aplikaci vytvořit okno obrazu v obrazu, když je otevřená, nebo poté, co ji opustíte (například abyste mohli pokračovat ve sledování videa). Toto okno se zobrazuje nad ostatními aplikacemi, které používáte."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ano"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Přístup při nastavení Nerušit"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"O přístup při nastavení Nerušit nepožádaly žádné nainstalované aplikace"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Načítání aplikací..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Tato oznámení nikdy nezobrazovat"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Zobrazovat oznámení"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nezobrazovat oznámení na panelu ani v periferních zařízeních"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Odznaková ikona aplikace"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Zobrazovat oznámení jako odznaky ve výchozí aplikaci, je-li tato funkce podporována."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Povolit odznak na ikoně"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Přepsat nastavení Nerušit"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Umožnit těmto oznámením vyrušit mě, pokud je v nastavení Nerušit vybrána možnost Pouze prioritní"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na obrazovce uzamčení"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Zobrazit přes ostatní aplikace"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikace s povolením k zobrazení přes ostatní aplikace: <xliff:g id="COUNT_0">%1$d</xliff:g> z <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikace s oprávněním"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ano"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalace neznámých aplikací"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalace aplikace neznámé zdroje"</string>
     <string name="write_settings" msgid="4797457275727195681">"Změny nastavení systému"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Oprávnění aplikace ke změnám nastavení systému"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Povolit provádění změn nastavení systému"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Toto oprávnění umožňuje aplikaci měnit nastavení systému."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ano"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Povoleno"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Není povoleno"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Povolit z tohoto zdroje"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Otevření Fotoaparátu otočením zápěstí"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Umožňuje otevřít aplikaci Fotoaparát dvojitým otočením zápěstí."</string>
@@ -3389,8 +3392,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Upozornění na data: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Upozornění na data: <xliff:g id="ID_1">%1$s</xliff:g> / limit dat: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Fakturační cyklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Měsíčně (<xliff:g id="ID_1">%1$s</xliff:g>. den)"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Omezení sítě"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> omezení</item>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index e939775..c54b814 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"God"</item>
     <item msgid="8986346415847956850">"Fremragende"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Altid"</item>
-    <item msgid="844721238536786870">"Kun når tilsluttet strøm"</item>
-    <item msgid="1986753720941888596">"Aldrig"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Altid"</item>
-    <item msgid="7433294150916905997">"Kun når tilsluttet strøm"</item>
-    <item msgid="1390404486722375028">"Aldrig"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"De seneste 30 dage"</item>
     <item msgid="6600989128423965319">"Angiv cyklus for brug..."</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index e4bd5e2..7ccd9df 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Nu er du udvikler."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Det behøver du ikke. Du er allerede udvikler."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Trådløs og netværk"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Forbindelser"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Enhed"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Vil du afbryde?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Dette vil afslutte din forbindelse med:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Du har ikke tilladelse til at ændre Bluetooth-indstillinger."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> er synlig for enheder i nærheden, når Bluetooth-indstillingerne er åbne."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth-MAC-adresse: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Vil du afbryde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Dataudveksling"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vil du deaktivere profilen?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s vil gerne have adgang til dine beskeder. Vil du give %2$s adgang?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Anmodning om SIM-adgang"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vil have adgang til dit SIM-kort. Hvis du giver adgang til SIM-kortet, deaktiveres dataforbindelsen på din enhed, så længe den anden enhed er forbundet. Giv adgang til <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Synlig som <xliff:g id="DEVICE_NAME">^1</xliff:g> på andre enheder"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Dato og klokkeslæt"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Vælg tidszone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -734,7 +740,7 @@
     <string name="wifi_more" msgid="3195296805089107950">"Mere"</string>
     <string name="wifi_setup_wps" msgid="8128702488486283957">"Automatisk konfig. (WPS)"</string>
     <string name="wifi_show_advanced" msgid="3409422789616520979">"Avancerede valgmuligheder"</string>
-    <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede indstillinger. Tryk to gange for at skjule listen."</string>
+    <string name="wifi_advanced_toggle_description_expanded" msgid="2380600578544493084">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at skjule listen."</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="1463812308429197263">"Rullelisten Avancerede valgmuligheder. Tryk to gange for at udvide listen."</string>
     <string name="wifi_wps_setup_title" msgid="8207552222481570175">"Wi-Fi Protected Setup"</string>
     <string name="wifi_wps_setup_msg" msgid="315174329121275092">"Starter WPS..."</string>
@@ -1012,7 +1018,7 @@
     <string name="screensaver_settings_summary_dock" msgid="2072657401664633283">"Når enheden er tilsluttet en dockingstation"</string>
     <string name="screensaver_settings_summary_never" msgid="5165622985174349585">"Aldrig"</string>
     <string name="screensaver_settings_summary_off" msgid="2481581696365146473">"Fra"</string>
-    <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at kontrollere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
+    <string name="screensaver_settings_disabled_prompt" msgid="1239088321034437608">"Aktivér pauseskærmen for at administrere, hvad der sker, når telefonen er sat i dockingstationen og/eller går i dvale."</string>
     <string name="screensaver_settings_when_to_dream" msgid="7262410541382890146">"Starttidspunkt"</string>
     <string name="screensaver_settings_current" msgid="4663846038247130023">"Aktuel pauseskærm"</string>
     <string name="screensaver_settings_dream_start" msgid="4998187847985120168">"Start nu"</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Løft enheden for at vække den"</string>
     <string name="doze_title" msgid="2259176504273878294">"Aktiv låseskærm"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Væk skærmen, når du modtager underretninger"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Altid aktiveret"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Vis klokkeslæt, underretningsikoner og andre oplysninger"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Skriftstørrelse"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Gør teksten større eller mindre"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Indstillinger for låst SIM-kort"</string>
@@ -1532,7 +1540,7 @@
     <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Du har valgt at tillade, at denne app opretter widgets og får adgang til deres data."</string>
     <string name="auto_launch_disable_text" msgid="7800385822185540166">"Der er ikke angivet nogen standarder."</string>
     <string name="clear_activities" msgid="7408923511535174430">"Ryd standarder"</string>
-    <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du kontrollere, hvordan den skal tilpasses til din skærm."</string>
+    <string name="screen_compatibility_text" msgid="1616155457673106022">"Denne app er muligvis ikke beregnet til din skærm. Her kan du administrere, hvordan den skal tilpasses til din skærm."</string>
     <string name="ask_compatibility" msgid="7225195569089607846">"Spørg, når der startes"</string>
     <string name="enable_compatibility" msgid="5806819252068617811">"Skaler app"</string>
     <string name="unknown" msgid="1592123443519355854">"Ukendt"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Vil du bruge <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> har brug for at:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Indstillinger kan ikke bekræfte dit svar, fordi en app tilslører tilladelsesanmodningen."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Da en anden app vises oven på disse valgmuligheder, kan Indstillinger ikke reagere på din handling."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Hvis du aktiverer <xliff:g id="SERVICE">%1$s</xliff:g>, vil enheden ikke benytte skærmlåsen til at forbedre datakrypteringen."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Fordi du har aktiveret en tilgængelighedstjeneste, vil enheden ikke benytte skærmlåsen for at forbedre datakrypteringen."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Fordi det påvirker datakryptering at slå <xliff:g id="SERVICE">%1$s</xliff:g> til, skal du bekræfte dit mønster."</string>
@@ -2385,7 +2392,7 @@
     <string name="vpn_ipsec_user_cert" msgid="6880651510020187230">"IPSec-brugercertifikat"</string>
     <string name="vpn_ipsec_ca_cert" msgid="91338213449148229">"IPSec CA-certifikat"</string>
     <string name="vpn_ipsec_server_cert" msgid="6599276718456935010">"IPSec-servercertifikat"</string>
-    <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede indstillinger"</string>
+    <string name="vpn_show_options" msgid="7182688955890457003">"Vis avancerede valgmuligheder"</string>
     <string name="vpn_search_domains" msgid="5391995501541199624">"DNS-søgedomæner"</string>
     <string name="vpn_dns_servers" msgid="5570715561245741829">"DNS-servere (f.eks. 8.8.8.8)"</string>
     <string name="vpn_routes" msgid="3818655448226312232">"Videresendelsesruter (f.eks. 10.0.0.0/8)"</string>
@@ -2396,10 +2403,10 @@
     <string name="vpn_no_ca_cert" msgid="8776029412793353361">"(ingen bekræftelse af serveren)"</string>
     <string name="vpn_no_server_cert" msgid="2167487440231913330">"(modtaget fra serveren)"</string>
     <string name="vpn_always_on_invalid_reason_type" msgid="7574518311224455825">"Denne VPN-type kan ikke være forbundet hele tiden"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="477304620899799383">"Åbne VPN-forbindelser, understøtter kun numeriske serveradresser"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="2226648961940273294">"Der skal angives en DNS-server for åbne VPN-forbindelser"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="3551394495620249972">"DNS-serveradressen skal være numerisk for åbne VPN-forbindelser"</string>
-    <string name="vpn_always_on_invalid_reason_other" msgid="5959352052515258208">"De indtastede oplysninger understøtter ikke åbne VPN-forbindelser"</string>
+    <string name="vpn_always_on_invalid_reason_server" msgid="477304620899799383">"Altid aktiveret VPN understøtter kun numeriske serveradresser"</string>
+    <string name="vpn_always_on_invalid_reason_no_dns" msgid="2226648961940273294">"Der skal angives en DNS-server for altid aktiveret VPN"</string>
+    <string name="vpn_always_on_invalid_reason_dns" msgid="3551394495620249972">"DNS-serveradressen skal være numerisk for altid aktiverede VPN-netværk"</string>
+    <string name="vpn_always_on_invalid_reason_other" msgid="5959352052515258208">"De indtastede oplysninger understøtter ikke altid aktiveret VPN"</string>
     <string name="vpn_cancel" msgid="1979937976123659332">"Annuller"</string>
     <string name="vpn_done" msgid="8678655203910995914">"Annuller"</string>
     <string name="vpn_save" msgid="4233484051644764510">"Gem"</string>
@@ -2413,19 +2420,19 @@
     <string name="vpn_version" msgid="1939804054179766249">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="2232239391189465752">"Glem VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="2963898301277610248">"Erstat det eksisterende VPN-netværk?"</string>
-    <string name="vpn_set_vpn_title" msgid="4009987321156037267">"Skal VPN altid være slået til?"</string>
+    <string name="vpn_set_vpn_title" msgid="4009987321156037267">"Vil du konfigurere altid aktiveret VPN?"</string>
     <string name="vpn_first_always_on_vpn_message" msgid="3025322109743675467">"Hvis du aktiverer denne indstilling, vil du ikke have nogen internetforbindelse, før VPN-netværket etablerer forbindelse."</string>
     <string name="vpn_replace_always_on_vpn_enable_message" msgid="2577928591361606641">"Dit eksisterende VPN-netværk erstattes, og du vil ikke have nogen internetforbindelse, før VPN-netværket etablerer forbindelse."</string>
-    <string name="vpn_replace_always_on_vpn_disable_message" msgid="3011818750025879902">"Du har allerede forbindelse til et VPN-netværk, der altid er slået til. Hvis du opretter forbindelse til et andet netværk, erstattes dit eksisterende VPN, og Altid slået til-tilstanden deaktiveres."</string>
+    <string name="vpn_replace_always_on_vpn_disable_message" msgid="3011818750025879902">"Du har allerede forbindelse til et altid aktiveret VPN-netværk. Hvis du opretter forbindelse til et andet netværk, erstattes dit eksisterende VPN, og Altid aktiveret-tilstanden deaktiveres."</string>
     <string name="vpn_replace_vpn_message" msgid="5611635724578812860">"Du har allerede forbindelse til et VPN-netværk. Hvis du opretter forbindelse til et andet, erstattes dit eksisterende VPN."</string>
     <string name="vpn_turn_on" msgid="2363136869284273872">"Aktivér"</string>
     <string name="vpn_cant_connect_title" msgid="4517706987875907511">"<xliff:g id="VPN_NAME">%1$s</xliff:g> kan ikke oprette forbindelse"</string>
-    <string name="vpn_cant_connect_message" msgid="1352832123114214283">"Denne app understøtter ikke åben VPN-forbindelse"</string>
+    <string name="vpn_cant_connect_message" msgid="1352832123114214283">"Denne app understøtter ikke altid aktiveret VPN"</string>
     <string name="vpn_title" msgid="6317731879966640551">"VPN"</string>
     <string name="vpn_create" msgid="5628219087569761496">"Tilføj VPN-profil"</string>
     <string name="vpn_menu_edit" msgid="408275284159243490">"Rediger profil"</string>
     <string name="vpn_menu_delete" msgid="8098021690546891414">"Slet profil"</string>
-    <string name="vpn_menu_lockdown" msgid="7863024538064268139">"VPN altid aktiveret"</string>
+    <string name="vpn_menu_lockdown" msgid="7863024538064268139">"Altid aktiveret VPN"</string>
     <string name="vpn_no_vpns_added" msgid="5002741367858707244">"Der er ikke tilføjet nogen VPN-netværk"</string>
     <string name="vpn_always_on_summary" msgid="2821344524094363617">"Vær forbundet til VPN hele tiden"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="592304911378771510">"Understøttes ikke af denne app"</string>
@@ -2482,8 +2489,8 @@
     </plurals>
     <string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"En tredjepart kan overvåge din netværksaktivitet, herunder e-mails, apps og sikre websites.\n\nPålidelige loginoplysninger, der er installeret på din enhed, gør dette muligt."</string>
     <plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="2426799352517325228">
-      <item quantity="one">Kontrollér certifikat</item>
-      <item quantity="other">Kontrollér certifikater</item>
+      <item quantity="one">Tjek certifikat</item>
+      <item quantity="other">Tjek certifikater</item>
     </plurals>
     <string name="user_settings_title" msgid="6151874007858148344">"Brugere"</string>
     <string name="user_list_title" msgid="7937158411137563543">"Brugere og profiler"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Underretninger"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanceret"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Arbejdsunderretninger"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Tillad ikonbadges"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blinkende lys"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"På låseskærmen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Vis alt indhold i underretninger"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Middel"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Høj"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Haster"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Tillad lyd"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Tillad lyd"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Undlad at give lyd, vibrere eller vise disse underretninger på den aktuelle skærm."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Underretningsassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Adgang til underretninger"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Integreret billede"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Tillad integreret billede"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Giv tilladelse til at oprette et vindue med integreret billede, mens appen er åben, eller efter du lukker den (f.eks. for at fortsætte med at se en video). Dette vindue vises oven på andre apps, du bruger."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nej"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Adgang til \"Forstyr ikke\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ingen installerede apps har anmodet om adgang, når indstillingen \"Forstyr ikke\" er aktiveret."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Indlæser apps..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Vis aldrig disse underretninger"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Vis underretninger"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Vis aldrig underretninger i underretningspanelet eller på eksterne enheder"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge på appikon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Vis underretninger som badges i Home-appen, hvis det understøttes."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Tillad ikonbadge"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Tilsidesæt Forstyr ikke"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Lad disse underretninger fortsætte med at afbryde, når Forstyr ikke er slået til med angivelsen Kun prioritet"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"På låseskærmen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Vis oven på andre apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> af <xliff:g id="COUNT_1">%2$d</xliff:g> apps må vises oven på andre apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps med tilladelse"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nej"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installer ukendte apps"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installer apps fra ukendte kilder"</string>
     <string name="write_settings" msgid="4797457275727195681">"Rediger systemindstillinger"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Apptilladelse til at ændre systemindstillinger"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Tillad ændring af systemindstillinger"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Denne tilladelse giver en app lov til at ændre systemindstillinger."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nej"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Tilladt"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ikke tilladt"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Tillad fra denne kilde"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Drej to gange for at åbne kameraet"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Åbn kameraappen ved at dreje håndleddet to gange"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Dataadvarsel ved <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Dataadvarsel ved <xliff:g id="ID_1">%1$s</xliff:g> / Datagrænse på <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Faktureringscyklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Den <xliff:g id="ID_1">%1$s</xliff:g>. i hver måned"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Netværksbegrænsninger"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> begrænsning</item>
@@ -3391,7 +3393,7 @@
     <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"Ryd og konvertér"</string>
     <string name="reset_shortcut_manager_throttling" msgid="6495066467198668994">"Nulstil antalsbegrænsning i ShortcutManager"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="1826770872063707900">"Antalsbegrænsning i ShortcutManager er nulstillet"</string>
-    <string name="notification_suggestion_title" msgid="4506524937307816475">"Kontrollér underretninger for låseskærm"</string>
+    <string name="notification_suggestion_title" msgid="4506524937307816475">"Konfigurer underretninger for låseskærm"</string>
     <string name="notification_suggestion_summary" msgid="8521159741445416875">"Vis eller skjul indhold i underretninger"</string>
     <string name="page_tab_title_summary" msgid="4070309266374993258">"Alle"</string>
     <string name="page_tab_title_support" msgid="6330657582897417458">"Support"</string>
@@ -3537,9 +3539,9 @@
     </plurals>
     <string name="enterprise_privacy_input_method" msgid="6531350246850814920">"Standardtastatur"</string>
     <string name="enterprise_privacy_input_method_name" msgid="4941106433683067953">"Indstillet til <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
-    <string name="enterprise_privacy_always_on_vpn_device" msgid="4409098287763221215">"\"VPN-netværk altid aktiveret\" er slået til"</string>
-    <string name="enterprise_privacy_always_on_vpn_personal" msgid="9217774730260037434">"\"VPN-netværk altid aktiveret\" er slået til i din personlige profil"</string>
-    <string name="enterprise_privacy_always_on_vpn_work" msgid="7244472958208315814">"\"VPN-netværk altid aktiveret\" er slået til i din arbejdsprofil"</string>
+    <string name="enterprise_privacy_always_on_vpn_device" msgid="4409098287763221215">"\"Altid aktiveret VPN\" er aktiveret"</string>
+    <string name="enterprise_privacy_always_on_vpn_personal" msgid="9217774730260037434">"\"Altid aktiveret VPN\" er aktiveret på din personlige profil"</string>
+    <string name="enterprise_privacy_always_on_vpn_work" msgid="7244472958208315814">"\"Altid aktiveret VPN\" er aktiveret på din arbejdsprofil"</string>
     <string name="enterprise_privacy_global_http_proxy" msgid="7936664553416257333">"Global HTTP-proxy er konfigureret"</string>
     <string name="enterprise_privacy_ca_certs" msgid="5885892204903688909">"Pålidelige loginoplysninger"</string>
     <plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="526375234629534165">
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index aa90ce5..40c8029 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Gut"</item>
     <item msgid="8986346415847956850">"Sehr gut"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Immer"</item>
-    <item msgid="844721238536786870">"Nur wenn angeschlossen"</item>
-    <item msgid="1986753720941888596">"Nie"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Immer"</item>
-    <item msgid="7433294150916905997">"Nur wenn angeschlossen"</item>
-    <item msgid="1390404486722375028">"Nie"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Letzte 30 Tage"</item>
     <item msgid="6600989128423965319">"Nutzungszyklus wählen…"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index ae988b2..acb0753 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Du bist jetzt Entwickler!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Okay, du bist bereits Entwickler."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Drahtlos &amp; Netzwerke"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Verbindungen"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Gerät"</string>
@@ -109,7 +111,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Verbindung trennen?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Hierdurch wird die Verbindung mit&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt; getrennt."</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Du bist nicht zur Änderung der Bluetooth-Einstellungen berechtigt."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ist bei aktiviertem Bluetooth für Geräte in der Nähe sichtbar."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth-MAC-Adresse: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Verbindung mit <xliff:g id="DEVICE_NAME">%1$s</xliff:g> trennen?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Übertragung"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profil deaktivieren?"</string>
@@ -157,6 +162,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s möchte auf deine Nachrichten zugreifen. Möchtest du %2$s den Zugriff erlauben?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Anfrage wegen Zugriff auf SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> möchte auf deine SIM-Karte zugreifen. Wenn du den Zugriff auf die SIM-Karte gewährst, wird die Datenverbindung auf deinem Gerät für die Dauer der Verbindung deaktiviert. Möchtest du <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> den Zugriff erlauben?"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Für andere Geräte sichtbar als \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\""</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum &amp; Uhrzeit"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Zeitzone wählen"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Zum Aktivieren anheben"</string>
     <string name="doze_title" msgid="2259176504273878294">"Inaktivitätsdisplay"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Bei Benachrichtigungen Bildschirm aktivieren"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Immer aktiviert"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Uhrzeit, Benachrichtigungssymbole und andere Informationen anzeigen"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Schriftgröße"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Text vergrößern oder verkleinern"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Einstellungen für SIM-Sperre"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> verwenden?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> muss:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Deine Eingabe wird von \"Einstellungen\" nicht erkannt, weil eine App die Berechtigungsanfrage verdeckt."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Deine Aktion kann von \"Einstellungen\" nicht bearbeitet werden, weil eine andere App über diesen Optionen angezeigt wird."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Wenn du <xliff:g id="SERVICE">%1$s</xliff:g> aktivierst, verwendet dein Gerät nicht die Displaysperre, um die Datenverschlüsselung zu verbessern."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Da du eine Bedienungshilfe aktiviert hast, verwendet dein Gerät nicht die Displaysperre, um die Datenverschlüsselung zu verbessern."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Da die Aktivierung von <xliff:g id="SERVICE">%1$s</xliff:g> Auswirkungen auf die Datenverschlüsselung hat, musst du dein Muster bestätigen."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Benachrichtigungen"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Erweitert"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Geschäftliche Benachrichtigungen"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Logosymbole zulassen"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blinklicht"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Auf dem Sperrbildschirm"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Gesamten Benachrichtigungsinhalt anzeigen"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Mittel"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Hoch"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Dringend"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Ton erlauben"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Ton erlauben"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Diese Benachrichtigungen nicht auf dem aktuellen Bildschirm einblenden und keinen Ton sowie keine Vibration dafür erzeugen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Benachrichtigungsassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Benachrichtigungszugriff"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Bild-in-Bild"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Bild-in-Bild zulassen"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Während die App geöffnet ist oder nachdem du sie verlässt (z. B. um ein Video weiter anzusehen) öffnet die App ein Bild-im-Bild-Fenster. Das Fenster wird über anderen Apps eingeblendet, die du gerade verwendest."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nein"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Zugriff während \"Nicht stören\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Keine installierte App hat während \"Nicht stören\" Zugriff angefordert."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Apps werden geladen..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Diese Benachrichtigungen niemals anzeigen"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Benachrichtigungen anzeigen"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Benachrichtigungen niemals in der Leiste oder auf Peripheriegeräten anzeigen"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"App-Symbol markieren"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Bei Benachrichtigungen App-Symbol markieren, sofern möglich"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Logosymbol erlauben"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Nicht stören\" deaktivieren"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Diese Benachrichtigungen dürfen auch dann empfangen werden, wenn für den Modus \"Nicht stören\" die Option \"Nur wichtige Unterbrechungen\" ausgewählt ist."</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Auf dem Sperrbildschirm"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Über anderen Apps einblenden"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> von <xliff:g id="COUNT_1">%2$d</xliff:g> Apps dürfen über anderen eingeblendet werden"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps mit Berechtigung"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nein"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Unbek. Apps installieren"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"apps installieren aus unbekannten quellen"</string>
     <string name="write_settings" msgid="4797457275727195681">"Systemeinstellungen ändern"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Änderungsberechtigung für Systemeinstellungen"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Änderung von Systemeinstellungen zulassen"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Diese Berechtigung ermöglicht einer App das Ändern von Systemeinstellungen."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nein"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Zulässig"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nicht zulässig"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Dieser Quelle vertrauen"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Zum Öffnen der Kamera zweimal drehen"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Kamera App durch zweimaliges Drehen des Handgelenks öffnen"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Warnlimit für mobile Datennutzung: <xliff:g id="ID_1">%1$s</xliff:g>/Datenlimit: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Abrechnungszeitraum"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Monatlich am <xliff:g id="ID_1">%1$s</xliff:g>."</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Netzwerkbeschränkungen"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> Beschränkungen</item>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index ab8d05b..6e1ba8b 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Καλό"</item>
     <item msgid="8986346415847956850">"Εξαιρετικό"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Πάντα"</item>
-    <item msgid="844721238536786870">"Μόνο όταν είναι συνδεδεμένο"</item>
-    <item msgid="1986753720941888596">"Ποτέ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Πάντα"</item>
-    <item msgid="7433294150916905997">"Μόνο όταν είναι συνδεδεμένο"</item>
-    <item msgid="1390404486722375028">"Ποτέ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 τελευταίες ημέρες"</item>
     <item msgid="6600989128423965319">"Ορισμός κύκλου χρήσης…"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 43bda4e2..54724cc 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Είστε πλέον προγραμματιστής!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Δεν χρειάζεται, είστε ήδη προγραμματιστής."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Αποσύνδεση;"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Θα τερματιστεί η σύνδεσή σας με τη συσκευή:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Δεν έχετε άδεια να αλλάξετε τις ρυθμίσεις Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g> είναι ορατή σε κοντινές συσκευές όταν είναι ανοικτές οι Ρυθμίσεις Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Διεύθυνση MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Να αποσυνδεθεί η συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>;"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Μετάδοση"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Απενεργοπ. προφίλ;"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s επιθυμεί να αποκτήσει πρόσβαση στα μηνύματά σας. Παραχώρηση πρόσβασης σε %2$s;"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Αίτημα πρόσβασης SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Η συσκευή <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> επιθυμεί πρόσβαση στην κάρτα SIM. Η χορήγηση πρόσβασης στην κάρτα SIM θα απενεργοποιήσει τη σύνδεση δεδομένων στη συσκευή σας κατά τη διάρκεια της σύνδεσης. Παραχώρηση πρόσβασης στη συσκευή <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Ορατή ως <xliff:g id="DEVICE_NAME">^1</xliff:g> στις άλλες συσκευές"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Ημερομηνία &amp; ώρα"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Επιλέξτε ζώνη ώρας"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Σηκώστε για ενεργοποίηση"</string>
     <string name="doze_title" msgid="2259176504273878294">"Οθόνη ambient"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Αφύπνιση οθόνης κατά τη λήψη ειδοποιήσεων"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Πάντα ενεργό"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Εμφάνιση ώρας, εικονιδίων ειδοποίησης και άλλων πληροφοριών"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Μέγεθος γραμματοσειράς"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Κάντε το κείμενο μεγαλύτερο ή μικρότερο"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Ρυθμίσεις κλειδ/τος SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Χρήση υπηρεσίας <xliff:g id="SERVICE">%1$s</xliff:g>;"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Η υπηρεσία <xliff:g id="SERVICE">%1$s</xliff:g> απαιτεί τα εξής:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Επειδή μια εφαρμογή αποκρύπτει ένα αίτημα άδειας, δεν είναι δυνατή η επαλήθευση της απάντησής σας από τις Ρυθμίσεις."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Η ενότητα Ρυθμίσεις δεν μπορεί να αποκριθεί στην ενέργειά σας καθώς εμφανίζεται μία άλλη εφαρμογή πάνω από αυτές τις επιλογές."</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="enable_service_pattern_reason" msgid="777577618063306751">"Επειδή η ενεργοποίηση της υπηρεσίας <xliff:g id="SERVICE">%1$s</xliff:g> επηρεάζει την κρυπτογράφηση δεδομένων, χρειάζεται να επιβεβαιώσετε το μοτίβο σας."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Ειδοποιήσεις"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Σύνθετες ρυθμίσεις"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Ειδοποιήσεις εργασίας"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Αποδοχή σημάτων εικονιδίων"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Φως που αναβοσβήνει"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Στο κλείδωμα οθόνης"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Εμφάνιση όλου του περιεχ. ειδοπ."</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Μεσαία"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Υψηλή"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Επείγον"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Να επιτρέπεται ο ήχος"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Να επιτρέπεται ο ήχος"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Να μην συνοδεύονται αυτές οι ειδοποιήσεις από ήχο, δόνηση ή προβολή σε αναδυόμενο παράθυρο κατά την προβολή τους στην τρέχουσα οθόνη."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Βοηθός ειδοποιήσεων"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Πρόσβαση ειδοπ/σεων"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Λειτουργία Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Να επιτρέπεται η λειτουργία picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Να επιτρέπεται σε αυτήν την εφαρμογή να δημιουργεί ένα παράθυρο picture-in-picture ενώ η εφαρμογή είναι ανοικτή ή αφού αποχωρήσετε από αυτή (για παράδειγμα, για να συνεχίσετε να παρακολουθείτε ένα βίντεο). Αυτό το παράθυρο εμφανίζεται στο επάνω μέρος άλλων εφαρμογών που χρησιμοποιείτε."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ναι"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Όχι"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Πρόσβαση \"Μην ενοχλείτε\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Δεν ζητήθηκε πρόσβαση στη λειτουργία \"Μην ενοχλείτε\" από εγκατεστημένες εφαρμογές"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Φόρτωση εφαρμογών…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Να μην εμφανίζονται ποτέ αυτές οι ειδοποιήσεις"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Εμφάνιση ειδοποιήσεων"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Να μην εμφανίζονται ποτέ ειδοποιήσεις στο πλαίσιο σκίασης ειδοποιήσεων ή σε περιφερειακές συσκευές"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Εικονίδιο εφαρμογής σήματος"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Οι ειδοποιήσεις να εμφανίζονται ως σήματα στην εφαρμογή αρχικής οθόνης, αν αυτό υποστηρίζεται."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Να επιτρέπεται το σήμα εικονιδίου"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Παράκαμψη λειτουργίας \"Μην ενοχλείτε\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Να επιτραπεί σε αυτές τις ειδοποιήσεις να εξακολουθήσουν να διακόπτουν τη λειτουργία \"Μην ενοχλείτε\" όταν έχει οριστεί σε Μόνο προτεραιότητας"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Στο κλείδωμα οθόνης"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Εμφάνιση πάνω σε άλλες εφαρμογές"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> από τις <xliff:g id="COUNT_1">%2$d</xliff:g> εφαρμογές μπορούν να εμφανίζονται πάνω σε άλλες"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Εφαρμογές με άδεια"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ναι"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Όχι"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Εγκατ. άγνωστων εφ."</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"εγκατάσταση εφαρμογών από άγνωστες πηγές"</string>
     <string name="write_settings" msgid="4797457275727195681">"Τροποποίηση ρυθμ. συστήματος"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Άδεια εφαρμογής τροποποίησης ρυθμίσεων συστήματος"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Να επιτρέπεται η τροποποίηση ρυθμ. συστήματος"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Αυτή η άδεια επιτρέπει σε μια εφαρμογή την τροποποίηση των ρυθμίσεων συστήματος."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ναι"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Όχι"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Επιτρέπεται"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Δεν επιτρέπεται"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Να επιτρέπεται από αυτήν την πηγή"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Περιστρέψτε δύο φορές για κάμερα"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Ανοίξτε την εφαρμογή κάμερας περιστρέφοντας δύο φορές τον καρπό σας"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Την <xliff:g id="ID_1">%1$s</xliff:g>η κάθε μήνα"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Περιορισμοί δικτύου"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> περιορισμοί</item>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 395746a..f3beb46 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Good"</item>
     <item msgid="8986346415847956850">"Excellent"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Always"</item>
-    <item msgid="844721238536786870">"Only when plugged in"</item>
-    <item msgid="1986753720941888596">"Never"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Always"</item>
-    <item msgid="7433294150916905997">"Only when plugged in"</item>
-    <item msgid="1390404486722375028">"Never"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Last 30 days"</item>
     <item msgid="6600989128423965319">"Set usage cycle..."</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index d11696a..e26ddc5 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"No need, you are already a developer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless &amp; networks"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connections"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Device"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Disconnect?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"This will end your connection with:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"You don\'t have permission to change Bluetooth settings."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> is visible to nearby devices while the Bluetooth settings are open."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC address: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Disconnect <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Broadcasting"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Disable profile?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s wants to access your messages. Give access to %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM access request"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your SIM card. Granting access to the SIM card will disable data connectivity on your device for the duration of the connection. Give access to <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible as <xliff:g id="DEVICE_NAME">^1</xliff:g> to other devices"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Date &amp; time"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Lift to wake"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambient display"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Wake screen when you receive notifications"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Always on"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Show time, notification icons and other info"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Font size"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Make text larger or smaller"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM card lock settings"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Use <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Because another app is displaying on top of these options, Settings can’t respond to your action."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Because you\'ve turned on an accessibility service, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Because turning on <xliff:g id="SERVICE">%1$s</xliff:g> affects data encryption, you need to confirm your pattern."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifications"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Advanced"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Work notifications"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Allow icon badges"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blink light"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"On the lock screen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Show all notification content"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Medium"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"High"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgent"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Allow Sound"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Allow sound"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Don\'t make sound, vibrate or peek these notifications into view on the current screen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Notification assistant"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Notification access"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Allow picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Allow this app to create a picture-in-picture window while the app is open or after you leave it (for example, to continue watching a video). This window displays on top of other apps that you\'re using."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Yes"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Do Not Disturb access"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"No installed apps have requested Do Not Disturb access"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Loading apps..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Never show these notifications"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Show notifications"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Never show notifications in the shade or on peripheral devices"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge app icon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Show notifications as badges on the Home app, if supported."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Allow icon badge"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Override Do Not Disturb"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Let these notifications continue to interrupt when Do Not Disturb is set to Priority Only"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"On the lock screen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Display over other apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> of <xliff:g id="COUNT_1">%2$d</xliff:g> apps allowed to display over other apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps with permission"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Yes"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Install unknown apps"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"install apps unknown sources"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modify system settings"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"App modify system settings permission"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Allow modify system settings"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"This permission allows an app to modify system settings."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Yes"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Allowed"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Not allowed"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Allow from this source"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Double twist for camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Open the camera app by twisting your wrist twice"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> data warning"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> data warning / <xliff:g id="ID_2">%2$s</xliff:g> data limit"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Billing cycle"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Monthly on day <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Network restrictions"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 395746a..f3beb46 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Good"</item>
     <item msgid="8986346415847956850">"Excellent"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Always"</item>
-    <item msgid="844721238536786870">"Only when plugged in"</item>
-    <item msgid="1986753720941888596">"Never"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Always"</item>
-    <item msgid="7433294150916905997">"Only when plugged in"</item>
-    <item msgid="1390404486722375028">"Never"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Last 30 days"</item>
     <item msgid="6600989128423965319">"Set usage cycle..."</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index d11696a..e26ddc5 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"No need, you are already a developer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless &amp; networks"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connections"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Device"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Disconnect?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"This will end your connection with:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"You don\'t have permission to change Bluetooth settings."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> is visible to nearby devices while the Bluetooth settings are open."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC address: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Disconnect <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Broadcasting"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Disable profile?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s wants to access your messages. Give access to %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM access request"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your SIM card. Granting access to the SIM card will disable data connectivity on your device for the duration of the connection. Give access to <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible as <xliff:g id="DEVICE_NAME">^1</xliff:g> to other devices"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Date &amp; time"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Lift to wake"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambient display"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Wake screen when you receive notifications"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Always on"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Show time, notification icons and other info"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Font size"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Make text larger or smaller"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM card lock settings"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Use <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Because another app is displaying on top of these options, Settings can’t respond to your action."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Because you\'ve turned on an accessibility service, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Because turning on <xliff:g id="SERVICE">%1$s</xliff:g> affects data encryption, you need to confirm your pattern."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifications"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Advanced"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Work notifications"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Allow icon badges"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blink light"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"On the lock screen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Show all notification content"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Medium"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"High"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgent"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Allow Sound"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Allow sound"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Don\'t make sound, vibrate or peek these notifications into view on the current screen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Notification assistant"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Notification access"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Allow picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Allow this app to create a picture-in-picture window while the app is open or after you leave it (for example, to continue watching a video). This window displays on top of other apps that you\'re using."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Yes"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Do Not Disturb access"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"No installed apps have requested Do Not Disturb access"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Loading apps..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Never show these notifications"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Show notifications"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Never show notifications in the shade or on peripheral devices"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge app icon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Show notifications as badges on the Home app, if supported."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Allow icon badge"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Override Do Not Disturb"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Let these notifications continue to interrupt when Do Not Disturb is set to Priority Only"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"On the lock screen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Display over other apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> of <xliff:g id="COUNT_1">%2$d</xliff:g> apps allowed to display over other apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps with permission"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Yes"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Install unknown apps"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"install apps unknown sources"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modify system settings"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"App modify system settings permission"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Allow modify system settings"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"This permission allows an app to modify system settings."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Yes"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Allowed"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Not allowed"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Allow from this source"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Double twist for camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Open the camera app by twisting your wrist twice"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> data warning"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> data warning / <xliff:g id="ID_2">%2$s</xliff:g> data limit"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Billing cycle"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Monthly on day <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Network restrictions"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 395746a..f3beb46 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Good"</item>
     <item msgid="8986346415847956850">"Excellent"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Always"</item>
-    <item msgid="844721238536786870">"Only when plugged in"</item>
-    <item msgid="1986753720941888596">"Never"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Always"</item>
-    <item msgid="7433294150916905997">"Only when plugged in"</item>
-    <item msgid="1390404486722375028">"Never"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Last 30 days"</item>
     <item msgid="6600989128423965319">"Set usage cycle..."</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index d11696a..e26ddc5 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"You are now a developer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"No need, you are already a developer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless &amp; networks"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connections"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Device"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Disconnect?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"This will end your connection with:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"You don\'t have permission to change Bluetooth settings."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> is visible to nearby devices while the Bluetooth settings are open."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC address: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Disconnect <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Broadcasting"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Disable profile?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s wants to access your messages. Give access to %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM access request"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wants to access your SIM card. Granting access to the SIM card will disable data connectivity on your device for the duration of the connection. Give access to <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible as <xliff:g id="DEVICE_NAME">^1</xliff:g> to other devices"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Date &amp; time"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Choose time zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Lift to wake"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambient display"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Wake screen when you receive notifications"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Always on"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Show time, notification icons and other info"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Font size"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Make text larger or smaller"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM card lock settings"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Use <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> needs to:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Because an app is obscuring a permission request, Settings can’t verify your response."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Because another app is displaying on top of these options, Settings can’t respond to your action."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"If you turn on <xliff:g id="SERVICE">%1$s</xliff:g>, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Because you\'ve turned on an accessibility service, your device won’t use your screen lock to enhance data encryption."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Because turning on <xliff:g id="SERVICE">%1$s</xliff:g> affects data encryption, you need to confirm your pattern."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifications"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Advanced"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Work notifications"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Allow icon badges"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blink light"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"On the lock screen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Show all notification content"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Medium"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"High"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgent"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Allow Sound"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Allow sound"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Don\'t make sound, vibrate or peek these notifications into view on the current screen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Notification assistant"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Notification access"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Allow picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Allow this app to create a picture-in-picture window while the app is open or after you leave it (for example, to continue watching a video). This window displays on top of other apps that you\'re using."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Yes"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Do Not Disturb access"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"No installed apps have requested Do Not Disturb access"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Loading apps..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Never show these notifications"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Show notifications"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Never show notifications in the shade or on peripheral devices"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge app icon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Show notifications as badges on the Home app, if supported."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Allow icon badge"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Override Do Not Disturb"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Let these notifications continue to interrupt when Do Not Disturb is set to Priority Only"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"On the lock screen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Display over other apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> of <xliff:g id="COUNT_1">%2$d</xliff:g> apps allowed to display over other apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps with permission"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Yes"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Install unknown apps"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"install apps unknown sources"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modify system settings"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"App modify system settings permission"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Allow modify system settings"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"This permission allows an app to modify system settings."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Yes"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Allowed"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Not allowed"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Allow from this source"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Double twist for camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Open the camera app by twisting your wrist twice"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> data warning"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> data warning / <xliff:g id="ID_2">%2$s</xliff:g> data limit"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Billing cycle"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Monthly on day <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Network restrictions"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index d40bb83..a476f83 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Buena"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Siempre"</item>
-    <item msgid="844721238536786870">"Sólo cuando está conectado"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Siempre"</item>
-    <item msgid="7433294150916905997">"Sólo cuando está conectado"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 días"</item>
     <item msgid="6600989128423965319">"Configurar ciclo de uso…"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 318c511..4cb8f30 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"¡Ya eres programador!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"No es necesario, ya eres programador."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Conexiones inalámbricas y redes"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexiones"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"¿Desconectar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Esto pondrá fin a tu conexión con:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"No tienes permiso para cambiar la configuración de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Los dispositivos cercanos podrán ver tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> si está abierta la configuración de Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Dirección MAC de Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"¿Desconectar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmisión"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"¿Inhabilitar perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s quiere acceder a tus mensajes. ¿Quieres permitir el acceso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitud de acceso a SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"El dispositivo <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a tu tarjeta SIM. Al otorgar el acceso a la tarjeta SIM, inhabilitarás la conectividad de datos en el dispositivo por el tiempo que dure la conexión. Otorga el acceso al dispositivo <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>."</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible como <xliff:g id="DEVICE_NAME">^1</xliff:g> para otros dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Fecha y hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Elige la zona horaria"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Levantar el dispositivo para activarlo"</string>
     <string name="doze_title" msgid="2259176504273878294">"Pantalla ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activar la pantalla al recibir notificaciones"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Siempre activada"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostrar hora, íconos de notificaciones y otra información"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamaño de fuente"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Aumenta o reduce el tamaño del texto en pantalla"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Bloqueo de la tarjeta SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"¿Quieres usar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Debido a que una aplicación está bloqueando una solicitud de permiso, la Configuración no puede verificar tu respuesta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"La app de Configuración no puede procesar tu acción porque otra app se muestra sobre estas opciones."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Si activas <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositivo no utilizará el bloqueo de pantalla para mejorar el cifrado de datos."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Dado que activaste un servicio de accesibilidad, el dispositivo no utilizará el bloqueo de pantalla para mejorar el cifrado de datos."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Dado que la encriptación de datos se ve afectada al activar <xliff:g id="SERVICE">%1$s</xliff:g>, debes confirmar el patrón."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificaciones"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanzada"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificaciones de trabajo"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir insignias de íconos"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Luz intermitente"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"En la pantalla bloqueada"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todas las notificaciones"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Media"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Habilitar sonido"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir sonido"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"No emitir sonido, vibrar ni mostrar estas notificaciones en la pantalla actual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistente de notificaciones"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acceso a notificaciones"</string>
@@ -2840,8 +2848,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imagen en imagen"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir imagen en imagen"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esta app cree una ventana de imagen en imagen mientras esté abierta o cuando salgas (por ejemplo, para seguir viendo un video). Esta ventana se mostrará sobre otras apps que estés usando."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sí"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso en No molestar"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ninguna aplicación instalada solicitó acceso en No molestar."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Cargando aplicaciones…"</string>
@@ -2867,8 +2873,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"No mostrar estas notificaciones"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificaciones"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"No mostrar notificaciones en el panel ni en dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ícono con insignia de la app"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostrar notificaciones como insignias en la app de Google Home, si es compatible."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir insignia de ícono"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Anular No molestar"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permitir que estas notificaciones sigan interrumpiendo cuando No molestar esté configurado como Solo prioridad"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"En la pantalla bloqueada"</string>
@@ -3195,8 +3200,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Mostrar sobre otras apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> apps que pueden mostrarse sobre otras apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicaciones con permiso"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sí"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar apps desconocidas"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar, apps, fuentes desconocidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modificar config. del sistema"</string>
@@ -3209,10 +3216,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permiso para modificar la configuración del sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir modificar configuración del sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Este permiso admite que una aplicación modifique la configuración del sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sí"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permitida"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"No permitida"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Confiar en esta fuente"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Gira la muñeca dos veces para la cámara"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Gira la muñeca dos veces para abrir la aplicación de la cámara"</string>
@@ -3307,8 +3310,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Advertencia de datos: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Advertencia de datos: <xliff:g id="ID_1">%1$s</xliff:g>/Límite de datos: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de facturación"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"El <xliff:g id="ID_1">%1$s</xliff:g> de cada mes"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restricciones de red"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restricciones</item>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index ea13054..bd5e0d9 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Buena"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Siempre"</item>
-    <item msgid="844721238536786870">"Solo si se está cargando"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Siempre"</item>
-    <item msgid="7433294150916905997">"Solo si se está cargando"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 días"</item>
     <item msgid="6600989128423965319">"Establecer ciclo uso..."</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index e481f02..5ed3a95 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"¡Ahora están activadas las opciones de desarrollo!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Las opciones de desarrollo ya están activadas."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Conexiones inalámbricas y redes"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexiones"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"¿Desconectar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Finalizará la conexión con&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;."</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"No tienes permiso para cambiar los ajustes de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será visible para dispositivos cercanos mientras los ajustes de Bluetooth estén abiertos."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Dirección MAC de Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"¿Desconectar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Emisiones"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"¿Inhabilitar perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s quiere acceder a tus mensajes. ¿Quieres permitir el acceso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitud de acceso de SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quiere acceder a tu tarjeta SIM. Si lo permites, se inhabilitará la conexión de datos del dispositivo durante la conexión. Conceder acceso a <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible como <xliff:g id="DEVICE_NAME">^1</xliff:g> para otros dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Fecha y hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Elige una zona horaria"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Levantar el dispositivo para activarlo"</string>
     <string name="doze_title" msgid="2259176504273878294">"Pantalla ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activar pantalla al recibir notificaciones"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Siempre activada"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostrar la hora, iconos de notificación y otra información"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamaño de la fuente"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Aumenta o disminuye el tamaño del texto"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Ajustes de bloqueo de tarjeta SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"¿Usar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> necesita:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Una aplicación está bloqueando una solicitud de permiso, por lo que Ajustes no puede verificar tu respuesta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"La aplicación Ajustes no puede responder a tu acción porque otra aplicación tapa estas opciones."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Si activas <xliff:g id="SERVICE">%1$s</xliff:g>, el dispositivo no utilizará el bloqueo de pantalla para mejorar el cifrado de datos."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Has activado un servicio de accesibilidad, por lo que el dispositivo no utilizará el bloqueo de pantalla para mejorar el cifrado de datos."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Activar <xliff:g id="SERVICE">%1$s</xliff:g> afecta al cifrado de datos, por lo que debes confirmar tu patrón."</string>
@@ -2159,7 +2166,7 @@
     <string name="privacy_settings_title" msgid="2978878794187459190">"Copia de seguridad"</string>
     <string name="backup_section_title" msgid="7952232291452882740">"Copia de seguridad"</string>
     <string name="personal_data_section_title" msgid="7815209034443782061">"Datos personales"</string>
-    <string name="backup_data_title" msgid="1239105919852668016">"Copiar mis datos"</string>
+    <string name="backup_data_title" msgid="1239105919852668016">"Copia de seguridad de mis datos"</string>
     <string name="backup_data_summary" msgid="708773323451655666">"Crear copia de seguridad de los datos de las aplicaciones, las contraseñas de redes Wi-Fi y otros ajustes en los servidores de Google"</string>
     <string name="backup_configure_account_title" msgid="3790872965773196615">"Cuenta de copia de seguridad"</string>
     <string name="include_app_data_title" msgid="2829970132260278394">"Incluir datos de aplicaciones"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificaciones"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Opciones avanzadas"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificaciones de trabajo"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir insignias de iconos"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Luz parpadeante"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"En la pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todo el contenido de las notificaciones"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Media"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permitir sonido"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir sonido"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"No emitir sonido, vibrar ni mostrar notificaciones en la pantalla actual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistente de notificaciones"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acceso a notificaciones"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imagen en imagen"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir imagen en imagen"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que la aplicación cree una ventana imagen en imagen mientras esté abierta o después de que hayas salido de ella (por ejemplo, para seguir viendo un vídeo). La ventana se muestra sobre otras aplicaciones que estés utilizando."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sí"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso a No molestar"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ninguna aplicación instalada ha solicitado acceso de No molestar"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Cargando aplicaciones..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"No mostrar nunca estas notificaciones"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificaciones"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"No mostrar nunca notificaciones en el panel de notificaciones ni en dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Mostrar icono de la aplicación"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostrar notificaciones como iconos en la aplicación Home (si es compatible)"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir insignia de icono"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Priorizar"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"No bloquear notificaciones cuando la opción No molestar esté establecida en Solo prioritarias"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"En la pantalla de bloqueo"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Mostrar sobre otras apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> aplicaciones que se pueden mostrar sobre otras"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicaciones con permiso"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sí"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar aplicaciones desconocidas"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar aplicaciones fuentes desconocidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modificar ajustes del sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permiso de aplicación para modificar ajustes sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir que se modifiquen ajustes sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Cuando se concede este permiso, la aplicación puede modificar los ajustes del sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sí"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Autorizadas"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"No autorizadas"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Autorizar descargas de esta fuente"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Doble giro para abrir la cámara"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Gira la muñeca dos veces para abrir la aplicación Cámara"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Advertencia de datos: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Advertencia de datos: <xliff:g id="ID_1">%1$s</xliff:g>/Límite de datos: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de facturación"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Cada mes (el día <xliff:g id="ID_1">%1$s</xliff:g>)"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restricciones de red"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restricciones</item>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index d8534ad..fdba453 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Hea"</item>
     <item msgid="8986346415847956850">"Suurepärane"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Alati"</item>
-    <item msgid="844721238536786870">"Ainult siis, kui on ühendatud"</item>
-    <item msgid="1986753720941888596">"Mitte kunagi"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Alati"</item>
-    <item msgid="7433294150916905997">"Ainult siis, kui on ühendatud"</item>
-    <item msgid="1390404486722375028">"Mitte kunagi"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Viimased 30 päeva"</item>
     <item msgid="6600989128423965319">"Kas. tsükli määramine ..."</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 0ac3bb2..6c4094e 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Olete nüüd arendaja!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Ei ole vaja, olete juba arendaja."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Traadita ühendus ja võrgud"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Ühendused"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Seade"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Kas katkestada ühendus?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"See lõpetab teie ühenduse seadmega:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Teil ei ole luba Bluetoothi seadete muutmiseks."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> on läheduses olevatele seadmetele nähtav, kui Bluetoothi seaded on avatud."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetoothi MAC-aadress: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Kas katkestada ühendus seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Edastamine"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Kas profiil keelata?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s soovib saada juurdepääsu sõnumitele. Kas anda seadmele %2$s juurdepääs?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Juurdepääsutaotlus SIM-kaardile"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Seade <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> soovib juurdepääsu teie SIM-kaardile. Kui annate juurdepääsu SIM-kaardile, keelatakse seadmes ühenduse ajaks andmesideühendus. Juurdepääsu andmine seadmele <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Teistele seadmetele nähtav seadmena <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Kuupäev ja kellaaeg"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Ajavööndi valimine"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Tõstke äratamiseks"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambientne ekraan"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ekraan aktiveerub, kui saate märguandeid"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Alati sees"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Näitamise aeg, märguande ikoonid ja muu teave"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Fondi suurus"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Teksti suuremaks või väiksemaks muutmine"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM-kaardi luku seaded"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Kas soovite kasutada teenust <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> teeb järgmist:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Seaded ei saa teie vastust kinnitada, sest rakendus varjab loataotlust."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Menüü Seaded ei saa teie toimingule reageerida, kuna muu rakendus on kuvatud nende valikute peal."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Kui lülitate sisse teenuse <xliff:g id="SERVICE">%1$s</xliff:g>, ei kasuta seade andmete krüpteerimise täiustamiseks ekraanilukku."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Kuna lülitasite sisse juurdepääsetavuse teenuse, siis ei kasuta teie seade andmete krüpteerimise täiustamiseks ekraanilukku."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Kuna teenuse <xliff:g id="SERVICE">%1$s</xliff:g> sisselülitamine mõjutab andmete krüpteerimist, peate kinnitama oma mustri."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Märguanded"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Täpsemad"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Töö märguanded"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Ikoonimärgi lubamine"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Vilkuv tuli"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Lukustuskuval"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Kuva kogu märguande sisu"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Keskmine"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Kõrge"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Kiireloomuline"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Heli lubamine"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Heli lubamine"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ära tee heli, vibreeri ega kuva neid märguandeid praeguse ekraani servas."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Märguannete abi"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Juurdepääs märguannetele"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Pilt pildis"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Luba režiim Pilt pildis"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Lubage rakendusel luua pilt pildis aken ajal, mil rakendus on avatud, või pärast sellest väljumist (näiteks video vaatamise jätkamiseks). Aken kuvatakse muude kasutatavate rakenduste peal."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Jah"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ei"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Mitte segada juurdepääs"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ükski installitud rakendus pole palunud juurdepääsu funktsioonile Mitte segada"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Rakenduste laadimine ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ära kunagi näita neid märguandeid"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Kuva märguanded"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ära kuva märguandeid kunagi märguandealal ega välisseadmetes"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Märgirakenduse ikoon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Kuva märguanded rakenduses Home märkidena, kui seda toetatakse."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Ikoonimärgi lubamine"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Funktsiooni Mitte segada alistamine"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Lubage nendel märguannetel teid jätkuvalt katkestada, kui funktsioon Mitte segada on määratud valikule Ainult prioriteetsed"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Lukustuskuval"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Muude rakenduste peal kuvamine"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> rakendusel <xliff:g id="COUNT_1">%2$d</xliff:g>-st on lubatud muude rakenduste peal kuvada"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Loaga rakendused"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Jah"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ei"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Tundmatute rakenduste installimine"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"rakenduste installimine tundmatutest allikatest"</string>
     <string name="write_settings" msgid="4797457275727195681">"Süsteemiseadete muutmine"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Rakendustel süsteemiseadete muutmise lubamine"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Luba muuta süsteemiseadeid"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Luba võimaldab rakendusel muuta süsteemiseadeid."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Jah"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ei"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Lubatud"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Pole lubatud"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Luba sellest allikast"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Pöörake kaks korda kaamera avamiseks"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Avage kaamerarakendus, pöörates rannet kaks korda"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> – andmemahu hoiatus"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> – andmemahu hoiatus / <xliff:g id="ID_2">%2$s</xliff:g> – andmemahu piirang"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Arveldustsükkel"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Iga kuu <xliff:g id="ID_1">%1$s</xliff:g>. päeval"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Võrgupiirangud"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> piirangut</item>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 25c162d..8cf4ae8 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Ona"</item>
     <item msgid="8986346415847956850">"Bikaina"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Beti"</item>
-    <item msgid="844721238536786870">"Entxufatuta dagoenean soilik"</item>
-    <item msgid="1986753720941888596">"Inoiz ez"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Beti"</item>
-    <item msgid="7433294150916905997">"Entxufatuta dagoenean soilik"</item>
-    <item msgid="1390404486722375028">"Inoiz ez"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Azken 30 egunak"</item>
     <item msgid="6600989128423965319">"Erabilera-zikloa…"</item>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 7544e35..df814e6 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Garatzailea zara!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Ez dago zertan, dagoeneko garatzailea zara."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Hari gabekoak eta sareak"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Konexioak"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Gailua"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Deskonektatu?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Gailu honekin duzun konexioa amaituko da:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Ez daukazu Bluetooth-ezarpenak aldatzeko baimenik."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth ezarpenak irekita badaude, inguruko gailuek <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ikusi ahal izango dute."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deskonektatu nahi duzu?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Igorpena"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profila desgaitu?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s gailuak zure mezuak atzitu nahi ditu. %2$s gailuari sarbidea eman?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM txartelerako sarbide-eskaera"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> gailuak SIM txartela atzitu nahi du. SIM txartelerako sarbidea ematen badiozu, gailuaren datu-konexioa desgaituko da, txartelerako konexioak dirauen bitartean. Eman sarbidea <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> gailuari"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"<xliff:g id="DEVICE_NAME">^1</xliff:g> gisa ikusgai dago beste gailuetan"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data eta ordua"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Aukeratu ordu-zona"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -355,9 +361,9 @@
     <string name="security_settings_fingerprint_preference_summary_none" msgid="1507739327565151923"></string>
     <string name="security_settings_fingerprint_enroll_introduction_title" msgid="3201556857492526098">"Desblokeatu hatz-marka bidez"</string>
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"Erabili hatz-marka"</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"Ukitu hatz-marken sentsorea telefonoa desblokeatzeko, erosketak baimentzeko edo aplikazioetan saioa hasteko. Kontuz aukeratu noren hatz-markak gehitzen dituzun. Hatz-marka bakar bat gehituta ere gauza daitezke aipatutako ekintzak.\n\nOharra: baliteke hatz-marka ez izatea eredu edo PIN kode konplexu bat bezain segurua."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"Ukitu hatz-marken sentsorea telefonoa desblokeatzeko, erosketak baimentzeko edo aplikazioetan saioa hasteko. Kontuz aukeratu noren hatz-markak gehitzen dituzun. Hatz-marka bakar bat gehituta ere gauza daitezke aipatutako ekintzak.\n\nOharra: baliteke hatz-markak ez izatea eredu edo PIN kode konplexuak bezain seguruak."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="4193477159493347679">"Ukitu hatz-marken sentsorea erosketak baimentzeko edo aplikazioetan saioa hasteko. Erne noren hatz-markak gehitzen dituzun; gehitzen duzun edozein hatz-markarekin egin ahal izango baitituzu ekintza horiek.\n\nOharra: ezin duzu erabili hatz-marka gailua desblokeatzeko. Informazio gehiago lortzeko, jarri erakundearen administratzailearekin harremanetan."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="3635924459027832861">"Ukitu hatz-marken sentsorea telefonoa desblokeatzeko, erosketak baimentzeko edo aplikazioetan saioa hasteko. Kontuz aukeratu noren hatz-markak gehitzen dituzun. Hatz-marka bakar bat gehituta ere gauza daitezke aipatutako ekintzak.\n\nOharra: baliteke hatz-marka ez izatea eredu edo PIN kode konplexu bat bezain segurua."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="3635924459027832861">"Ukitu hatz-marken sentsorea telefonoa desblokeatzeko, erosketak baimentzeko edo aplikazioetan saioa hasteko. Kontuz aukeratu noren hatz-markak gehitzen dituzun, hatz-marka bakar bat gehituta ere gauza baitaitezke aipatutako ekintzak.\n\nOharra: baliteke hatz-markak ez izatea eredu edo PIN kode konplexuak bezain seguruak."</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"Utzi"</string>
     <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="7472492858148162530">"Jarraitu"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="5021369420474432665">"Saltatu"</string>
@@ -626,7 +632,7 @@
     <string name="bluetooth_device_context_connect_advanced" msgid="2643129703569788771">"Aukerak…"</string>
     <string name="bluetooth_menu_advanced" msgid="8572178316357220524">"Ezarpen aurreratuak"</string>
     <string name="bluetooth_advanced_titlebar" msgid="2142159726881547669">"Bluetooth ezarpen aurreratuak"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="6351930724051893423">"Bluetootha gaituta dagoenean, inguruko Bluetooth gailuekin komunika daiteke gailua."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="6351930724051893423">"Bluetooth eginbidea gaituta badago, inguruko Bluetooth gailuekin komunika daiteke gailua."</string>
     <string name="ble_scan_notify_text" msgid="1295915006005700650">"Kokapenaren zehaztasuna hobetzeko, sistemaren aplikazioek eta zerbitzuek Bluetooth gailuak hautematen jarraituko dute. Hori aldatzeko, zoaz <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>gailuak bilatzeko ezarpenetara<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="bluetooth_connect_specific_profiles_title" msgid="6952214406025825164">"Konektatu hona…"</string>
     <string name="bluetooth_disconnect_a2dp_profile" msgid="3524648279150937177">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deskonektatuko da euskarriaren audiotik."</string>
@@ -691,7 +697,7 @@
     <string name="wifi_notify_open_networks" msgid="76298880708051981">"Sare irekien jakinarazpenak"</string>
     <string name="wifi_notify_open_networks_summary" msgid="2761326999921366960">"Jakinarazi kalitate handiko sare publikoak erabilgarri daudenean"</string>
     <string name="wifi_wakeup" msgid="8815640989361538036">"Aktibatu Wi-Fi konexioa automatikoki"</string>
-    <string name="wifi_wakeup_summary" msgid="2530814331062997163">"Wi‑Fi konexioa berriro aktibatuko da gordetako kalitate handiko sare batetik gertu zaudenean (adibidez, etxeko sarea)"</string>
+    <string name="wifi_wakeup_summary" msgid="2530814331062997163">"Gordetako kalitate handiko sare batetik (adibidez, etxeko saretik) gertu zaudenean aktibatuko da berriro Wi‑Fi konexioa"</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="7247227922074840445">"Ez dago erabilgarri, Wi-Fi sareak bilatzeko aukera desaktibatuta dagoelako"</string>
     <string name="wifi_poor_network_detection" msgid="4925789238170207169">"Saihestu konexio ahulak"</string>
     <string name="wifi_poor_network_detection_summary" msgid="2784135142239546291">"Ez erabili Wi-Fi sareak ez badute Interneteko konexio onik"</string>
@@ -1020,8 +1026,10 @@
     <string name="screensaver_settings_button" msgid="7292214707625717013">"Ezarpenak"</string>
     <string name="automatic_brightness" msgid="5014143533884135461">"Distira automatikoa"</string>
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Aktibatu eskuetan hartzen denean"</string>
-    <string name="doze_title" msgid="2259176504273878294">"Giroaren araberako pantaila"</string>
+    <string name="doze_title" msgid="2259176504273878294">"Giroaren araberako bistaratzea"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Argitu pantaila jakinarazpenak jasotzen dituzunean"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Beti aktibatuta"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Erakutsi ordua, jakinarazpenen ikonoak eta bestelako informazioa"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Letra-tipoaren tamaina"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Handitu edo txikitu testua"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM txartelaren blokeo-ezarpenak"</string>
@@ -1277,7 +1285,7 @@
     <string name="menu_restore" msgid="8260067415075573273">"Berrezarri balio lehenetsiak"</string>
     <string name="restore_default_apn_completed" msgid="2824775307377604897">"APN ezarpen lehenetsiak berrezarri dira."</string>
     <string name="reset_dashboard_title" msgid="4412694650600342973">"Berrezarri"</string>
-    <string name="reset_network_title" msgid="4557113742173895074">"Sareko ezarpenak berrezarri dira"</string>
+    <string name="reset_network_title" msgid="4557113742173895074">"Berrezarri dira sareko ezarpenak"</string>
     <string name="reset_network_desc" msgid="5547979398298881406">"Hori eginez gero, berrezarri egingo zaizkie ezarpenak mota guztietako sareei, besteak beste: \n\n"<li>"Wi‑Fi"</li>\n<li>"Datu-konexioa"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_network_button_text" msgid="2035676527471089853">"Berrezarri ezarpenak"</string>
     <string name="reset_network_final_desc" msgid="6388371121099245116">"Sareko ezarpen guztiak berrezarri nahi dituzu? Ekintza hori ezin da desegin."</string>
@@ -1489,7 +1497,7 @@
     <string name="lock_settings_profile_unified_summary" msgid="9008819078132993492">"Gailuaren pantailaren blokeo bera"</string>
     <string name="manageapplications_settings_title" msgid="7041951105633616745">"Kudeatu aplikazioak"</string>
     <string name="manageapplications_settings_summary" msgid="1794401500935451259">"Kudeatu eta kendu instalatutako aplikazioak"</string>
-    <string name="applications_settings" msgid="5281808652705396152">"Aplikazioaren informazioa"</string>
+    <string name="applications_settings" msgid="5281808652705396152">"Aplikazioen informazioa"</string>
     <string name="applications_settings_summary" msgid="6683465446264515367">"Kudeatu aplikazioak, konfiguratu abiarazte bizkorrerako laster-teklak"</string>
     <string name="applications_settings_header" msgid="1014813055054356646">"Aplikazioaren ezarpenak"</string>
     <string name="install_applications" msgid="4872012136210802181">"Iturburu ezezagunak"</string>
@@ -1500,7 +1508,7 @@
     <string name="install_all_warning" product="default" msgid="1952257127370115988">"Telefonoak eta datu pertsonalek aplikazio ezezagunen erasoak jaso ditzakete. Iturburu honetako aplikazioak instalatzen badituzu, onartzen duzu haiek erabiltzeagatik telefonoari gerta dakizkiokeen kalteen edo datu-galeren erantzulea zeu zarela."</string>
     <string name="advanced_settings" msgid="1777249286757067969">"Ezarpen aurreratuak"</string>
     <string name="advanced_settings_summary" msgid="4016682978071086747">"Gaitu ezarpenen aukera gehiago"</string>
-    <string name="application_info_label" msgid="5736524913065714880">"Aplikazioaren informazioa"</string>
+    <string name="application_info_label" msgid="5736524913065714880">"Aplikazioen informazioa"</string>
     <string name="storage_label" msgid="8700867073480107253">"Memoria"</string>
     <string name="auto_launch_label" msgid="2669236885531442195">"Ireki modu lehenetsian"</string>
     <string name="auto_launch_label_generic" msgid="3230569852551968694">"Balio lehenetsiak"</string>
@@ -1751,7 +1759,7 @@
     <string name="battery_history_seconds" msgid="4283492130945761685">"<xliff:g id="SECONDS">%1$d</xliff:g> s"</string>
     <string name="battery_history_days_no_seconds" msgid="703063770554334710">"<xliff:g id="DAYS">%1$d</xliff:g> e <xliff:g id="HOURS">%2$d</xliff:g> h <xliff:g id="MINUTES">%3$d</xliff:g> m"</string>
     <string name="battery_history_hours_no_seconds" msgid="663342892615646712">"<xliff:g id="HOURS">%1$d</xliff:g> h <xliff:g id="MINUTES">%2$d</xliff:g> m"</string>
-    <string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> m"</string>
+    <string name="battery_history_minutes_no_seconds" msgid="7780294302606853082">"<xliff:g id="MINUTES">%1$d</xliff:g> min"</string>
     <string name="usage_stats_label" msgid="5890846333487083609">"Erabilera-estatistikak"</string>
     <string name="testing_usage_stats" msgid="7823048598893937339">"Erabilera-estatistikak"</string>
     <string name="display_order_text" msgid="8592776965827565271">"Ordenatzeko irizpidea:"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> erabili nahi duzu?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzuak hauek egin behar ditu:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Aplikazio bat baimen-eskaera oztopatzen ari denez, ezarpenek ezin dute egiaztatu erantzuna."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Aukera hauen gainean beste aplikazio bat ageri denez, \"Ezarpenak\" atalak ezin du egin eskatu diozuna."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"<xliff:g id="SERVICE">%1$s</xliff:g> aktibatzen baduzu, gailuak ez du pantailaren blokeoa erabiliko datuen enkriptatzea hobetzeko."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Erabilerraztasun-zerbitzua aktibatu duzunez, gailuak ez du pantailaren blokeoa erabiliko datuen enkriptatzea hobetzeko."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> zerbitzua aktibatzeak datu-enkriptatzeari eragiten dionez, eredua berretsi behar duzu."</string>
@@ -1988,7 +1995,7 @@
     <string name="usage_type_computed_power" msgid="5862792259009981479">"Kalkulatutako energia-erabilera"</string>
     <string name="usage_type_actual_power" msgid="7047814738685578335">"Hautemandako energia-erabilera"</string>
     <string name="battery_action_stop" msgid="649958863744041872">"Behartu gelditzera"</string>
-    <string name="battery_action_app_details" msgid="7861051816778419018">"Aplikazioaren informazioa"</string>
+    <string name="battery_action_app_details" msgid="7861051816778419018">"Aplikazioen informazioa"</string>
     <string name="battery_action_app_settings" msgid="4570481408106287454">"Aplikazioaren ezarpenak"</string>
     <string name="battery_action_display" msgid="7338551244519110831">"Pantailaren ezarpenak"</string>
     <string name="battery_action_wifi" msgid="8181553479021841207">"Wi‑Fi ezarpenak"</string>
@@ -2288,8 +2295,8 @@
     <string name="misc_files_selected_count" msgid="4647048020823912088">"<xliff:g id="NUMBER">%1$d</xliff:g>/<xliff:g id="TOTAL">%2$d</xliff:g> hautatuta"</string>
     <string name="misc_files_selected_count_bytes" msgid="2876232009069114352">"<xliff:g id="NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL">%2$s</xliff:g>"</string>
     <string name="select_all" msgid="1562774643280376715">"Hautatu guztiak"</string>
-    <string name="data_usage_summary_title" msgid="3804110657238092929">"Datu-erabilera"</string>
-    <string name="data_usage_app_summary_title" msgid="4147258989837459172">"Aplikazioaren datu-erabilera"</string>
+    <string name="data_usage_summary_title" msgid="3804110657238092929">"Datuen erabilera"</string>
+    <string name="data_usage_app_summary_title" msgid="4147258989837459172">"Aplik. datuen erabilera"</string>
     <string name="data_usage_accounting" msgid="7170028915873577387">"Beharbada operadoreak zenbatzen duen datu kopurua eta gailuak zenbatzen duena ez datoz bat."</string>
     <string name="data_usage_app" msgid="4970478397515423303">"Aplikazioen erabilera"</string>
     <string name="data_usage_app_info_label" msgid="3409931235687866706">"APLIKAZIOEN INFORMAZIOA"</string>
@@ -2305,7 +2312,7 @@
     <string name="data_usage_menu_hide_wifi" msgid="7290056718050186769">"Ezkutatu Wi‑Fi erabilera"</string>
     <string name="data_usage_menu_show_ethernet" msgid="5181361208532314097">"Erakuts Ethernet erabilera"</string>
     <string name="data_usage_menu_hide_ethernet" msgid="3326702187179943681">"Ezkutatu Ethernet erabilera"</string>
-    <string name="data_usage_menu_metered" msgid="6235119991372755026">"Sarearen mugak"</string>
+    <string name="data_usage_menu_metered" msgid="6235119991372755026">"Sarearen murriztapenak"</string>
     <string name="data_usage_menu_auto_sync" msgid="8203999775948778560">"Sinkronizatu datuak automatikoki"</string>
     <string name="data_usage_menu_sim_cards" msgid="6410498422797244073">"SIM txartelak"</string>
     <string name="data_usage_menu_cellular_networks" msgid="8339835014751511300">"Sare mugikorrak"</string>
@@ -2353,7 +2360,7 @@
     <string name="data_usage_cycle_editor_positive" msgid="8821760330497941117">"Ezarri"</string>
     <string name="data_usage_warning_editor_title" msgid="3704136912240060339">"Ezarri datu-erabileraren abisua"</string>
     <string name="data_usage_limit_editor_title" msgid="9153595142385030015">"Ezarri datu-erabileraren muga"</string>
-    <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Datu-erabilera mugatzea"</string>
+    <string name="data_usage_limit_dialog_title" msgid="3023111643632996097">"Datuen erabilera mugatzea"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="4983487893343645667">"Zehaztu duzun mugara iristean, tabletak desaktibatu egingo du datu-konexioa.\n\nZentzuzko muga bat ezartzea gomendatzen dizugu, datuen erabilera tabletak neurtuko duelako eta litekeena delako operadoreak datuak bestela neurtzea."</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="3926320594049434225">"Zehaztu duzun mugara iristean, telefonoak desaktibatu egingo du datu-konexioa.\n\nZentzuzko muga bat ezartzea gomendatzen dizugu, datuen erabilera telefonoak neurtuko duelako eta litekeena delako operadoreak datuak bestela neurtzea."</string>
     <string name="data_usage_restrict_background_title" msgid="2201315502223035062">"Atzeko planoko datuak mugatu?"</string>
@@ -2368,7 +2375,7 @@
     <string name="data_usage_total_during_range" msgid="4091294280619255237">"<xliff:g id="RANGE">%2$s</xliff:g>: gutxi gorabehera, <xliff:g id="TOTAL">%1$s</xliff:g> erabili duzu."</string>
     <string name="data_usage_total_during_range_mobile" product="tablet" msgid="1925687342154538972">"<xliff:g id="RANGE">%2$s</xliff:g>: <xliff:g id="TOTAL">%1$s</xliff:g> erabili duzu, tabletak neurtuta. Baliteke operadoreak desberdin zenbatzea."</string>
     <string name="data_usage_total_during_range_mobile" product="default" msgid="5063981061103812900">"<xliff:g id="RANGE">%2$s</xliff:g>: <xliff:g id="TOTAL">%1$s</xliff:g> erabili duzu, telefonoak neurtuta. Baliteke operadoreak desberdin zenbatzea."</string>
-    <string name="data_usage_metered_title" msgid="7383175371006596441">"Sarearen mugak"</string>
+    <string name="data_usage_metered_title" msgid="7383175371006596441">"Sarearen murriztapenak"</string>
     <string name="data_usage_metered_body" msgid="7655851702771342507">"Sare mugatuek sare mugikorren tratua jasotzen dute atzeko planoko datuak mugatuta daudenean. Agian aplikazioek abisuak erakutsiko dizkizute sare horiek deskarga handiak egiteko erabili aurretik."</string>
     <string name="data_usage_metered_mobile" msgid="5423305619126978393">"Sare mugikorrak"</string>
     <string name="data_usage_metered_wifi" msgid="1761738002328299714">"Wi‑Fi sare mugatuak"</string>
@@ -2582,7 +2589,7 @@
     <string name="extreme_threats_summary" msgid="8777860706500920667">"Jaso bizitza eta jabetzen aurkako mehatxu oso larrien alertak"</string>
     <string name="severe_threats_title" msgid="8362676353803170963">"Mehatxu larriak"</string>
     <string name="severe_threats_summary" msgid="8848126509420177320">"Jaso bizitza eta jabetzen aurkako mehatxu larrien alertak"</string>
-    <string name="amber_alerts_title" msgid="2772220337031146529">"AMBER alertak"</string>
+    <string name="amber_alerts_title" msgid="2772220337031146529">"AMBER abisuak"</string>
     <string name="amber_alerts_summary" msgid="4312984614037904489">"Jaso umeen bahiketei buruzko mezuak"</string>
     <string name="repeat_title" msgid="6473587828597786996">"Errepikapena"</string>
     <string name="call_manager_enable_title" msgid="7718226115535784017">"Gaitu dei-kudeatzailea"</string>
@@ -2746,7 +2753,7 @@
     <string name="other_sound_settings" msgid="3151004537006844718">"Beste soinu batzuk"</string>
     <string name="dial_pad_tones_title" msgid="1999293510400911558">"Markagailuaren tonuak"</string>
     <string name="screen_locking_sounds_title" msgid="1340569241625989837">"Pantaila blokeatzearen soinua"</string>
-    <string name="charging_sounds_title" msgid="1132272552057504251">"Soinuak kargatzea"</string>
+    <string name="charging_sounds_title" msgid="1132272552057504251">"Kargatzearen soinuak"</string>
     <string name="docking_sounds_title" msgid="155236288949940607">"Oinarrira konektatzearen soinua"</string>
     <string name="touch_sounds_title" msgid="5326587106892390176">"Ukipen-soinuak"</string>
     <string name="vibrate_on_touch_title" msgid="5388579924689395023">"Egin dar-dar sakatutakoan"</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Jakinarazpenak"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Ezarpen aurreratuak"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Laneko jakinarazpenak"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Baimendu ikonoen bereizgarriak"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Argi keinukaria"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Pantaila blokeatuan"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Erakutsi jakinarazpenen eduki guztia"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Arrunta"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Handia"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Premiazkoa"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Baimendu soinua egitea"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Baimendu soinua egitea"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ez egin soinurik edo dardararik eta ez agerrarazi jakinarazpenak uneko pantailan"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Jakinarazpenen laguntzailea"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Jakinarazpenetarako sarbidea"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Pantaila txikia"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Baimendu pantaila txikia erabiltzea"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Baimendu aplikazio honek pantaila txiki bat sortzea aplikazioa irekita dagoenean edo handik irtetean (adibidez, bideoak ikusten jarraitzeko). Erabiltzen ari zaren beste aplikazioen gaienean bistaratzen da leiho hori."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Bai"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ez"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"Ez molestatu\" aukerarako sarbidea"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ez dago \"Ez molestatu\" aukerarako sarbidea eskatu duen aplikaziorik"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Aplikazioak kargatzen…"</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ez erakutsi jakinarazpen hauek inoiz"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Erakutsi jakinarazpenak"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ez erakutsi inoiz jakinarazpenak edo ilundutako eremuetan edo gailu osagarrietan"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Erakutsi aplikazioen ikonoak bereizgarri gisa"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Hasierako pantailan, erakutsi jakinarazpenak bereizgarri gisa, aukera hori onartzen bada."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Baimendu ikonoaren bereizgarria erabiltzea"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Ez molestatu\" moduaren salbuespenak"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Baimendu jakinarazpenek jarduera etenaraztea \"Ez molestatu\" aukera Lehentasunezkoak soilik gisa ezarrita dagoenean"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Pantaila blokeatuan"</string>
@@ -3049,7 +3054,7 @@
     <string name="advanced_apps" msgid="4812975097124803873">"Ezarpen aurreratuak"</string>
     <string name="configure_apps" msgid="6685680790825882528">"Konfiguratu aplikazioak"</string>
     <string name="unknown_app" msgid="5275921288718717656">"Aplikazio ezezaguna"</string>
-    <string name="app_permissions" msgid="4148222031991883874">"Aplikaziorako baimenak"</string>
+    <string name="app_permissions" msgid="4148222031991883874">"Aplikazio-baimenak"</string>
     <string name="app_permissions_summary" msgid="5163974162150406324">"Baimen hauek dituzten aplikazioak: <xliff:g id="APPS">%1$s</xliff:g>"</string>
     <string name="tap_to_wake" msgid="7211944147196888807">"Sakatu aktibatzeko"</string>
     <string name="tap_to_wake_summary" msgid="4341387904987585616">"Sakatu birritan pantailako edozein puntu gailua aktibatzeko"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Bistaratu aplikazioen gainean"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> aplikaziok dute besteen gainean bistaratzeko baimena"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Baimena duten aplikazioak"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Bai"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ez"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalatu aplikazio ezezagunak"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalatu aplikazio iturburu ezezagun"</string>
     <string name="write_settings" msgid="4797457275727195681">"Aldatu sistemaren ezarpenak"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Aplikazioek sistemaren ezarpenak aldatzeko baimena"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Baimendu sistemaren ezarpenak aldatzea"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Baimen honekin, sistemaren ezarpenak alda ditzakete aplikazioek."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Bai"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ez"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Baimena dauka"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ez dauka baimenik"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Baimendu iturburu hau"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kamera irekitzeko, biratu birritan"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Ireki kameraren aplikazioa eskumuturra birritan biratuta"</string>
@@ -3259,7 +3262,7 @@
     <string name="location_on_summary" msgid="5127631544018313587">"AKTIBATUTA / <xliff:g id="LOCATION_MODE">%1$s</xliff:g>"</string>
     <string name="location_off_summary" msgid="6474350053215707957">"DESAKTIBATUTA"</string>
     <string name="backup_disabled" msgid="485189128759595412">"Desgaituta dago babeskopiak egiteko aukera"</string>
-    <string name="about_summary" msgid="924181828102801010">"Android <xliff:g id="VERSION">%1$s</xliff:g> bertsiora eguneratu da"</string>
+    <string name="about_summary" msgid="924181828102801010">"Android <xliff:g id="VERSION">%1$s</xliff:g> bertsiora eguneratuta"</string>
     <string name="disabled_by_policy_title" msgid="627023216027648534">"Ezin da hori egin"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7399450998356045023">"Ezin da aldatu bolumena"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="7919816644946067058">"Ez da onartzen deiak egitea"</string>
@@ -3307,12 +3310,11 @@
     <string name="cell_data_template" msgid="405684854174361041">"<xliff:g id="AMOUNT">^1</xliff:g> datu-konexioaren bidez"</string>
     <string name="wifi_data_template" msgid="6265570748799357386">"<xliff:g id="AMOUNT">^1</xliff:g> Wi-Fi konexioaren bidez"</string>
     <string name="ethernet_data_template" msgid="5782476509881033590">"<xliff:g id="AMOUNT">^1</xliff:g> ethernet-konexioaren bidez"</string>
-    <string name="cell_warning_only" msgid="763147658209027140">"Datuen-erabileraren abisua: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="cell_warning_only" msgid="763147658209027140">"Datuen erabileraren abisua: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Datuen erabileraren abisua: <xliff:g id="ID_1">%1$s</xliff:g>. Datuen muga: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Fakturazio-zikloa"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
-    <string name="network_restrictions" msgid="8234695294536675380">"Sarearen mugak"</string>
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Hilean behin, <xliff:g id="ID_1">%1$s</xliff:g>. egunean"</string>
+    <string name="network_restrictions" msgid="8234695294536675380">"Sarearen murriztapenak"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> murriztapen</item>
       <item quantity="one">1 murriztapen</item>
@@ -3331,7 +3333,7 @@
       <item quantity="one">Aplikazio batek dauka datuak mugarik gabe erabiltzeko baimena, baita datu-aurrezlea aktibatuta dagoenean ere</item>
     </plurals>
     <string name="data_saver_title" msgid="398458827917495765">"Datu-aurrezlea"</string>
-    <string name="unrestricted_data_saver" msgid="952796077540228711">"Datu-erabilera mugagabea"</string>
+    <string name="unrestricted_data_saver" msgid="952796077540228711">"Datuen erabilera mugagabea"</string>
     <string name="restrict_background_blacklisted" msgid="3995443391711013068">"Atzeko planoko datuak desaktibatuta daude"</string>
     <string name="data_saver_on" msgid="6774217590237934709">"Aktibatuta"</string>
     <string name="data_saver_off" msgid="6892309031162738794">"Desaktibatuta"</string>
@@ -3383,7 +3385,7 @@
     <string name="notification_log_details_none" msgid="184131801230614059">"bat ere ez"</string>
     <string name="notification_log_details_ranking_null" msgid="244660392058720919">"Sailkapen-objektua falta da."</string>
     <string name="notification_log_details_ranking_none" msgid="599607025882587844">"Sailkapen-objektuak ez du gako hau."</string>
-    <string name="special_access" msgid="3458780842491881155">"Aplikazioaren sarbide berezia"</string>
+    <string name="special_access" msgid="3458780842491881155">"Aplikazioen baimen bereziak"</string>
     <plurals name="special_access_summary" formatted="false" msgid="260765309935675867">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aplikaziok dute datuak mugarik gabe erabiltzeko aukera</item>
       <item quantity="one">1 aplikaziok du datuak mugarik gabe erabiltzeko aukera</item>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index 32ca0b7..cd8b986 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"خوب"</item>
     <item msgid="8986346415847956850">"عالی"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"همیشه"</item>
-    <item msgid="844721238536786870">"تنها زمانی که وصل است"</item>
-    <item msgid="1986753720941888596">"هیچ‌وقت"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"همیشه"</item>
-    <item msgid="7433294150916905997">"تنها زمانی که وصل است"</item>
-    <item msgid="1390404486722375028">"هیچ‌وقت"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"۳۰ روز گذشته"</item>
     <item msgid="6600989128423965319">"تنظیم چرخه مصرف..."</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index d2bf401..eaf1362 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"شما اکنون یک برنامه‌نویس هستید!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"نیازی نیست، شما در حال حاضر یک برنامه‌نویس هستید."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"اتصال قطع شود؟"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"‏این کار اتصال شما را با این دستگاه قطع می‌کند:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;."</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"اجازه ندارید تنظیمات بلوتوث را تغییر دهید."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"هنگام باز بودن تنظیمات بلوتوث، <xliff:g id="DEVICE_NAME">%1$s</xliff:g> برای دستگاه‌های اطراف قابل مشاهده است."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"‏نشانی MAC بلوتوث: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"ارتباط <xliff:g id="DEVICE_NAME">%1$s</xliff:g> قطع شود؟"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"پخش"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"غیر فعال کردن نمایه؟"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"‏%1$s می‌خواهد به پیام‌های شما دسترسی یابد. اجازه دسترسی به %2$s داده شود؟"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"درخواست دسترسی به سیم‌‌کارت"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> می‌خواهد به سیم‌کارت شما دسترسی پیدا کند. درصورتی‌که به دسترسی به سیم‌کارت اجازه دهید، اتصال داده در مدت اتصال در دستگاه شما غیرفعال می‌شود. به <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> اجازه دسترسی دهید"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"به‌عنوان <xliff:g id="DEVICE_NAME">^1</xliff:g> برای دستگاه‌های دیگر قابل مشاهده است"</string>
     <string name="date_and_time" msgid="9062980487860757694">"تاریخ و زمان"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"انتخاب منطقهٔ زمانی"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"بیدار شدن با بالا بردن"</string>
     <string name="doze_title" msgid="2259176504273878294">"نمایشگر محیط"</string>
     <string name="doze_summary" msgid="3846219936142814032">"روشن شدن صفحه‌نمایش هنگامی که اعلانی دریافت می‌کنید"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"همیشه روشن"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"نمایش زمان، نمادهای اعلان و سایر اطلاعات"</string>
     <string name="title_font_size" msgid="4405544325522105222">"اندازه قلم"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"نوشتار را بزرگ‌تر یا کوچک‌تر کنید"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"تنظیمات قفل سیم کارت"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"استفاده از <xliff:g id="SERVICE">%1$s</xliff:g>؟"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> باید:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"چون برنامه‌ای در حال ایجاد تداخل در درخواست مجوز است، «تنظیمات» نمی‌تواند پاسخ شما را تأیید کند."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"چون در این لحظه برنامه دیگری روی این گزینه‌ها نشان داده می‌شود، «تنظیمات» نمی‌تواند به اقدام شما پاسخ دهد."</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="enable_service_pattern_reason" msgid="777577618063306751">"از آنجایی که روشن کردن <xliff:g id="SERVICE">%1$s</xliff:g> بر رمزگذاری اطلاعات تأثیر می‌گذارد، باید الگویتان را تأیید کنید."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"اعلان‌ها"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"پیشرفته"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"اعلان‌های کار"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"اجازه دادن به نشان‌های نماد"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"نور چشمک‌زن"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"روی قفل صفحه"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"نمایش همه محتوای اعلان"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"متوسط"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"زیاد"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"فوری"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"صدادار باشد"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"صدا مجاز است"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"بدون صدا و لرزش یا نمایش این اعلان‌ها در صفحه‌نمایش کنونی."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"دستیار اعلان"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"دسترسی به اعلان"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"تصویر در تصویر"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"مجاز کردن تصویر در تصویر"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"به این برنامه اجازه دهید زمانی‌که باز است یا پس از اینکه از آن خارج شدید (مثلاً برای ادامه تماشای ویدیو)، پنجره تصویر در تصویر ایجاد کند. این پنجره روی سایر برنامه‌هایی که درحال استفاده از آنها هستید نمایش داده می‌شود."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"بله"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"نه"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"دسترسی به «مزاحم نشوید»"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"هیچ برنامه نصب شده‌ای دسترسی به «مزاحم نشوید» را درخواست نکرده است"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"در حال بارگیری برنامه..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"هرگز این اعلان‌ها نشان داده نشوند"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"نمایش اعلان‌ها"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"هرگز اعلان‌ها در کشوی اعلانات یا در دستگاه‌های جانبی نشان داده نشوند"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"نماد برنامه نشان"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"نمایش اعلان‌ها به‌صورت نشان در برنامه «اصلی»، درصورتی که پشتیبانی شود."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"نشان نماد مجاز است"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"لغو «مزاحم نشوید»"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"به این اعلان‌ها اجازه داده شود در شرایطی که «مزاحم نشوید» روی «فقط اولویت‌دار» تنظیم شده است، همچنان وقفه ایجاد کنند"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"در قفل صفحه"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"نمایش روی سایر برنامه‌ها"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"برای نمایش روی سایر برنامه‌ها، <xliff:g id="COUNT_0">%1$d</xliff:g> مورد از <xliff:g id="COUNT_1">%2$d</xliff:g> برنامه مجاز شده‌اند"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"برنامه‌های دارای مجوز"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"بله"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"نه"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"نصب برنامه‌های ناشناس"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"نصب برنامه‌ از منابع ناشناس"</string>
     <string name="write_settings" msgid="4797457275727195681">"تغییر تنظیمات سیستم"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"مجوز تغییر تنظیمات سیستم توسط برنامه"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"اجازه دادن به برنامه برای تغییر تنظیمات سیستم"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"این مجوز به برنامه امکان می‌دهد تنظیمات سیستم را تغییر دهد."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"بله"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"نه"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"مجاز"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"مجاز نیست"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"مجاز از این منبع"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"دو بار بچرخانید تا دوربین باز شود"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"با دو بار چرخاندن مچتان، برنامه دوربین را باز کنید"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"روز <xliff:g id="ID_1">%1$s</xliff:g> هر ماه"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"محدودیت‌های شبکه"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> محدودیت</item>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 88cea35..7ce271b 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Hyvä"</item>
     <item msgid="8986346415847956850">"Erinomainen"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Aina"</item>
-    <item msgid="844721238536786870">"Vain, kun laturi on kytketty"</item>
-    <item msgid="1986753720941888596">"Ei koskaan"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Aina"</item>
-    <item msgid="7433294150916905997">"Vain, kun laturi on kytketty"</item>
-    <item msgid="1390404486722375028">"Ei koskaan"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 viime päivää"</item>
     <item msgid="6600989128423965319">"Aseta käyttöjakso…"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 24961c5..f1c3a41 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Olet nyt kehittäjä!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Ei tarvitse klikata, olet jo kehittäjä."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Langaton verkko ja verkot"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Yhteydet"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Laite"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Katkaistaanko yhteys?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Katkaisee yhteyden laitteeseen:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Sinulla ei ole lupaa muuttaa Bluetooth-asetuksia."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> näkyy lähellä olevissa laitteissa, kun Bluetooth-asetukset on auki."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetoothin MAC-osoite: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Katkaistaanko yhteys laitteeseen <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Lähetys"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Poistetaanko profiili?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s haluaa käyttää viestejäsi. Myönnetäänkö käyttöoikeus kohteeseen %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM-kortin käyttöoikeuspyyntö"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> haluaa käyttää SIM-korttiasi. SIM-kortin käyttöoikeuden myöntäminen poistaa laitteesi datayhteyden käytöstä yhteyden ajaksi. Myönnä käyttöoikeus laitteelle <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>?"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Muille laitteille näkyvä nimi: <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Päivämäärä ja aika"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Valitse aikavyöhyke"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Herätä nostamalla"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambient-näyttö"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Aktivoi näyttö, kun saat ilmoituksia."</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Aina käytössä"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Näytä aika, ilmoitukset, kuvakkeet ja muut tiedot."</string>
     <string name="title_font_size" msgid="4405544325522105222">"Kirjasimen koko"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Suurenna tai pienennä tekstiä."</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM-kortin lukitusasetukset"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Otetaanko <xliff:g id="SERVICE">%1$s</xliff:g> käyttöön?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> saa luvan:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Sovellus peittää lupapyynnön, joten Asetukset ei voi vahvistaa valintaasi."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Toinen sovellus peittää nämä asetukset, joten Asetukset ei voi reagoida toimintoosi."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Jos <xliff:g id="SERVICE">%1$s</xliff:g> otetaan käyttöön, laitteesi ei käytä näytön lukitusta tiedon salauksen parantamiseen."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Laite ei käytä näytön lukitusta tiedon salauksen parantamiseen, koska otit käytettävyyspalvelun käyttöön."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Koska palvelun <xliff:g id="SERVICE">%1$s</xliff:g> ottaminen käyttöön vaikuttaa tietojen salaukseen, sinun pitää vahvistaa kuvio."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Ilmoitukset"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Lisäasetukset"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Työilmoitukset"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Salli merkkikuvakkeet"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Vilkuta valoa"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Lukitusnäytöllä"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Näytä ilmoitusten koko sisältö."</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Keskitaso"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Korkea"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Kiireellinen"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Salli ääni"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Salli ääni"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ilmoitus ei tule aktiiviselle näytölle eikä salli ääniä tai värinää."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Ilmoitusapuri"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Pääsy ilmoituksiin"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Kuva kuvassa"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Salli kuva kuvassa"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Anna sovellukselle lupa luoda kuva kuvassa ‑ikkuna, kun se on auki tai siirryt siitä muualle (esimerkiksi palaat videoon). Tämä ikkuna näytetään muiden sovellusten ikkunoiden päällä."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Kyllä"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ei"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Älä häiritse -käyttöoikeudet"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Yksikään asennettu sovellus ei ole pyytänyt Älä häiritse -tilan käyttöoikeutta."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Ladataan sovelluksia…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Älä koskaan näytä näitä ilmoituksia"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Näytä ilmoitukset"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Älä näytä ilmoituksia ilmoitusalueella tai lisälaitteissa"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Merkki sovelluksen kuvakkeessa"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Näytä ilmoitukset merkkeinä Home-sovelluksessa, jos tätä tuetaan."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Salli merkkikuvake"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ohita Älä häiritse -asetus"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Salli ilmoituksien näyttö, vaikka Älä häiritse -asetus on Vain tärkeät."</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Lukitusnäytöllä"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Sovellusten päällä näkyminen"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> sovellusta saa näkyä muiden sovellusten päällä."</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Sovellukset, joilla on käyttöoikeus"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Kyllä"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ei"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Tuntemattomien sovellusten asentaminen"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"sovellusten asentaminen tuntemattomista lähteistä"</string>
     <string name="write_settings" msgid="4797457275727195681">"Muokkaa järjestelmäasetuksia"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Sovelluksen järjestelmäasetusten muokkausoikeus"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Salli järjestelmäasetusten muokkaaminen"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Tämä käyttöoikeus sallii sovelluksen muokata järjestelmäasetuksia."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Kyllä"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ei"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Sallittu"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ei sallittu"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Salli tästä lähteestä"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kaksoiskääntäminen kameraa varten"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Avaa kamerasovellus kääntämällä rannettasi kahdesti"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Datavaroitus <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Datavaroitus <xliff:g id="ID_1">%1$s</xliff:g> / Datankäyttöraja <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Laskutusjakso"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Joka kuukauden <xliff:g id="ID_1">%1$s</xliff:g>. päivä"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Verkkorajoitukset"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> rajoitusta</item>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 6a85506..150ef15 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bonne"</item>
     <item msgid="8986346415847956850">"Excellente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Toujours"</item>
-    <item msgid="844721238536786870">"Uniquement si l\'appareil ebranché"</item>
-    <item msgid="1986753720941888596">"Jamais"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Toujours"</item>
-    <item msgid="7433294150916905997">"Uniquement si l\'appareil ebranché"</item>
-    <item msgid="1390404486722375028">"Jamais"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 derniers jours"</item>
     <item msgid="6600989128423965319">"Défin. du cycle d\'util..."</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index db66f3d..e1b3b63 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Vous êtes désormais un développeur!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Inuti, vous êtes déjà un développeur."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Sans fil et réseaux"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connexions"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Appareil"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Voulez-vous vraiment vous déconnecter?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Cette opération va mettre fin à votre connexion avec :&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Vous n\'êtes pas autorisé à modifier les paramètres Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Lorsque le Bluetooth est activé, votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g> est visible par les appareils à proximité."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresse MAC Bluetooth : <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Déconnecter <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Diffusion"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Désactiver le profil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s souhaite accéder à vos messages. Autoriser l\'accès à %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Demande d\'accès à la carte SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> souhaite accéder à votre carte SIM. Le fait d\'accorder l\'accès à la carte SIM désactive la connectivité de données sur votre appareil pendant la durée de la connexion. Accorder l\'accès à <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>."</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible comme « <xliff:g id="DEVICE_NAME">^1</xliff:g> » aux autres appareils"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Date et heure"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Sélectionner le fuseau horaire"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Soulever pour activer"</string>
     <string name="doze_title" msgid="2259176504273878294">"Affichage en mode Veille"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activer l\'écran lorsque vous recevez des notifications"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Toujours activé"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Afficher l\'heure, les icônes de notifications et d\'autres renseignements"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Taille de police"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Agrandissez ou réduisez le texte"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Paramètres de verrouillage SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Utiliser <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Une application obscurcit une demande d\'autorisation, alors Paramètres ne peut pas vérifier votre réponse."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"L\'application Paramètres ne peut pas répondre à votre action, car une autre application se superpose à ces options."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Si vous activez <xliff:g id="SERVICE">%1$s</xliff:g>, votre appareil n\'utilisera pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Vous avez activé un service d\'accessibilité. Votre appareil n\'utilisera donc pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Étant donné que l\'activation du service <xliff:g id="SERVICE">%1$s</xliff:g> touche le chiffrement de données, vous devez confirmer votre schéma."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifications"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Paramètres avancés"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifications professionnelles"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Autoriser les insignes d\'icône"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Faire clignoter le voyant"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"À l\'écran de verrouillage"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Afficher tout le contenu des notifications"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Moyenne"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Élevée"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Autoriser le son"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Autoriser le son"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ne pas émettre de son, activer le vibreur ni afficher ces notifications sur l\'écran actif."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistant des notifications"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Accès aux notifications"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Incrustation d\'image"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Autoriser l\'incrustation d\'image"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Autorisez cette application à créer une fenêtre d\'incrustation d\'image lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applications en cours d\'utilisation."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Oui"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Non"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Accès à « Ne pas déranger »"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Aune application installée n\'a demandé l\'accès au mode « Ne pas déranger »"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Chargement des applications en cours..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ne jamais afficher ces notifications"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Afficher les notifications"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ne jamais afficher les notifications dans l\'ombre ou sur des appareils périphériques"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Icône de badge d\'application"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Afficher les notifications comme des badges dans l\'application Accueil, le cas échéant."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Autoriser l\'insigne de l\'icône"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignorer le mode « Ne pas déranger »"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Activer les notifications de cette application même lorsque l\'option « Ne pas déranger » est définie sur « Prioritaires uniquement »"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"À l\'écran de verrouillage"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Afficher par-dessus autres applis"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> applis sur <xliff:g id="COUNT_1">%2$d</xliff:g> sont autorisées à aff. par-dessus autres applis"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Applications dotées de l\'autorisation"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Oui"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Non"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installer applis inconnues"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installer des applications provenant de sources inconnues"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modifier paramètres système"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Autorisation de modifier les paramètres système"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Autoriser la modif. des paramètres du système"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Cette autorisation permet à une application de modifier les paramètres du système."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Oui"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Non"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Autorisée"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Non autorisée"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Autoriser de cette source"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Pivot. poignet deux fois pour app. photo"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Ouvrez l\'application de l\'appareil photo en pivotant votre poignet deux fois"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">%1$s</xliff:g> / Limite de consommation des données : <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Cycle de facturation"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mensuel (<xliff:g id="ID_1">%1$s</xliff:g> jour du mois)"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrictions réseau"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restriction</item>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index de93bac..e8d1cb4 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bonne"</item>
     <item msgid="8986346415847956850">"Excellente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Toujours"</item>
-    <item msgid="844721238536786870">"Uniquement si l\'appareil est branché"</item>
-    <item msgid="1986753720941888596">"Jamais"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Toujours"</item>
-    <item msgid="7433294150916905997">"Uniquement si appareil branché"</item>
-    <item msgid="1390404486722375028">"Jamais"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 derniers jours"</item>
     <item msgid="6600989128423965319">"Définir cycle conso..."</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index c90a9f4..7b6ec75 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Vous êtes désormais un développeur !"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Inutile, vous êtes déjà un développeur."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Sans fil et réseaux"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connexions"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Appareil"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Déconnecter ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Cela va mettre fin à votre connexion avec :&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Vous n\'êtes pas autorisé à modifier les paramètres Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Lorsque le Bluetooth est activé, votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g> est visible par les appareils à proximité."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresse MAC Bluetooth : <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Déconnecter l\'appareil \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Diffusion"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Désactiver le profil ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"Une demande d\'accès à vos messages a été envoyée pour \"%1$s\". Accorder l\'accès à \"%2$s\" ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Demande d\'accès à la carte SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"\"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>\" requiert l\'accès à votre carte SIM. Si vous l\'accordez, la connectivité des données sera désactivée sur votre appareil pour toute la durée de la connexion. Accorder l\'autorisation d\'accès à \"<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>\""</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible avec le nom \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\" pour les autres appareils"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Date et heure"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Sélectionner le fuseau horaire"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -674,7 +680,7 @@
     <string name="android_beam_off_summary" msgid="4663095428454779138">"Désactivé"</string>
     <string name="android_beam_disabled_summary" msgid="1737782116894793393">"Indisponible, car la NFC est désactivée"</string>
     <string name="android_beam_label" msgid="6257036050366775040">"Android Beam"</string>
-    <string name="android_beam_explained" msgid="1810540319385192758">"Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une application avec un appareil compatible NFC en rapprochant les appareils. Vous pouvez, par exemple, partager des pages Web, des vidéos YouTube ou des contacts.\n\nIl vous suffit de rapprocher les appareils, en les plaçant dos à dos, puis d\'appuyer sur votre écran. L\'application détermine le contenu à partager."</string>
+    <string name="android_beam_explained" msgid="1810540319385192758">"Lorsque cette fonctionnalité est activée, vous pouvez partager le contenu d\'une application avec un appareil compatible NFC en rapprochant les appareils. Vous pouvez par exemple partager des pages Web, des vidéos YouTube ou des contacts.\n\nIl vous suffit de rapprocher les appareil (en les plaçant dos à dos), puis d\'appuyer sur votre écran. L\'application détermine le contenu à partager."</string>
     <string name="wifi_quick_toggle_title" msgid="8850161330437693895">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="2696547080481267642">"Activer le Wi-Fi"</string>
     <string name="wifi_settings" msgid="29722149822540994">"Wi-Fi"</string>
@@ -698,7 +704,7 @@
     <string name="use_open_wifi_automatically_title" msgid="6851951242903078588">"Connexion aux réseaux ouverts"</string>
     <string name="use_open_wifi_automatically_summary" msgid="2982091714252931713">"Se connecter automatiquement aux réseaux publics haute qualité"</string>
     <string name="wifi_install_credentials" msgid="3551143317298272860">"Installation de certificats"</string>
-    <string name="wifi_scan_notify_text" msgid="5593805423071186757">"Pour améliorer la précision de la localisation, les applications et les services système peuvent toujours rechercher les réseaux Wi-Fi. Vous pouvez modifier ce paramètre dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="wifi_scan_notify_text" msgid="5593805423071186757">"Pour améliorer la précision de la localisation, les applications et les services système peuvent rechercher en permanence les réseaux Wi-Fi. Vous pouvez modifier ce paramètre dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_text_scanning_off" msgid="3426075479272242098">"Pour améliorer la précision de la position, activez la recherche Wi-Fi dans les <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>paramètres de recherche<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="7104867814641144485">"Ne plus afficher"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="5149574280392680092">"Wi-Fi actif en veille"</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Soulever pour activer"</string>
     <string name="doze_title" msgid="2259176504273878294">"Affichage en mode Veille"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activer l\'écran lors de la réception de notifications"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Toujours activé"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Afficher l\'heure, les icônes de notification et d\'autres informations"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Taille de la police"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Agrandir ou réduire le texte"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Paramètres verrouillage SIM"</string>
@@ -1294,7 +1302,7 @@
     <string name="master_clear_desc" product="default" msgid="4800386183314202571">"Cette action effacera toutes les données du "<b>"stockage interne"</b>" de votre téléphone, y compris :\n\n"<li>"Votre compte Google"</li>\n<li>"Les données et paramètres du système et des applications"</li>\n<li>"Les applications téléchargées"</li></string>
     <string name="master_clear_accounts" product="default" msgid="6412857499147999073">\n\n"Vous êtes actuellement connecté aux comptes suivants :\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5161423070702470742">\n\n"D\'autres personnes utilisent cet appareil.\n"</string>
-    <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"Musique"</li>\n<li>"Photos"</li>\n<li>"Autres données utilisateur"</li></string>
+    <string name="master_clear_desc_also_erases_external" msgid="1903185203791274237"><li>"La musique"</li>\n<li>"Les photos"</li>\n<li>"Les autres données utilisateur"</li>"."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="7744115866662613411">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez effacer la "<b>"mémoire de stockage USB"</b>"."</string>
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="4801026652617377093">\n\n"Pour supprimer la musique, les photos et les autres données utilisateur, vous devez formater la "<b>"carte SD"</b>"."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="969364037450286809">"Effacer la mémoire USB"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Utiliser <xliff:g id="SERVICE">%1$s</xliff:g> ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> doit pouvoir :"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Une application masque la demande d\'autorisation. Impossible de valider votre réponse via l\'application Paramètres."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"L\'application Paramètres ne peut pas répondre à votre action, car une autre application se superpose à ces options."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Si vous activez <xliff:g id="SERVICE">%1$s</xliff:g>, votre appareil n\'utilisera pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Vous avez activé un service d\'accessibilité. Votre appareil n\'utilisera donc pas le verrouillage de l\'écran pour améliorer le chiffrement des données."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Vous devez confirmer le schéma, car l\'activation du service <xliff:g id="SERVICE">%1$s</xliff:g> influe sur le chiffrement des données."</string>
@@ -2028,7 +2035,7 @@
     <string name="battery_detail_info_title" msgid="8227822131405620369">"Depuis la charge complète"</string>
     <string name="battery_detail_manage_title" msgid="9094314252105828014">"Gérer l\'utilisation de la batterie"</string>
     <string name="estimated_time_left" msgid="7514194472683370877">"Temps restant estimé"</string>
-    <string name="estimated_charging_time_left" msgid="5614442409326164691">"Avant une charge complète"</string>
+    <string name="estimated_charging_time_left" msgid="5614442409326164691">"Jusqu\'à la charge complète"</string>
     <string name="estimated_time_description" msgid="8760210909000037089">"L\'estimation peut changer en fonction de l\'utilisation"</string>
     <string name="menu_stats_unplugged" msgid="8296577130840261624">"Débranché depuis <xliff:g id="UNPLUGGED">%1$s</xliff:g>"</string>
     <string name="menu_stats_last_unplugged" msgid="5922246077592434526">"Depuis le dernier débranchement (<xliff:g id="UNPLUGGED">%1$s</xliff:g>)"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifications"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Paramètres avancés"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifications profil pro"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Autoriser les badges d\'icône"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Clignotement"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Sur l\'écran de verrouillage"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Afficher tout le contenu des notifications"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Moyenne"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Élevée"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Émettre un signal sonore"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Émettre un signal sonore"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ne pas émettre de son, activer le vibreur ni afficher ces notifications sur l\'écran actif"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistant de notifications"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Accès aux notifications"</string>
@@ -2830,7 +2838,7 @@
     <string name="notification_listener_disable_warning_confirm" msgid="8333442186428083057">"Désactiver"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8586417377104211584">"Annuler"</string>
     <string name="vr_listeners_title" msgid="1318901577754715777">"Assistance réalité virtuelle"</string>
-    <string name="no_vr_listeners" msgid="2689382881717507390">"Aucune demande d\'exécution en tant que services de soutien de réalité virtuelle n\'a été envoyée pour les applications installées."</string>
+    <string name="no_vr_listeners" msgid="2689382881717507390">"Aucune demande d\'exécution en tant que service d\'assistance pour la réalité virtuelle n\'a été envoyée pour les applications installées."</string>
     <string name="vr_listener_security_warning_title" msgid="8309673749124927122">"Autoriser <xliff:g id="SERVICE">%1$s</xliff:g> à accéder au service de réalité virtuelle ?"</string>
     <string name="vr_listener_security_warning_summary" msgid="6931541068825094653">"L\'écouteur \"<xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g>\" pourra être exécuté lorsque vous utiliserez des applications en mode Réalité virtuelle."</string>
     <string name="display_vr_pref_title" msgid="8104485269504335481">"Lorsque l\'appareil est en mode Réalité virtuelle"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Mode PIP"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Autoriser le mode PIP"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Autorisez cette application à créer une fenêtre PIP lorsqu\'elle est ouverte ou après l\'avoir quittée (par exemple, pour continuer de regarder une vidéo). Cette fenêtre se superpose aux autres applications en cours d\'utilisation."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Oui"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Non"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Accès \"Ne pas déranger\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Aucune demande d\'accès \"Ne pas déranger\" n\'a été envoyée par les applications installées."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Chargement des applications en cours…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ne jamais afficher ces notifications"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Afficher les notifications"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ne jamais afficher les notifications dans le volet ou sur les périphériques"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Icône Badge"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Afficher les notifications sous forme de badges dans l\'application Google Home (si disponible)."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Autoriser le badge de l\'icône"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignorer l\'option \"Ne pas déranger\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Autoriser les interruptions par ces notifications lorsque l\'option \"Ne pas déranger\" est définie sur \"Prioritaires uniquement\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Sur l\'écran de verrouillage"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Superposer aux autres applis"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> applis sur <xliff:g id="COUNT_1">%2$d</xliff:g> autorisées à se superposer à d\'autres"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Applications disposant de l\'autorisation"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Oui"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Non"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installation d\'applications inconnues"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installer applications sources inconnues"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modifier paramètres système"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Autorisation modifier paramètres système par applis"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Autoriser modification des paramètres système"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Cette autorisation permet à une application de modifier les paramètres système."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Oui"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Non"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Autorisé"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Non autorisé"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Autoriser cette source"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Double rotation pour l\'appareil photo"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Ouvrez l\'application Appareil photo en faisant pivoter votre poignet deux fois."</string>
@@ -3307,10 +3310,9 @@
     <string name="wifi_data_template" msgid="6265570748799357386">"<xliff:g id="AMOUNT">^1</xliff:g> de données Wi-Fi"</string>
     <string name="ethernet_data_template" msgid="5782476509881033590">"<xliff:g id="AMOUNT">^1</xliff:g> de données Ethernet"</string>
     <string name="cell_warning_only" msgid="763147658209027140">"Limite déclenchant un avertissement sur la consommation des données : <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="cell_warning_and_limit" msgid="2273413629267437470">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">%1$s</xliff:g> / Limite de consommation des données : <xliff:g id="ID_2">%2$s</xliff:g>"</string>
+    <string name="cell_warning_and_limit" msgid="2273413629267437470">"Avertissement relatif aux données : <xliff:g id="ID_1">%1$s</xliff:g> / Limite de consommation des données : <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Cycle de facturation"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mensuel (le <xliff:g id="ID_1">%1$s</xliff:g>)"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrictions sur le réseau"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restriction</item>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 9cd177a..99d2d5a 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Boa"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Só cando está conectada"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Só cando está conectada"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 días"</item>
     <item msgid="6600989128423965319">"Definir ciclo de uso..."</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index d79c1f6..4af4c0a 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Agora xa es programador."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Non é necesario, xa es un programador."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Sen fíos e redes"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexións"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Desconectar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Isto finalizará a túa conexión con:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Non tes permiso para cambiar a configuración de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> será visible para dispositivos próximos coa configuración de Bluetooth activada."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Enderezo MAC de Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Queres desconectar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Difusión"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Desactivar o perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s quere acceder ás túas mensaxes. Queres conceder acceso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitude de acceso á SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> quere acceder á túa tarxeta SIM. Ao outorgar acceso á tarxeta SIM desactivarase a conectividade de datos no teu dispositivo durante a conexión. Outorgar acceso a <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visible como <xliff:g id="DEVICE_NAME">^1</xliff:g> para os demais dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Seleccionar zona horaria"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Levantar para acender"</string>
     <string name="doze_title" msgid="2259176504273878294">"Pantalla ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activa a pantalla cando recibes notificacións"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre activado"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostra a hora, as iconas de notificación e outra información"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamaño do tipo de letra"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Reduce ou amplía o texto"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Configuración de bloqueo da SIM"</string>
@@ -1489,7 +1497,7 @@
     <string name="lock_settings_profile_unified_summary" msgid="9008819078132993492">"O mesmo que o bloqueo da pantalla do dispositivo"</string>
     <string name="manageapplications_settings_title" msgid="7041951105633616745">"Xestionar aplicacións"</string>
     <string name="manageapplications_settings_summary" msgid="1794401500935451259">"Xestiona e elimina as aplicacións instaladas"</string>
-    <string name="applications_settings" msgid="5281808652705396152">"Información da aplicación"</string>
+    <string name="applications_settings" msgid="5281808652705396152">"Información das aplicacións"</string>
     <string name="applications_settings_summary" msgid="6683465446264515367">"Xestiona aplicacións e configura atallos de inicio rápido"</string>
     <string name="applications_settings_header" msgid="1014813055054356646">"Configuración da aplicación"</string>
     <string name="install_applications" msgid="4872012136210802181">"Fontes descoñecidas"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Usar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Posto que unha aplicación se superpón sobre una solicitude de permiso, a configuración non pode verificar a túa resposta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Móstrase outra aplicación enriba destas opcións. Por este motivo, non se aplican os cambios que fagas en Configuración."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Se activas <xliff:g id="SERVICE">%1$s</xliff:g>, o dispositivo non utilizará o teu bloqueo da pantalla para mellorar o cifrado de datos."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Como activaches un servizo de accesibilidade, o dispositivo non utilizará o teu bloqueo da pantalla para mellorar o cifrado de datos."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"É necesario que confirmes o teu padrón xa que a activación de <xliff:g id="SERVICE">%1$s</xliff:g> afecta ao cifrado de datos."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificacións"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Configuración avanzada"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificacións do traballo"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir insignias de iconas"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Luz intermitente"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na pantalla de bloqueo"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todo o contido das notificacións"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Media"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urxente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permitir son"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir son"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Non emitir son, vibrar nin mostrar estas notificacións na pantalla actual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistente de notificacións"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acceso a notificacións"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imaxe superposta"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir imaxe superposta"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esta aplicación cree unha ventá de imaxe superposta mentres que a aplicación está aberta ou despois de saír dela (por exemplo, para continuar visualizando un vídeo). Esta ventá móstrase sobre outras aplicacións que estás utilizando."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Si"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Non"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acceso en modo Non molestar"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ningunha aplicación instalada solicitou acceso en modo Non molestar"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Cargando aplicacións..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Non mostrar nunca estas notificacións"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificacións"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Non mostra nunca as notificacións no menú despregable da parte superior da pantalla nin en dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Icona de aplicación de insignias"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostra as notificacións como insignias na aplicación de Inicio, se é compatible."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir insignia de icona"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Anular opción Non molestar"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permitir que estas notificacións sigan interrompendo cando a opción Non molestar estea configurada como Só prioridade"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na pantalla de bloqueo"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Superpoñer sobre aplicacións"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Aplicacións con permiso para superpoñerse a outras: <xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicacións con permiso"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Si"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Non"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar apps descoñecidas"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar aplicacións fontes descoñecidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modificar configuración"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permiso para modificar a configuración do sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir modificar a configuración do sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Con este permiso unha aplicación pode modificar a configuración do sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Si"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Non"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permitida"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Non permitida"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permitir desde esta fonte"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dobre xiro para abrir a cámara"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Xira o pulso dúas veces para abrir a aplicación da cámara"</string>
@@ -3310,8 +3313,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Aviso de datos: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Aviso de datos: <xliff:g id="ID_1">%1$s</xliff:g>/Límite de datos: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de facturación"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mensualmente o día <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restricións de rede"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restricións</item>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index bad1b55..525b5c4 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"સારી"</item>
     <item msgid="8986346415847956850">"ઉત્તમ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"હંમેશા"</item>
-    <item msgid="844721238536786870">"ફક્ત પ્લગ ઇન હોય ત્યારે"</item>
-    <item msgid="1986753720941888596">"ક્યારેય નહીં"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"હંમેશા"</item>
-    <item msgid="7433294150916905997">"ફક્ત પ્લગ ઇન હોય ત્યારે"</item>
-    <item msgid="1390404486722375028">"ક્યારેય નહીં"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"છેલ્લા 30 દિવસ"</item>
     <item msgid="6600989128423965319">"વપરાશ સાયકલ સેટ કરો..."</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 75522a8..542ebad 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"તમે હવે વિકાસકર્તા છો!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"કોઈ જરૂર નથી, તમે પહેલાંથી જ એક વિકાસકર્તા છો."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ડિસ્કનેક્ટ કરીએ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"આ આની સાથે તમારા કનેક્શનને સમાપ્ત કરશે:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"તમારી પાસે Bluetooth સેટિંગ્સ બદલવાની પરવાનગી નથી."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"જ્યારે Bluetooth  સેટિંગ્સ ખુલ્લી હોય ત્યારે <xliff:g id="DEVICE_NAME">%1$s</xliff:g> નજીકનાં ઉપકરણોને દૃશ્યક્ષમ છે."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC ઍડ્રેસ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ને ડિસ્કનેક્ટ કરીએ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"બ્રૉડકાસ્ટ કરી રહ્યાં છે"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"પ્રોફાઇલ અક્ષમ કરીએ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s તમારા સંદેશા અ‍ૅક્સેસ કરવા માંગે છે. %2$s ને અ‍ૅક્સેસ આપીએ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM ઍક્સેસ વિનંતી"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> તમારા SIM કાર્ડને અ‍ૅક્સેસ કરવા માગે છે. SIM કાર્ડની અ‍ૅક્સેસને મંજૂરી આપવું કનેક્શનના સમયગાળા માટે તમારા ઉપકરણ પર ડેટા કનેક્ટિવિટીને અક્ષમ કરશે. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> ને અ‍ૅક્સેસ આપો"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"<xliff:g id="DEVICE_NAME">^1</xliff:g> તરીકે અન્ય ઉપકરણોને દૃશ્યક્ષમ છે"</string>
     <string name="date_and_time" msgid="9062980487860757694">"તારીખ અને સમય"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"સમય ઝોન પસંદ કરો"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"જાગૃત કરવા માટે લિફ્ટ કરો"</string>
     <string name="doze_title" msgid="2259176504273878294">"વ્યાપક ડિસ્પ્લે"</string>
     <string name="doze_summary" msgid="3846219936142814032">"જ્યારે તમને સૂચનાઓ પ્રાપ્ત થાય ત્યારે સ્ક્રીન સક્રિય કરો"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"હંમેશાં ચાલુ"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"સમય, સૂચનાના આઇકન અને અન્ય માહિતી બતાવો"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ફોન્ટનું કદ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ટેક્સ્ટને નાની અથવા મોટી કરો"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM કાર્ડ લૉક સેટિંગ્સ"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> નો ઉપયોગ કરીએ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ને આની જરૂર છે:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"એક ઍપ્લિકેશન પરવાનગી વિનંતીને અસ્પષ્ટ કરતી હોવાને કારણે, સેટિંગ્સ તમારા પ્રતિસાદને ચકાસી શકતી નથી."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"બીજી ઍપ્લિકેશન આ વિકલ્પોની ઉપર પ્રદર્શિત થતી હોવાને કારણે, સેટિંગ્સ તમારી ક્રિયાનો પ્રતિભાવ આપી શકતી નથી."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> ને ચાલુ કરવું ડેટા ઇન્ક્રિપ્શન પર અસર કરતું હોવાને કારણે, તમારે તમારી પેટર્નની પુષ્ટિ કરવાની જરૂર છે."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"સૂચનાઓ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"વિગતવાર"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"કાર્યની સૂચનાઓ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"આઇકનના બૅજને મંજૂરી આપો"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"લાઇટ ઝબકવી"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"લૉક સ્ક્રીન પર"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"તમામ સૂચના સામગ્રી બતાવો"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"મધ્યમ"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ઉચ્ચ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"તાત્કાલિક"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ધ્વનિની મંજૂરી આપો"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ધ્વનિની મંજૂરી આપો"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"વર્તમાન સ્ક્રીન પર દૃશ્યમાં આ સૂચનાઓને અવાજ કરવા, વાઇબ્રેટ કરવા કે ઝબકારારૂપે દેખાવા દેશો નહીં."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"સૂચના સહાયક"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"સૂચના ઍક્સેસ"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ચિત્ર-માં-ચિત્ર"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ચિત્રમાં-ચિત્રને મંજૂરી આપો"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"આ ઍપ્લિકેશનને જ્યારે ઍપ્લિકેશન ખુલ્લી હોય અથવા તમે તેને છોડી દીધી હોય (ઉદાહરણ તરીકે, વિડિઓ જોવા માટે), ત્યારે ચિત્રમાં-ચિત્ર વિંડો બનાવવાની મંજૂરી આપો. આ વિંડો તમે ઉપયોગમાં લો છો તે અન્ય ઍપ્લિકેશનોની ટોચે પ્રદર્શિત થાય છે."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"હા"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ના"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"ખલેલ પાડશો નહીં ઍક્સેસ કરો"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"કોઇ ઇન્સ્ટોલ કરેલ એપ્લિકેશન્સએ ખલેલ પાડશો નહીં ઍક્સેસ કરવાની વિનંતી કરી નથી"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"ઍપ્લિકેશનો લોડ કરી રહ્યું છે..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"આ સૂચનાઓ ક્યારેય બતાવશો નહીં"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"સૂચનાઓ બતાવો"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"સૂચનાઓ ક્યારેય શૅડમાં અથવા પેરિફેરલ ઉપકરણો પર બતાવશો નહીં"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"બૅજ ઍપ્લિકેશન આઇકન"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"હોમ ઍપ્લિકેશન પર બૅજ તરીકે સૂચનાઓ બતાવો, જો સમર્થિત હોય."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"આઇકન બૅજની મંજૂરી આપો"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ખલેલ પાડશો નહીં ને ઓવરરાઇડ કરો"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"જયારે ખલેલ પાડશો નહીં ને માત્ર પ્રાધાન્યતા પર સેટ કરેલું હોય ત્યારે આ સૂચનાઓને દખલગીરી કરવા દો"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"લૉક સ્ક્રીન પર"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"અન્ય ઍપ્સની ટોચે પ્રદર્શિત કરો"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g>માંથી <xliff:g id="COUNT_0">%1$d</xliff:g> ઍપ્સને અન્ય ઍપ્સની ટોચે પ્રદર્શિત થવાની મંજૂરી છે"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"પરવાનગી સાથેની ઍપ્લિકેશનો"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"હા"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"નહીં"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"અજાણી ઍપ્લિકેશનો ઇન્સ્ટૉલ કરો"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ઍપ્લિકેશનો ઇન્સ્ટૉલ કરો અજાણ્યા સ્રોતો"</string>
     <string name="write_settings" msgid="4797457275727195681">"સિસ્ટમ સેટિંગ્સ સંશોધિત કરો"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ઍપ્લિકેશન સિસ્ટમ સેટિંગ્સ સંશોધિત કરવાની પરવાનગી"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"સિસ્ટમ સેટિંગ્સ સંશોધિત કરવાને મંજૂરી આપો"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"આ પરવાનગી એપ્લિકેશનને સિસ્ટમ સેટિંગ્સ સંશોધિત કરવાની મંજૂરી આપે છે."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"હા"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"નહીં"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"મંજૂરી છે"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"મંજૂરી નથી"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"આ સ્ત્રોત તરફથી હોય તો મંજૂરી આપો"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"કૅમેરા માટે બે વાર મરડો"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"તમારા કાંડાને બે વાર મરડીને કૅમેરા ઍપ્લિકેશન ખોલો"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"દર મહિને <xliff:g id="ID_1">%1$s</xliff:g> તારીખે"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"નેટવર્ક નિયંત્રણો"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> પ્રતિબંધ</item>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index cfd28a1..8a2f33c 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"अच्छा"</item>
     <item msgid="8986346415847956850">"बेहतरीन"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"हमेशा"</item>
-    <item msgid="844721238536786870">"केवल प्‍लग इन करने पर"</item>
-    <item msgid="1986753720941888596">"कभी नहीं"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"हमेशा"</item>
-    <item msgid="7433294150916905997">"केवल प्‍लग इन करने पर"</item>
-    <item msgid="1390404486722375028">"कभी नहीं"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"पिछले 30 दिन"</item>
     <item msgid="6600989128423965319">"उपयोग चक्र सेट करें..."</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index 4a80e7b..deb52ce 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"अब आप डेवलपर बन गए हैं!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"आवश्यकता नहीं, आप पहले से ही डेवलपर हैं."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"डिस्‍कनेक्‍ट करें?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"इससे &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt; के साथ आपका कनेक्‍शन समाप्त हो जाएगा"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"आपको ब्लूटूथ सेटिंग में बदलाव करने की अनुमति नहीं है."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ब्लूटूथ सेटिंग खुली होने पर <xliff:g id="DEVICE_NAME">%1$s</xliff:g> आस-पास के डिवाइसों को दिखाई देता है."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ब्लूटूथ MAC पता: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> को डिसकनेक्ट करें?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"प्रसारण"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"प्रोफ़ाइल अक्षम करें?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s आपके संदेशों को एक्सेस करना चाहता है. %2$s पर एक्सेस दें?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM ऐक्सेस के लिए अनुरोध"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपके SIM कार्ड को ऐक्सेस करना चाहता है. SIM कार्ड की ऐक्सेस देने से कनेक्शन की अवधि तक आपके डिवाइस पर डेटा कनेक्टिविटी अक्षम हो जाएगी. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> को ऐक्सेस दें"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"दूसरे डिवाइस को <xliff:g id="DEVICE_NAME">^1</xliff:g> के रूप में दिखाई देता है"</string>
     <string name="date_and_time" msgid="9062980487860757694">"दिनांक और समय"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"समय क्षेत्र चुनें"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"सक्रिय करने के लिए उठाएं"</string>
     <string name="doze_title" msgid="2259176504273878294">"परिवेशी प्रदर्शन"</string>
     <string name="doze_summary" msgid="3846219936142814032">"आपको नोटिफ़िकेशन मिलने पर स्‍क्रीन सक्रिय करें"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"हमेशा चालू"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"समय, नोटिफ़िकेशन आइकन और दूसरी जानकारी दिखाती है"</string>
     <string name="title_font_size" msgid="4405544325522105222">"अक्षरों का आकार"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"लेख को छोटा या बड़ा करें"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"सिम कार्ड लॉक सेटिंग"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> का उपयोग करें?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> के लिए यह आवश्यक है:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"चूंकि एक ऐप अनुमति के अनुरोध को अस्पष्ट बना रहा है, इसलिए सेटिंग आपके प्रतिसाद को सत्यापित नहीं कर पा रही हैं."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"चूंकि दूसरा ऐप्लिकेशन इन विकल्पों के ऊपर दिखाई दे रहा है, इसलिए सेटिंग आपकी कार्रवाई का जवाब नहीं दे सकती हैं."</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="enable_service_pattern_reason" msgid="777577618063306751">"क्‍योंकि <xliff:g id="SERVICE">%1$s</xliff:g> को चालू करने से डेटा एेन्‍क्रिप्‍शन प्रभावित होता है, इसलिए आपको अपने पैटर्न की पुष्‍टि करनी होगी."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"नोटिफ़िकेशन"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"उन्नत"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"कार्य नोटिफ़िकेशन"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"आइकन बैज की अनुमति दें"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ब्लिंक लाइट"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"लॉक स्क्रीन पर"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सभी नोटिफ़िकेशन सामग्री दिखाएं"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"मध्यम"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"उच्च"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"बहुत ज़रूरी"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ध्वनि की अनुमति दें"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ध्वनि की अनुमति दें"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"वर्तमान स्क्रीन पर इन नोटिफिकेशन के लिए ना तो ध्वनि करें, ना कंपन करें और ना ही झलक दिखाएं."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"नोटिफिकेशन सहायक"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"एक्सेस नोटिफ़िकेशन"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"तस्वीर-में-तस्वीर"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"तस्वीर-में-तस्वीर की अनुमति दें"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"इस ऐप्लिकेशन के खुले होने पर या आप उसे छोड़ दें, उसके बाद (उदाहरण के लिए, कोई वीडियो देखते रहने के लिए), उसे एक तस्वीर-में-तस्वीर विंडो बनाने दें. यह विंडो उन दूसरे ऐप्लिकेशन के ऊपर दिखाई देती है जिनका आप उपयोग कर रहे हैं."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"हां"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"नहीं"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"परेशान ना करें एक्सेस"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"इंस्टॉल किए गए किसी भी ऐप द्वारा परेशान ना करें ऐक्सेस का अनुरोध नहीं किया है"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"ऐप्स लोड हो रहे हैं..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ये नोटिफिकेशन कभी ना दिखाएं"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"नोटिफ़िकेशन दिखाएं"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"नोटिफ़िकेशन कभी भी शेड में या पेरिफ़ेरल डिवाइस पर ना दिखाएं"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"बैज ऐप्लिकेशन आइकन"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"यदि समर्थित हो, तो नोटिफ़िकेशन को होम ऐप्लिकेशन पर बैज के रूप में दिखाएं."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"आइकन बैज की अनुमति दें"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"परेशान ना करें को ओवरराइड करें"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"जब परेशान ना करें को केवल प्राथमिकता पर सेट किया गया हो, तब इन नोटिफिकेशन को बाधित करते रहने दें"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"लॉक स्क्रीन पर"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"दूसरे ऐप्स पर प्रदर्शित करें"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> में से <xliff:g id="COUNT_0">%1$d</xliff:g> ऐप्स को दूसरे ऐप्स पर प्रदर्शित होने की अनुमति है"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"अनुमति वाले ऐप्‍स"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"हां"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"नहीं"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"अनजान ऐप्लिकेशन इंस्टॉल करें"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"अनजान स्रोतों से आने वाले ऐप्लिकेशन इंस्टॉल करें"</string>
     <string name="write_settings" msgid="4797457275727195681">"सिस्‍टम सेटिंग बदलें"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ऐप को सिस्‍टम सेटिंग बदलने की अनुमति"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"सिस्टम सेटिंग को बदलने की अनुमति दें"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"यह अनुमति किसी ऐप को सिस्टम सेटिंग बदलने देती है."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"हां"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"नहीं"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"अनुमति है"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"अनुमति नहीं है"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"इस स्रोत से अनुमति दें"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"कैमरे के लिए दो बार मोड़ना"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"अपनी कलाई को दो बार मोड़कर कैमरा ऐप खोलें"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"<xliff:g id="ID_1">%1$s</xliff:g> को मासिक"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"नेटवर्क प्रतिबंध"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> प्रतिबंध</item>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index bf780f1..bcb125d 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobra"</item>
     <item msgid="8986346415847956850">"Izvrsna"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Uvijek"</item>
-    <item msgid="844721238536786870">"Samo kad je uključeno"</item>
-    <item msgid="1986753720941888596">"Nikad"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Uvijek"</item>
-    <item msgid="7433294150916905997">"Samo kad je priključen na napajanje"</item>
-    <item msgid="1390404486722375028">"Nikad"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Posljednjih 30 dana"</item>
     <item msgid="6600989128423965319">"Postavi ciklus uporabe..."</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index a4d51c1..bdce1b6 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -31,6 +31,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Sad ste razvojni programer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nema potrebe, već ste razvojni programer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bežično povezivanje i mreže"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Veze"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Uređaj"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Isključiti?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"To će prekinuti vašu vezu s uređajem:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nemate dopuštenje za promjenu postavki Bluetootha."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> vidljiv je uređajima u blizini dok su postavke Bluetootha otvorene."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC adresa za Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Želite li prekinuti vezu s uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Emitiranje"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Onemogućiti profil?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s želi pristupiti vašim porukama. Želite li dati pristup korisniku %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Zahtjev za pristup SIM-u"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi pristupiti SIM kartici. Dopuštanjem pristupa SIM kartici onemogućit će se podatkovna veza na uređaju za vrijeme povezanosti. Dopustite pristup uređaju <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Drugim uređajima vidljiv kao <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum i vrijeme"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Odabir vremenske zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1033,6 +1039,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Aktivacija podizanjem"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambijentalni zaslon"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Aktiviraj zaslon kada stigne obavijest"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Uvijek uključeno"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Prikazivanje vremena, ikona obavijesti i drugih informacija"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Veličina fonta"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Smanjite ili povećajte tekst"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Postavke zaklj. SIM kartice"</string>
@@ -1879,8 +1887,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Želite li upotrijebiti uslugu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> treba sljedeće:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Budući da aplikacija prekriva zahtjev za dopuštenje, Postavke ne mogu potvrditi vaš odgovor."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Neka druga aplikacija prikazuje se iznad tih opcija, pa Postavke ne mogu reagirati na vašu radnju."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ako uključite <xliff:g id="SERVICE">%1$s</xliff:g>, vaš uređaj neće upotrebljavati PIN ili zaporku za zaključavanje zaslona za bolje šifriranje podataka."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Budući da ste uključili uslugu pristupačnosti, vaš uređaj neće upotrebljavati PIN ili zaporku za zaključavanje zaslona za bolje šifriranje podataka."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Budući da uključivanje usluge <xliff:g id="SERVICE">%1$s</xliff:g> utječe na enkripciju podataka, morate potvrditi uzorak."</string>
@@ -2816,6 +2823,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Obavijesti"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Napredno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obavijesti s radnog profila"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Dopusti značke ikona"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Trepereće svjetlo"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na zaključanom zaslonu"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Prikaži sav sadržaj obavijesti"</string>
@@ -2841,7 +2849,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Srednja"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Visoka"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Hitna"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Dopusti zvuk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Dopusti zvuk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Nemoj emitirati zvuk, vibrirati niti prikazivati obavijesti na trenutačnom zaslonu."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Pomoćnik za obavijesti"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Pristup obavijestima"</string>
@@ -2871,8 +2879,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Slika u slici"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Dopusti sliku u slici"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Omogućite da ova aplikacija stvori prozor sa slikom u slici dok je otvorena ili kad izađete iz nje (npr. da biste nastavili gledati videozapis). Taj se prozor prikazuje iznad drugih aplikacija koje upotrebljavate."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Da"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Pristup opciji Ne ometaj"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nijedna instalirana aplikacija nije zatražila pristup opciji Ne ometaj"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Učitavanje aplikacija..."</string>
@@ -2900,8 +2906,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nikad ne prikazuj te obavijesti"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Prikaži obavijesti"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nikad ne prikazuj obavijesti na zaslonu obavijesti ili na perifernim uređajima"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Postavite ikonu aplikacije kao značku"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Prikaži obavijesti u obliku znački u aplikaciji Home ako je to podržano."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Dopusti značku ikone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Nadjačaj Ne ometaj"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Neka te obavijesti nastave prekidati kada je način Ne ometaj postavljen na Samo prioritetno"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na zaključanom zaslonu"</string>
@@ -3236,8 +3241,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Prikaz iznad drugih aplikacija"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Broj aplikacija koje se mogu prikazivati iznad drugih: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije s dopuštenjem"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalacija nepoznatih aplikacija"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalacija aplikacije nepoznati izvori"</string>
     <string name="write_settings" msgid="4797457275727195681">"Izmjena postavki sustava"</string>
@@ -3250,10 +3257,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Dopuštenje aplikacije za izmjenu postavki sustava"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Dopusti izmjenu postavki sustava"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"To dopuštenje omogućuje aplikaciji izmjenu postavki sustava."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Da"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dopušteno"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nije dopušteno"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Dopusti iz ovog izvora"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dvostruko obrtanje za fotoaparat"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Otvaranje aplikacije fotoaparata obrtanjem ručnog zgloba dvaput"</string>
@@ -3349,8 +3352,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Upozori na potrošnju podataka na <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Upozorenje o potrošnji podataka za <xliff:g id="ID_1">%1$s</xliff:g>/Podaci su ograničeni na <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciklus naplate"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Svaki mjesec na <xliff:g id="ID_1">%1$s</xliff:g>. dan"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Mrežna ograničenja"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ograničenje</item>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 46f9234..6034bac 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Jó"</item>
     <item msgid="8986346415847956850">"Kiváló"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Mindig"</item>
-    <item msgid="844721238536786870">"Csak ha töltőn van"</item>
-    <item msgid="1986753720941888596">"Soha"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Mindig"</item>
-    <item msgid="7433294150916905997">"Csak ha töltőn van"</item>
-    <item msgid="1390404486722375028">"Soha"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Legutóbbi 30 nap"</item>
     <item msgid="6600989128423965319">"Ciklus beállítása…"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index a127fdc..c51d493 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Ön mostantól már fejlesztő!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nincs rá szükség, Ön már fejlesztő."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Vezeték nélküli és egyéb hálózatok"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Kapcsolatok"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Eszköz"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Leválasztja?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Ezzel befejezi a kapcsolatot a következővel:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nincs engedélye a Bluetooth-beállítások módosítására."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"A(z) <xliff:g id="DEVICE_NAME">%1$s</xliff:g> látható a közeli eszközök számára, ha a Bluetooth-beállítások nyitva vannak."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC-címe: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Leválasztja a következőt: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Sugárzás"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profil tiltása?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"A(z) %1$s hozzáférést kér üzeneteihez. Biztosítja a(z) %2$s számára a hozzáférést?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM-hozzáférési kérelem"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"A következő eszköz szeretne hozzáférni az Ön SIM kártyájához: <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>. A hozzáférés megadásával letiltja eszközén az adatkapcsolatot a csatlakozás idejére. Hozzáférés megadása a következőnek: <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"A többi eszköz számára a következő néven jelenik meg: <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Dátum és idő"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Válasszon időzónát"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Felébresztéshez emelje meg"</string>
     <string name="doze_title" msgid="2259176504273878294">"Környezeti kijelző"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Képernyő felébresztése értesítés érkezésekor"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Mindig bekapcsolva"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Az idő, az értesítési ikonok és egyéb információk megjelenítése"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Betűméret"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Szöveg nagyítása és kicsinyítése"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM-kártya lezárási beállításai"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Használja a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatást?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"A(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatásnak a következőkre van szüksége:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Mivel az egyik alkalmazás zavar egy engedélykérelmet, a Beállítások funkció nem tudja ellenőrizni az Ön válaszát."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Mivel egy másik alkalmazás jelenik meg a beállítások felett, a Beállítások alkalmazás nem tud válaszolni a műveletre."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ha engedélyezi a(z) <xliff:g id="SERVICE">%1$s</xliff:g> szolgáltatást, az eszköz nem fogja használni a képernyőzárat az adattitkosítás növelése érdekében."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Mivel engedélyezett egy kisegítő szolgáltatást, az eszköz nem fogja használni a képernyőzárat az adattitkosítás növelése érdekében."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Mivel a(z) <xliff:g id="SERVICE">%1$s</xliff:g> bekapcsolása hatással van az adatok titkosítására, meg kell erősítenie mintáját."</string>
@@ -2790,6 +2797,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Értesítések"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Speciális"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Munkahelyi profil értesítései"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Ikonjelvények engedélyezése"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Villogó fény"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"A lezárási képernyőn"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Az összes értesítés jelenjen meg"</string>
@@ -2815,7 +2823,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Közepes"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Magas"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Sürgős"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Hang engedélyezése"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Hang engedélyezése"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ne legyen hangjelzés vagy rezgés, illetve az értesítések ne jelenjenek meg rövid időre sem az aktuális képernyőn."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Értesítési segéd"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Hozzáférés értesítésekhez"</string>
@@ -2844,8 +2852,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Kép a képben"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Kép a képben funkció engedélyezése"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Annak engedélyezése, hogy ez az alkalmazás kép a képben ablakot hozzon létre, miközben meg van nyitva, vagy miután Ön kilépett (például azért, hogy tovább nézzen egy videót). Az említett ablak az Ön által használt többi alkalmazás fölött jelenik majd meg."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Igen"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nem"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"„Ne zavarjanak” elérés"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Egy telepített alkalmazás sem kért „Ne zavarjanak” elérést"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Alkalmazások betöltése…"</string>
@@ -2871,8 +2877,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Soha ne jelenjenek meg ezek az értesítések"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Értesítések megjelenítése"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Soha ne jelenjen meg értesítés az értesítési felületen és a perifériás eszközökön"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Jelvény-alkalmazásikon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Értesítések megjelenítése jelvényként a kezdőalkalmazásban, ha támogatott."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Ikonjelvény engedélyezése"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"A Ne zavarjanak mód felülbírálása"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"A Ne zavarjanak mód „Csak prioritásos” beállítása esetén ezek az értesítések továbbra is zavarhatnak"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"A lezárási képernyőn"</string>
@@ -3199,8 +3204,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"A többi alkalmazás fölött"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"A(z) <xliff:g id="COUNT_1">%2$d</xliff:g> alkalmazásból <xliff:g id="COUNT_0">%1$d</xliff:g> jelenhet meg más alkalmazások fölött"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Engedéllyel rendelkező alkalmazások"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Igen"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nem"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Ismeretlen alkalmazások telepítése"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"alkalmazások telepítése ismeretlen források"</string>
     <string name="write_settings" msgid="4797457275727195681">"Rendszerbeállítások módosítása"</string>
@@ -3213,10 +3220,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Alkalmazásengedély rendszerbeállítások módosítására"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Rendszerbeállítások módosításának engedélyezése"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Ez az engedély lehetővé teszi az alkalmazás számára a rendszerbeállítások módosítását."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Igen"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nem"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Engedélyezett"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nem engedélyezett"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Engedélyezés ebből a forrásból"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"A kamera eléréshez forgassa kétszer a csuklóját"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Nyissa meg a Fényképezőgép alkalmazást kétszeri csuklófordítással"</string>
@@ -3311,8 +3314,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> adatforgalmi figyelmeztetés"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> – adatforgalmi figyelmeztetés / <xliff:g id="ID_2">%2$s</xliff:g> – adatforgalom korlátozása"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Számlázási ciklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Minden hónap <xliff:g id="ID_1">%1$s</xliff:g>. napján"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Hálózati korlátozások"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> korlátozás</item>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index e774cf8..ae3c28b 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Լավ"</item>
     <item msgid="8986346415847956850">"Հիանալի"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Միշտ"</item>
-    <item msgid="844721238536786870">"Միայն երբ միացված է"</item>
-    <item msgid="1986753720941888596">"Երբեք"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Միշտ"</item>
-    <item msgid="7433294150916905997">"Միայն երբ միացված է"</item>
-    <item msgid="1390404486722375028">"Երբեք"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Վերջին 30 օրում"</item>
     <item msgid="6600989128423965319">"Սահմանել օգտագործման ցիկլը..."</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 74e47f8..542f948 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Դուք արդեն ծրագրավորո՛ղ եք:"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Կարիք չկա, դուք արդեն իսկ ծրագրավորող եք:"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Անջատե՞լ"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Սա կավարտի կապը &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&amp;gt-ի հետ"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Դուք թույլտվություն չունեք փոխելու Bluetooth կարգավորումները:"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ը տեսանելի է մոտակա սարքերի համար, քանի դեռ Bluetooth-ի կարգավորումները բաց են:"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth-ի MAC հասցեն է՝ <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Անջատե՞լ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-ը:"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Հեռարձակում"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Կասեցնե՞լ պրոֆիլը:"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s-ը ցանկանում է մատչել ձեր հաղորդագրությունները: Մուտք տա՞լ %2$s-ին:"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM քարտից օգտվելու հարցում"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> սարքը ցանկանում է օգտվել ձեր SIM քարտի տվյալներից: Եթե թույլ տաք օգտվել SIM քարտից, տվյալների կապակցելիությունը կանջատվի սարքի վրա կապակցման ընթացքում: Թույլատրել <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> սարքին"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Այլ սարքերին տեսանելի է որպես <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Ամսաթիվ և ժամ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Ընտրել ժամային գոտին"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -333,7 +339,7 @@
     <string name="security_settings_title" msgid="4918904614964215087">"Անվտանգություն &amp; տեղադրություն"</string>
     <string name="encryption_and_credential_settings_title" msgid="6514904533438791561">"Գաղտնագրում և հավատարմագրեր"</string>
     <string name="encryption_and_credential_settings_summary" product="default" msgid="8721883002237981248">"Հեռախոսը գաղտնագրված է"</string>
-    <string name="encryption_and_credential_settings_summary" product="tablet" msgid="7200428573872395685">"Սարքը գաղտնագրվեց"</string>
+    <string name="encryption_and_credential_settings_summary" product="tablet" msgid="7200428573872395685">"Սարքը գաղտնագրված է"</string>
     <string name="lockscreen_settings_title" msgid="3922976395527087455">"Էկրանի կողպման կարգավորումներ"</string>
     <string name="security_settings_summary" msgid="967393342537986570">"Կարգավորել Իմ տեղադրությունը, էկրանի ապակողպումը, SIM քարտի կողպումը, վկայագրերի պահոցի կողպումը"</string>
     <string name="cdma_security_settings_summary" msgid="6068799952798901542">"Կարգավորել իմ տեղադրությունը, էկրանի ապակողպումը, հավատարմագրային պահոցի կողպումը"</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Բարձրացնել՝ միանալու համար"</string>
     <string name="doze_title" msgid="2259176504273878294">"Քնելու ռեժիմի արգելք"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ակտիվացնում է էկրանը ծանուցումներ ստանալու դեպքում"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Միշտ միացված է"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Ցուցադրել ժամանակը, ծանուցումների պատկերակները և այլ տեղեկություններ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Տառաչափ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Տառաչափի մեծացում կամ փոքրացում"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM քարտի կողպման կարգավորումներ"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Օգտագործե՞լ <xliff:g id="SERVICE">%1$s</xliff:g>-ը"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>-ին անհրաժեշտ է`"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Քանի որ ներածումն արգելափակված է ինչ-որ հավելվածի կողմից, Կարգավորումները չեն կարող հաստատել ձեր պատասխանը:"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Քանի որ այս ընտրանքների վրա ցուցադրվում է մեկ այլ հավելված, Կարգավորումները չեն կարող արձագանքել ձեր գործողությանը:"</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="enable_service_pattern_reason" msgid="777577618063306751">"Քանի որ <xliff:g id="SERVICE">%1$s</xliff:g> ծառայության միացումն ազդում է տվյալների կոդավորմանը, դուք պետք է հաստատեք ձեր ապակողպման նախշը:"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Ծանուցումներ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Լրացուցիչ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Աշխատանքային ծանուցումներ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Թույլատրել պատկերակների նշանակները"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Թարթող լույս"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Կողպէկրանին"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Ցուցադրել ամբողջ ծանուցումը"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Միջին"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Բարձր"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Շտապ"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Թույլատրել ձայնը"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Թույլատրել ձայնը"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ձայնային ազդանշան չհնչեցնել, չթրթռալ և ընթացիկ էկրանին այս ծանուցումները չցուցադրել:"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Ծանուցումների օգնական"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Ծանուցումների օգտագործում"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Նկարը նկարի մեջ"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Թույլատրել «նկարը նկարի մեջ» ռեժիմը"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Թույլ տալ այս հավելվածին ստեղծել «նկարը նկարի մեջ» պատուհան՝ երբ հավելվածը բաց է կամ այն լքելուց հետո (օրինակ՝ տեսանյութի դիտումը շարունակելու համար): Այս պատուհանը ցուցադրվում է ձեր կողմից օգտագործվող այլ հավելվածների վերևում:"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Այո"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ոչ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Հասանելիությունը՝ «չանհանգստացնել»"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Տեղադրված հավելվածներից ոչ մեկը Չանհանգստացնել հարցում չի ուղարկել"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Ծրագրերը բեռնվում են..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Երբեք չցուցադրել այս ծանուցումները"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Ցուցադրել ծանուցումները"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Երբեք չցուցադրել ծանուցումները ստվերում կամ արտաքին սարքերի վրա"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Նշանակի հավելվածի պատկերակ"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Հնարավորության դեպքում ծանուցումները Հիմնական հավելվածում ցուցադրել նշանակների տեսքով:"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Թույլատրել պատկերակի նշանակը"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Վրագրել «Չանհանգստացնել» պարամետրը"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Թույլ տալ այս ծանուցումների կողմից ընդհատումները, երբ «Չանհանգստացնել» պարամետրի համար նշանակված է «Միայն կարևորները» արժեքը"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Կողպէկրանին"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Ցույց տալ այլ հավելվածների վրա"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g>-ից <xliff:g id="COUNT_0">%1$d</xliff:g> հավելվածներ կարող են ցուցադրվել այլ հավելվածների վրա"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Թույլտվություն ունեցող հավելվածներ"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Այո"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ոչ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Անհայտ հավելվածների տեղադրում"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"տեղադրել հավելվածներ անհայտ աղբյուրներից"</string>
     <string name="write_settings" msgid="4797457275727195681">"Փոփոխել կարգավորումները"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Թույլատրել հավելվածին փոփոխել կարգավորումները"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Թույլատրել կարգավորումների փոփոխումը"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Միացնելով այս թույլտվությունը՝ թույլ եք տալիս հավելվածին փոփոխել համակարգի կարգավորումները:"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Այո"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ոչ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Թույլատրված է"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Արգելված է"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Թույլ տալ այս աղբյուրից"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Տեսախցիկի բացում կրկնակի պտտման միջոցով"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Տեսախցիկի բացում դաստակի կրկնակի պտտման միջոցով"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Ամեն ամիս, ամսի <xliff:g id="ID_1">%1$s</xliff:g>-ին"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Ցանցային սահմանափակումներ"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrictions</item>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index ab5e779..83a4f10 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Baik"</item>
     <item msgid="8986346415847956850">"Sangat bagus"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Selalu"</item>
-    <item msgid="844721238536786870">"Hanya ketika terhubung ke sumber daya"</item>
-    <item msgid="1986753720941888596">"Tidak pernah"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Selalu"</item>
-    <item msgid="7433294150916905997">"Hanya saat trhbng ke smbr daya"</item>
-    <item msgid="1390404486722375028">"Tidak pernah"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 hari terakhir"</item>
     <item msgid="6600989128423965319">"Setel alur penggunaan..."</item>
@@ -171,12 +161,12 @@
     <item msgid="2318274046749286642">"PWD"</item>
   </string-array>
   <string-array name="wifi_peap_phase2_entries">
-    <item msgid="2577747762745812488">"Tidak Ada"</item>
+    <item msgid="2577747762745812488">"Tidak ada"</item>
     <item msgid="937786527870979616">"MSCHAPV2"</item>
     <item msgid="5302613883318643629">"GTC"</item>
   </string-array>
   <string-array name="wifi_peap_phase2_entries_with_sim_auth">
-    <item msgid="5760470455461128892">"Tidak Ada"</item>
+    <item msgid="5760470455461128892">"Tidak ada"</item>
     <item msgid="7480272092408291086">"MSCHAPV2"</item>
     <item msgid="5881794903338319324">"GTC"</item>
     <item msgid="5610607665198791980">"SIM"</item>
@@ -195,7 +185,7 @@
     <item msgid="628395202971532382">"Statik"</item>
   </string-array>
   <string-array name="wifi_proxy_settings">
-    <item msgid="4473276491748503377">"Tidak Ada"</item>
+    <item msgid="4473276491748503377">"Tidak ada"</item>
     <item msgid="8673874894887358090">"Manual"</item>
     <item msgid="168893341855953140">"Auto Konfigurasi Proxy"</item>
   </string-array>
@@ -325,7 +315,7 @@
     <item msgid="6093344633066170692">"Membaca kalender"</item>
     <item msgid="1334886368750347692">"Ubah kalender"</item>
     <item msgid="1638204101698708656">"Lokasi"</item>
-    <item msgid="2154671955760380322">"Notifikasi pos"</item>
+    <item msgid="2154671955760380322">"Notifikasi postingan"</item>
     <item msgid="4282477730595931828">"Lokasi"</item>
     <item msgid="4891423912898525905">"Telepon"</item>
     <item msgid="2623604824935968113">"Baca SMS/MMS"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index d122785..2ccae1f 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Sekarang Anda adalah seorang pengembang!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Tidak perlu, Anda sudah menjadi pengembang."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Jaringan &amp; nirkabel"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Sambungan"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Perangkat"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Putuskan sambungan?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Ini akan mengakhiri sambungan Anda dengan:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Anda tidak memiliki izin untuk mengubah setelan Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> dapat dilihat oleh perangkat lain di sekitar saat Setelan Bluetooth dibuka."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Alamat MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Putuskan sambungan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Penyiaran"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Nonaktifkan profil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ingin mengakses pesan Anda. Berikan akses pada %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Permintaan akses SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ingin mengakses kartu SIM. Memberi akses ke kartu SIM akan menonaktifkan konektivitas data di perangkat selama tersambung. Berikan akses ke <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Terlihat sebagai <xliff:g id="DEVICE_NAME">^1</xliff:g> oleh perangkat lain"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Tanggal &amp; waktu"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Pilih zona waktu"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -674,7 +680,7 @@
     <string name="android_beam_off_summary" msgid="4663095428454779138">"Mati"</string>
     <string name="android_beam_disabled_summary" msgid="1737782116894793393">"Tidak tersedia karena NFC dimatikan"</string>
     <string name="android_beam_label" msgid="6257036050366775040">"Android Beam"</string>
-    <string name="android_beam_explained" msgid="1810540319385192758">"Jika fitur ini dinonaktifkan, Anda dapat melakukan beam konten aplikasi ke perangkat lain yang mendukung NFC dengan menempelkan perangkat. Misalnya, Anda dapat melakukan beam laman web, video YouTube, kontak, dan lainnya.\n\nCukup tempelkan perangkat (biasanya saling membelakangi), lalu tap layar. Aplikasi menentukan konten yang di-beam."</string>
+    <string name="android_beam_explained" msgid="1810540319385192758">"Jika fitur ini diaktifkan, Anda dapat membagikan konten aplikasi lewat beaming ke perangkat lain yang mendukung NFC, yaitu dengan saling menempelkan perangkat. Anda dapat membagikan halaman web, video YouTube, kontak, dan lainnya.\n\nCukup tempelkan perangkat (biasanya saling membelakangi), lalu tap layar. Konten yang dibagikan secara beaming bergantung pada aplikasi."</string>
     <string name="wifi_quick_toggle_title" msgid="8850161330437693895">"Wi‑Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="2696547080481267642">"Nyalakan Wi-Fi"</string>
     <string name="wifi_settings" msgid="29722149822540994">"Wi‑Fi"</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Angkat untuk membangunkan"</string>
     <string name="doze_title" msgid="2259176504273878294">"Tampilan ruangan"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Membangunkan layar saat Anda menerima notifikasi"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Selalu aktif"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Tampilkan waktu, ikon notifikasi, dan info lainnya"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Ukuran font"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Membuat teks menjadi lebih besar atau lebih kecil"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Setelan kunci kartu SIM"</string>
@@ -1166,9 +1174,9 @@
     <string name="usb_mtp_title" msgid="3399663424394065964">"Perangkat media (MTP)"</string>
     <string name="usb_mtp_summary" msgid="4617321473211391236">"Memungkinkan Anda mentransfer file media di Windows, atau menggunakan Transfer File Android di Mac (lihat www.android.com/filetransfer)"</string>
     <string name="usb_ptp_title" msgid="3852760810622389620">"Kamera (PTP)"</string>
-    <string name="usb_ptp_summary" msgid="7406889433172511530">"Memungkinkan Anda mentransfer foto menggunakan perangkat lunak kamera, dan mentransfer file apa pun di komputer yang tidak mendukung MTP"</string>
+    <string name="usb_ptp_summary" msgid="7406889433172511530">"Memungkinkan Anda mentransfer foto menggunakan software kamera, dan mentransfer file apa pun di komputer yang tidak mendukung MTP"</string>
     <string name="usb_midi_title" msgid="3069990264258413994">"MIDI"</string>
-    <string name="usb_midi_summary" msgid="539169474810956358">"Mengizinkan aplikasi dengan MIDI aktif bekerja melalui USB dengan perangkat lunak MIDI di komputer."</string>
+    <string name="usb_midi_summary" msgid="539169474810956358">"Mengizinkan aplikasi dengan MIDI aktif bekerja melalui USB dengan software MIDI di komputer."</string>
     <string name="storage_other_users" msgid="808708845102611856">"Pengguna lainnya"</string>
     <string name="storage_internal_title" msgid="690771193137801021">"Penyimpanan perangkat"</string>
     <string name="storage_external_title" msgid="3433462910096848696">"Penyimpanan portabel"</string>
@@ -1326,7 +1334,7 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="1576908608463904152">"Tidak dapat tethering atau menggunakan hotspot portabel saat Penghemat Data aktif"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"Tethering USB"</string>
-    <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB tersambung, periksa untuk menambatkan"</string>
+    <string name="usb_tethering_available_subtext" msgid="156779271296152605">"USB tersambung, aktifkan untuk tethering"</string>
     <string name="usb_tethering_active_subtext" msgid="8916210851136467042">"Tertambat"</string>
     <string name="usb_tethering_storage_active_subtext" msgid="8427089411146908205">"Tidak bisa menambatkan ketika penyimpanan USB sedang digunakan"</string>
     <string name="usb_tethering_unavailable_subtext" msgid="1044622421184007254">"USB tidak tersambung"</string>
@@ -1341,11 +1349,11 @@
     <string name="bluetooth_tethering_devices_connected_subtext" product="default" msgid="8268867745495039177">"Berbagi sambungan internet ponsel ke <xliff:g id="CONNECTEDDEVICECOUNT">%1$d</xliff:g> perangkat via Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="6326877798974938021">"Berbagi sambungan internet <xliff:g id="DEVICE_NAME">%1$d</xliff:g> ini via Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext" product="tablet" msgid="1889565070769307732">"Tak berbagi sambungan internet tablet via Bluetooth"</string>
-    <string name="bluetooth_tethering_off_subtext" product="default" msgid="1838503633450298902">"Tak berbagi sambungan internet ponsel via Bluetooth"</string>
+    <string name="bluetooth_tethering_off_subtext" product="default" msgid="1838503633450298902">"Tidak membagikan sambungan internet ponsel ini melalui Bluetooth"</string>
     <string name="bluetooth_tethering_errored_subtext" msgid="4926566308991142264">"Tidak ditambatkan"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2135590598511178690">"Tidak dapat menambatkan ke lebih dari <xliff:g id="MAXCONNECTION">%1$d</xliff:g> perangkat."</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas dari penambatan."</string>
-    <string name="tethering_footer_info" msgid="7287131664937054043">"Menggunakan hotspot dan tethering untuk memberikan internet ke perangkat lain melalui sambungan data seluler."</string>
+    <string name="tethering_footer_info" msgid="7287131664937054043">"Gunakan hotspot dan tethering untuk menyediakan koneksi internet bagi perangkat lain melalui sambungan data seluler Anda."</string>
     <string name="tethering_help_button_text" msgid="656117495547173630">"Bantuan"</string>
     <string name="network_settings_title" msgid="2876509814832830757">"Jaringan seluler"</string>
     <string name="manage_mobile_plan_title" msgid="7630170375010107744">"Paket seluler"</string>
@@ -1354,7 +1362,7 @@
     <string name="sms_change_default_dialog_text" msgid="1522783933230274787">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> dan bukan <xliff:g id="CURRENT_APP">%2$s</xliff:g> sebagai aplikasi SMS?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="602683880284921998">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> sebagai aplikasi SMS?"</string>
     <string name="network_scorer_picker_title" msgid="6383879578279046456">"Penyedia rating jaringan"</string>
-    <string name="network_scorer_picker_none_preference" msgid="9028375117241790936">"Tidak Ada"</string>
+    <string name="network_scorer_picker_none_preference" msgid="9028375117241790936">"Tidak ada"</string>
     <string name="network_scorer_change_active_dialog_title" msgid="3776301550387574975">"Ubah Wi-Fi Assistant?"</string>
     <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>
@@ -1401,7 +1409,7 @@
     <string name="about_settings" product="tablet" msgid="593457295516533765">"Tentang tablet"</string>
     <string name="about_settings" product="default" msgid="1743378368185371685">"Tentang ponsel"</string>
     <string name="about_settings" product="emulator" msgid="221313099578564438">"Tentang perangkat yang diemulasi"</string>
-    <string name="about_settings_summary" msgid="3371517697156165959">"Lihat info legal, status, versi perangkat lunak"</string>
+    <string name="about_settings_summary" msgid="3371517697156165959">"Lihat info legal, status, versi software"</string>
     <string name="legal_information" msgid="5769301644270604095">"Informasi hukum"</string>
     <string name="contributors_title" msgid="5917703088825286504">"Kontributor"</string>
     <string name="manual" msgid="3025943393642974445">"Manual"</string>
@@ -1521,13 +1529,13 @@
     <string name="data_size_label" msgid="6117971066063850416">"Data pengguna"</string>
     <string name="external_data_size_label" product="nosdcard" msgid="7533821466482000453">"Data penyimpanan USB"</string>
     <string name="external_data_size_label" product="default" msgid="626414192825329708">"Kartu SD"</string>
-    <string name="uninstall_text" msgid="3644892466144802466">"Copot pemasangan"</string>
-    <string name="uninstall_all_users_text" msgid="851857393177950340">"Copot pemasangan untuk semua pengguna"</string>
+    <string name="uninstall_text" msgid="3644892466144802466">"Uninstal"</string>
+    <string name="uninstall_all_users_text" msgid="851857393177950340">"Uninstal untuk semua pengguna"</string>
     <string name="install_text" msgid="884360662922471113">"Instal"</string>
     <string name="disable_text" msgid="6544054052049395202">"Nonaktifkan"</string>
     <string name="enable_text" msgid="9217362512327828987">"Aktifkan"</string>
     <string name="clear_user_data_text" msgid="5597622864770098388">"Hapus data"</string>
-    <string name="app_factory_reset" msgid="6635744722502563022">"Copot pemasangan pembaruan"</string>
+    <string name="app_factory_reset" msgid="6635744722502563022">"Uninstal pembaruan"</string>
     <string name="auto_launch_enable_text" msgid="4275746249511874845">"Anda telah memilih meluncurkan apl ini secara default untuk beberapa tindakan."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Anda telah memilih untuk mengizinkan aplikasi ini untuk membuat widget dan mengakses data mereka."</string>
     <string name="auto_launch_disable_text" msgid="7800385822185540166">"Tidak ada setelan default."</string>
@@ -1685,7 +1693,7 @@
     <string name="keyboard_and_input_methods_category" msgid="6035224122054465137">"Keyboard &amp; masukan"</string>
     <string name="virtual_keyboard_category" msgid="1012830752318677119">"Keyboard virtual"</string>
     <string name="available_virtual_keyboard_category" msgid="7645766574969139819">"Keyboard virtual yang tersedia"</string>
-    <string name="add_virtual_keyboard" msgid="3302152381456516928">"Mengelola keyboard"</string>
+    <string name="add_virtual_keyboard" msgid="3302152381456516928">"Kelola keyboard"</string>
     <string name="keyboard_assistance_category" msgid="5843634175231134014">"Bantuan keyboard"</string>
     <string name="physical_keyboard_title" msgid="8285149877925752042">"Keyboard fisik"</string>
     <string name="show_ime" msgid="2658582193437188227">"Tampilkan keyboard virtual"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Gunakan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Karena sebuah aplikasi menghalangi permintaan izin, Setelan tidak dapat memverifikasi tanggapan Anda."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Karena aplikasi lain muncul di atas opsi ini, Setelan tidak dapat merespons tindakan Anda."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Jika Anda mengaktifkan <xliff:g id="SERVICE">%1$s</xliff:g>, perangkat tidak akan menggunakan kunci layar untuk meningkatkan enkripsi data."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Karena Anda telah mengaktifkan layanan aksesibilitas, perangkat tidak akan menggunakan kunci layar untuk meningkatkan enkripsi data."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Karena mengaktifkan <xliff:g id="SERVICE">%1$s</xliff:g> memengaruhi enkripsi data, Anda perlu mengonfirmasi pola."</string>
@@ -2007,7 +2014,7 @@
     <string name="battery_sugg_bluetooth_basic" msgid="4565141162650835009">"Matikan Bluetooth ketika tidak digunakan"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="4071352514714259230">"Coba sambungkan ke perangkat Bluetooth lainnya"</string>
     <string name="battery_desc_apps" msgid="8530418792605735226">"Baterai digunakan oleh apl"</string>
-    <string name="battery_sugg_apps_info" msgid="6907588126789841231">"Hentikan atau copot pemasangan apl"</string>
+    <string name="battery_sugg_apps_info" msgid="6907588126789841231">"Hentikan atau uninstal apl"</string>
     <string name="battery_sugg_apps_gps" msgid="5959067516281866135">"Pilih mode hemat baterai"</string>
     <string name="battery_sugg_apps_settings" msgid="3974902365643634514">"Apl tersebut mungkin menawarkan setelan untuk mengurangi penggunaan baterai"</string>
     <string name="battery_desc_users" msgid="7682989161885027823">"Baterai yang digunakan oleh pengguna"</string>
@@ -2136,8 +2143,8 @@
     <string name="user_credentials_summary" msgid="7271228342106080167">"Meihat dan mengubah kredensial yang tersimpan"</string>
     <string name="advanced_security_title" msgid="2434776238010578865">"Lanjutan"</string>
     <string name="credential_storage_type" msgid="8629968543494001364">"Jenis penyimpanan"</string>
-    <string name="credential_storage_type_hardware" msgid="6077193544333904427">"Menggunakan perangkat keras"</string>
-    <string name="credential_storage_type_software" msgid="4403117271207715378">"Khusus perangkat lunak"</string>
+    <string name="credential_storage_type_hardware" msgid="6077193544333904427">"Menggunakan hardware"</string>
+    <string name="credential_storage_type_software" msgid="4403117271207715378">"Khusus software"</string>
     <string name="credentials_settings_not_available" msgid="7968275634486624215">"Kredensial tidak tersedia untuk pengguna ini"</string>
     <string name="credential_for_vpn_and_apps" msgid="4168197158768443365">"Dipasang untuk VPN dan aplikasi"</string>
     <string name="credential_for_wifi" msgid="6228425986551591864">"Dipasang untuk Wi-Fi"</string>
@@ -2174,7 +2181,7 @@
     <string name="device_admin_settings_title" msgid="4960761799560705902">"Setelan admin perangkat"</string>
     <string name="active_device_admin_msg" msgid="578748451637360192">"Aplikasi admin perangkat"</string>
     <string name="remove_device_admin" msgid="9207368982033308173">"Nonaktifkan aplikasi admin perangkat ini"</string>
-    <string name="uninstall_device_admin" msgid="271120195128542165">"Copot pemasangan aplikasi"</string>
+    <string name="uninstall_device_admin" msgid="271120195128542165">"Uninstal aplikasi"</string>
     <string name="remove_and_uninstall_device_admin" msgid="3837625952436169878">"Nonaktifkan &amp; uninstal"</string>
     <string name="select_device_admin_msg" msgid="7347389359013278077">"Aplikasi admin perangkat"</string>
     <string name="no_device_admins" msgid="4846602835339095768">"Tidak ada aplikasi admin yang tersedia"</string>
@@ -2368,7 +2375,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="7655851702771342507">"Jaringan berbayar diperlakukan seperti jaringan seluler jika data latar belakang dibatasi. Aplikasi mungkin memberi peringatan sebelum menggunakan jaringan ini saat melakukan download file berukuran besar."</string>
+    <string name="data_usage_metered_body" msgid="7655851702771342507">"Jaringan terukur diperlakukan seperti jaringan seluler jika data latar belakang dibatasi. Saat hendak melakukan download file berukuran besar menggunakan jaringan ini, aplikasi mungkin memberikan peringatan."</string>
     <string name="data_usage_metered_mobile" msgid="5423305619126978393">"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>
@@ -2437,7 +2444,7 @@
     <string name="vpn_lockdown_config_error" msgid="3898576754914217248">"VPN selalu aktif membutuhkan alamat IP baik untuk server serta DNS."</string>
     <string name="vpn_no_network" msgid="3050233675132726155">"Tidak ada sambungan jaringan. Coba lagi nanti."</string>
     <string name="vpn_disconnected" msgid="280531508768927471">"Terputus dari VPN"</string>
-    <string name="vpn_disconnected_summary" msgid="3082851661207900606">"Tidak Ada"</string>
+    <string name="vpn_disconnected_summary" msgid="3082851661207900606">"Tidak ada"</string>
     <string name="vpn_missing_cert" msgid="5357192202207234745">"Sertifikat tidak ditemukan. Coba edit profil."</string>
     <string name="trusted_credentials_system_tab" msgid="3984284264816924534">"Sistem"</string>
     <string name="trusted_credentials_user_tab" msgid="2244732111398939475">"Pengguna"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifikasi"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Lanjutan"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifikasi kerja"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Izinkan badge ikon"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Cahaya kedip"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Di layar kunci"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Menampilkan semua konten notifikasi"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Sedang"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Tinggi"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Penting"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Izinkan Suara"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Izinkan suara"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Jangan bersuara, bergetar, atau mengintip notifikasi tersebut untuk ditampilkan di layar saat ini."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asisten notifikasi"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Akses notifikasi"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Gambar-dalam-gambar"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Izinkan gambar-dalam-gambar"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Mengizinkan aplikasi ini membuat jendela gambar-dalam-gambar saat aplikasi terbuka atau setelah Anda membiarkannya terbuka (misalnya, untuk melanjutkan menonton video). Jendela ini ditampilkan di atas aplikasi lain yang sedang digunakan."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ya"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Tidak"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Akses Jangan Ganggu"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Tidak ada aplikasi terpasang yang meminta akses Jangan Ganggu"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Memuat aplikasi..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Jangan pernah tampilkan notifikasi ini"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Tampilkan notifikasi"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Jangan pernah tampilkan notifikasi di bayangan atau di perangkat periferal"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ikon aplikasi badge"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Tampilkan notifikasi sebagai badge di aplikasi Home, jika didukung."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Izinkan badge ikon"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ganti mode Jangan Ganggu"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Izinkan notifikasi ini terus mengganggu jika mode Jangan Ganggu disetel ke Hanya Prioritas"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Di layar kunci"</string>
@@ -2933,7 +2938,7 @@
     <string name="zen_mode_all_callers" msgid="584186167367236922">"Semua penelepon"</string>
     <string name="zen_mode_selected_callers" msgid="3127598874060615742">"Penelepon yang dipilih"</string>
     <string name="zen_mode_repeat_callers" msgid="5019521886428322131">"Penelepon berulang"</string>
-    <string name="zen_mode_repeat_callers_summary" msgid="7192713032364140137">"Jika orang yang sama menelepon untuk kedua kalinya dalam waktu <xliff:g id="MINUTES">%d</xliff:g> menit, izinkan"</string>
+    <string name="zen_mode_repeat_callers_summary" msgid="7192713032364140137">"Izinkan jika ada orang yang sama menelepon untuk kedua kalinya dalam waktu <xliff:g id="MINUTES">%d</xliff:g> menit"</string>
     <string name="zen_mode_when" msgid="2767193283311106373">"Otomatis aktif"</string>
     <string name="zen_mode_when_never" msgid="8809494351918405602">"Tidak pernah"</string>
     <string name="zen_mode_when_every_night" msgid="3122486110091921009">"Setiap malam"</string>
@@ -2955,7 +2960,7 @@
     <string name="zen_mode_screen_on" msgid="7712038508173845101">"Blokir saat layar aktif"</string>
     <string name="zen_mode_screen_on_summary" msgid="6444425984146305149">"Mencegah notifikasi yang dibisukan oleh mode Jangan Ganggu agar tidak diintip atau muncul di layar"</string>
     <string name="zen_mode_screen_off" msgid="5026854939192419879">"Blokir saat layar nonaktif"</string>
-    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"Mencegah notifikasi yang dibisukan oleh mode Jangan Ganggu agar tidak mengaktifkan layar atau lampu notifikasi tidak berkedip"</string>
+    <string name="zen_mode_screen_off_summary" msgid="6490932947651798094">"Mencegah notifikasi yang dibisukan oleh mode Jangan Ganggu agar tidak mengaktifkan layar atau mengedipkan lampu notifikasi"</string>
     <string name="zen_mode_screen_off_summary_no_led" msgid="3758698381956461866">"Mencegah notifikasi yang dibisukan oleh mode Jangan Ganggu agar tidak mengaktifkan layar"</string>
     <string name="zen_mode_all_visual_interruptions" msgid="2851308980832487411">"Nonaktif"</string>
     <string name="zen_mode_screen_on_visual_interruptions" msgid="7373348148129140528">"Saat layar aktif"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Tampilkan di atas aplikasi lain"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> dari <xliff:g id="COUNT_1">%2$d</xliff:g> aplikasi diizinkan untuk ditampilkan di atas aplikasi lain"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikasi yang memiliki izin"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ya"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Tidak"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instal aplikasi yang tidak dikenal"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instal aplikasi dari sumber yang tidak dikenal"</string>
     <string name="write_settings" msgid="4797457275727195681">"Ubah setelan sistem"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Izin mengubah setelan sistem aplikasi"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Izinkan mengubah setelan sistem"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Izin ini memungkinkan aplikasi mengubah setelan sistem."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ya"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Tidak"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Diizinkan"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Tidak diizinkan"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Izinkan dari sumber ini"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Putar dua kali untuk kamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Membuka aplikasi kamera dengan memutar pergelangan tangan dua kali"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Peringatan data <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Peringatan data <xliff:g id="ID_1">%1$s</xliff:g> / Batas data <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Siklus penagihan"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Bulanan pada tanggal <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Batasan jaringan"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> pembatasan</item>
@@ -3520,7 +3522,7 @@
     <string name="enterprise_privacy_network_logs" msgid="161722817268849590">"Log traffic jaringan terbaru"</string>
     <string name="enterprise_privacy_bug_reports" msgid="843225086779037863">"Laporan bug terbaru"</string>
     <string name="enterprise_privacy_security_logs" msgid="5377362481617301074">"Log keamanan terbaru"</string>
-    <string name="enterprise_privacy_none" msgid="7706621148858381189">"Tidak Ada"</string>
+    <string name="enterprise_privacy_none" msgid="7706621148858381189">"Tidak ada"</string>
     <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"Aplikasi diinstal"</string>
     <string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"Jumlah aplikasi merupakan hasil perkiraan. Hal ini tidak menyertakan aplikasi yang diinstal selain dari Play Store."</string>
     <plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index e42514d..5f69299 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Gott"</item>
     <item msgid="8986346415847956850">"Frábært"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Alltaf"</item>
-    <item msgid="844721238536786870">"Aðeins þegar tækið er í sambandi"</item>
-    <item msgid="1986753720941888596">"Aldrei"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Alltaf"</item>
-    <item msgid="7433294150916905997">"Aðeins þegar tækið er í sambandi"</item>
-    <item msgid="1390404486722375028">"Aldrei"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Síðustu 30 dagar"</item>
     <item msgid="6600989128423965319">"Velja notkunartímabil..."</item>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index ce2df59..a2c955c 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Nú ertu orðin(n) þróunaraðili!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Þetta er óþarfi; þú ert nú þegar þróunaraðili."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Þráðlaus net og símkerfi"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Tengingar"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Tæki"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Aftengja?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Þetta slítur tengingunni við:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Þú hefur ekki heimild til að breyta Bluetooth-stillingum."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> er sýnilegt nálægum tækjum á meðan Bluetooth-stillingar eru opnar."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC-vistfang: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Viltu aftengja <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Útsending"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Gera snið óvirkt?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s vill fá aðgang að skilaboðunum þínum. Viltu gefa %2$s aðgang?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Beiðni um aðgang að SIM-korti"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill fá aðgang að SIM-kortinu þínu. Ef þú veitir aðgang að SIM-kortinu er slökkt á gagnatengingu tækisins á meðan tengingin varir. Veita <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> aðgang"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Sýnilegt öðrum tækjum sem <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Dagsetning og tími"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Veldu tímabelti"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Lyfta til að vekja"</string>
     <string name="doze_title" msgid="2259176504273878294">"Umhverfisskjár"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Vekja skjáinn þegar þú færð tilkynningar"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Alltaf kveikt"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Sýna tíma, tilkynningartákn og aðrar upplýsingar"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Leturstærð"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Gera texta stærri eða minni"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Stillingar SIM-kortaláss"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Nota <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> þarf að:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Stillingar geta ekki staðfest svarið þitt vegna þess að forrit er að fela heimildarbeiðni."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Stillingar geta ekki brugðist við aðgerðinni því að annað forrit er birt yfir þessum valkostum."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ef þú kveikir á <xliff:g id="SERVICE">%1$s</xliff:g> mun tækið ekki nota skjálásinn til að efla dulkóðun gagna."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Þar sem þú hefur kveikt á aðgengisþjónustu mun tækið ekki nota skjálásinn til að efla dulkóðun gagna."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Ef <xliff:g id="SERVICE">%1$s</xliff:g> er gert virkt hefur það áhrif á dulkóðun gagna og því þarftu að staðfesta mynstrið þitt."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Tilkynningar"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Ítarlegt"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Vinnutilkynningar"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Leyfa merkingu á skjöldum"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blikkandi ljós"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Á lásskjá"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Sýna allt innihald tilkynninga"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Í meðallagi"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Mikið"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Áríðandi"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Leyfa hljóð"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Leyfa hljóð"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ekki nota hljóð, titring eða birta tilkynningar á núverandi skjá."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Tilkynningaaðstoð"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Tilkynningaaðgangur"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Mynd í mynd"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Leyfa mynd í mynd"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Leyfa þessu forriti að opna mynd í mynd þegar forritið er opið eða hætt er að nota það (t.d. til að halda áfram að horfa á myndskeið). Þessi gluggi birtist ofan á öðrum opnum forritum."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Já"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nei"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"„Ónáðið ekki“ aðgangur"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Engin uppsett forrit hafa óskað eftir „Ónáðið ekki“ aðgangi"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Hleður forrit..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Aldrei sýna þessar tilkynningar"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Sýna tilkynningar"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Aldrei sýna tilkynningar í skugga eða á jaðartækjum"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Tákn fyrir skjaldarforrit"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Sýna tilkynningar sem merki í Home forritinu, ef þær eru studdar."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Leyfa merkingu á tákni"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Hnekkja „Ónáðið ekki“"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Láta þessar tilkynningar halda áfram að trufla þegar „Ónáðið ekki“ er stillt á „Aðeins forgangur“"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Á lásskjá"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Opna ofan á öðrum forritum"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> af <xliff:g id="COUNT_1">%2$d</xliff:g> forritum mega opnast ofan á öðrum forritum"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Forrit með heimild"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Já"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nei"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Setja upp óþekkt forrit"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"setja upp forrit óþekktur uppruni"</string>
     <string name="write_settings" msgid="4797457275727195681">"Breyta kerfisstillingum"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Heimild forrits til að breyta kerfisstillingum"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Leyfa breytingar á kerfisstillingum"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Þessi heimild leyfir forriti að breyta kerfisstillingum."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Já"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nei"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Heimilað"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ekki heimilað"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Leyfa frá þessum uppruna"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Tvöfaldur snúningur fyrir myndavél"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Opnaðu myndavélarforritið með því að snúa úlnliðnum tvisvar"</string>
@@ -3310,8 +3313,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> gagnaviðvörun"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> gagnaviðvörun / <xliff:g id="ID_2">%2$s</xliff:g> gagnamörk"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Greiðslutímabil"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"<xliff:g id="ID_1">%1$s</xliff:g>. dag hvers mánaðar"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Takmarkanir nets"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> takmörkun</item>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index d766957..33a6e9f 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Buona"</item>
     <item msgid="8986346415847956850">"Ottima"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Solo quando collegato"</item>
-    <item msgid="1986753720941888596">"Mai"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Solo quando collegato"</item>
-    <item msgid="1390404486722375028">"Mai"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Ultimi 30 giorni"</item>
     <item msgid="6600989128423965319">"Imp. ciclo di utilizzo..."</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 9531f63..15e4d6b 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Ora sei uno sviluppatore."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Non è necessario, sei già uno sviluppatore."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless e reti"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Connessioni"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Disconnettere?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Questa operazione terminerà la connessione con:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Non sei autorizzato a modificare le impostazioni Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Con le impostazioni Bluetooth aperte, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> è rilevabile da altri dispositivi vicini."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Indirizzo MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Disconnetti <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Trasmissione"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Disattivare il profilo?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s desidera accedere ai tuoi messaggi. Dare accesso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Richiesta di accesso alla SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> desidera accedere alla tua scheda SIM. Se consenti l\'accesso, la connettività dati sul dispositivo sarà disattivata per tutta la durata della connessione. Consentire l\'accesso a <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>?"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visibile come <xliff:g id="DEVICE_NAME">^1</xliff:g> agli altri dispositivi"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data e ora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Scegli il fuso orario"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Solleva per riattivare"</string>
     <string name="doze_title" msgid="2259176504273878294">"Display Ambient"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Lo schermo viene riattivato quando ricevi notifiche"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre attivo"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostra ora, icone di notifica e altre informazioni"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Dimensioni carattere"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Ingrandisci o riduci il testo"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Impostazioni blocco SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Utilizzare <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> deve:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Un\'app sta oscurando una richiesta di autorizzazione, pertanto Impostazioni non può verificare la tua risposta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Impostazioni non può rispondere alla tua azione perché c\'è un\'altra app visualizzata sopra queste opzioni."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Se attivi <xliff:g id="SERVICE">%1$s</xliff:g>, il dispositivo non utilizzerà il blocco schermo per migliorare la crittografia dei dati."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Il dispositivo non utilizzerà il blocco schermo per migliorare la crittografia dei dati perché hai attivato un servizio di accessibilità."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"L\'attivazione di <xliff:g id="SERVICE">%1$s</xliff:g> incide sulla crittografia dei dati, pertanto devi confermare la sequenza."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notifiche"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avanzate"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notifiche di lavoro"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Consenti badge icona"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Luce lampeggiante"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Sulla schermata di blocco"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostra tutti i contenuti delle notifiche"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Media"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Attiva audio"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Attiva audio"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Non emettere suoni o vibrazioni e non mostrare queste notifiche nella schermata corrente."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistente notifica"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Accesso alle notifiche"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Consenti picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Consenti a questa app di creare una finestra picture-in-picture quando l\'app è aperta o dopo essere uscito (ad esempio, per continuare a guardare un video). Questa finestra viene visualizzata sopra le altre app in uso."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sì"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Accesso Non disturbare"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nessuna delle app installate ha richiesto l\'accesso Non disturbare"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Caricamento app..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Non mostrare mai queste notifiche"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostra notifiche"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Non mostrare mai notifiche nella relativa area o su dispositivi periferici"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge sull\'icona dell\'app"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostra notifiche come badge nell\'app Home, se supportato."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Attiva badge icona"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignora Non disturbare"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Consenti notifiche quando l\'opzione Non disturbare è impostata su Solo con priorità"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Sulla schermata di blocco"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Mostra sopra altre app"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> di <xliff:g id="COUNT_1">%2$d</xliff:g> app visualizzabili sopra le altre app"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"App con autorizzazione"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sì"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installa app sconosciute"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installa app origini sconosciute"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modifica impostazioni sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Autorizzazione modifica impostazioni sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Consenti modifica impostazioni di sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Questa autorizzazione consente a un\'app di modificare le impostazioni di sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sì"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Consentite"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Non consentite"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Consenti da questa fonte"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Doppia rotazione per fotocamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Apri l\'app Fotocamera ruotando due volte il polso"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Avviso sui dati: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Avviso sui dati: <xliff:g id="ID_1">%1$s</xliff:g>/Limite dati: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo di fatturazione"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Il giorno <xliff:g id="ID_1">%1$s</xliff:g> di ogni mese"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrizioni di rete"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrizioni</item>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 282da43..b80b91f 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"טובה"</item>
     <item msgid="8986346415847956850">"מצוינת"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"תמיד"</item>
-    <item msgid="844721238536786870">"רק כאשר המכשיר מחובר"</item>
-    <item msgid="1986753720941888596">"אף פעם"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"תמיד"</item>
-    <item msgid="7433294150916905997">"רק כאשר המכשיר מחובר"</item>
-    <item msgid="1390404486722375028">"לעולם לא"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 הימים האחרונים"</item>
     <item msgid="6600989128423965319">"הגדר מחזור שימוש..."</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 5050eed..ad3435d 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"אתה כעת מפתח!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"אין צורך, אתה כבר מפתח."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"להתנתק?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"‏פעולה זו תסיים את החיבור עם:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"‏אין לך הרשאה לשנות את הגדרות ה-Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"‏<xliff:g id="DEVICE_NAME">%1$s</xliff:g> גלוי למכשירים קרובים כאשר הגדרת Bluetooth פתוחה."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"‏כתובת ה-MAC של חיבור ה-Bluetooth‏: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"האם לנתק את <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"שידור"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"להשבית פרופיל?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"‏%1$s רוצה לגשת להודעות שלך. להעניק גישה ל-%2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"‏בקשת גישה אל כרטיס SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"‏<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> רוצה לגשת אל כרטיס ה-SIM. הענקת גישה אל כרטיס ה-SIM תשבית את קישוריות הנתונים במכשיר לכל משך החיבור. הענק גישה ל-<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"גלוי למכשירים אחרים. מופיע כ-<xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"תאריך ושעה"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"בחירת אזור זמן"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"הרם כדי להוציא ממצב שינה"</string>
     <string name="doze_title" msgid="2259176504273878294">"תצוגת אווירה"</string>
     <string name="doze_summary" msgid="3846219936142814032">"המסך יתעורר כשמתקבלות הודעות"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"פועל תמיד"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"הצגה של השעה, של סמלי ההודעות ושל פרטים אחרים"</string>
     <string name="title_font_size" msgid="4405544325522105222">"גודל גופן"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"הגדלה או הקטנה של גודל הטקסט"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"‏הגדרות נעילת כרטיס SIM"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"האם להשתמש ב-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"‏<xliff:g id="SERVICE">%1$s</xliff:g> צריך אפשרות לבצע:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"יש אפליקציה שמסתירה את בקשת ההרשאה, ולכן להגדרות אין אפשרות לאמת את התשובה."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"אפליקציית ההגדרות לא יכולה להגיב לפעולה שלך כי אפליקציה אחרת מופיעה מעל האפשרויות האלה."</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="enable_service_pattern_reason" msgid="777577618063306751">"הפעלת <xliff:g id="SERVICE">%1$s</xliff:g> משפיעה על הצפנת הנתונים, לכן עליך לאשר את קו ביטול הנעילה שלך."</string>
@@ -2846,6 +2853,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"הודעות"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"אפשרויות מתקדמות"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"הודעות עבודה"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"הצגת תגים על גבי הסמלים"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"אור מהבהב"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"במסך הנעילה"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"תוכן ההודעות יופיע במלואו"</string>
@@ -2871,7 +2879,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"בינונית"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"גבוהה"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"דחופה"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"אפשר צליל"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"הפעלת צליל"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"אל תשמיע צליל, תפעיל רטט או תציג במהירות הודעות אלו לתצוגה המפורטת במסך הנוכחי."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"אסיסטנט ההודעות"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"גישה אל הודעות"</string>
@@ -2902,8 +2910,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"תמונה בתוך תמונה"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"אפשר תמונה בתוך תמונה"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"אפשר לאפליקציה זו ליצור חלון מסוג תמונה בתוך תמונה בזמן שהאפליקציה פתוחה, או לאחר שאתה יוצא ממנה (למשל, כדי להמשיך לצפות בסרטון). חלון זה מוצג מעל אפליקציות אחרות שאתה משתמש בהן."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"כן"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"לא"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"גישה אל \'נא לא להפריע\'"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"אין אפליקציות מותקנות שביקשו גישה אל \'נא לא להפריע\'"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"טוען אפליקציות..."</string>
@@ -2933,8 +2939,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"לעולם אל תציג את ההודעות האלה"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"הצג הודעות"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"אף פעם אל תציג הודעות בהצללה או במכשירים היקפיים"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"סמל אפליקציית תגים"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"הצג הודעות כתגים באפליקציית דף הבית אם האפשרות נתמכת."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"הצגת תג על הסמל"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ביטול / שינוי של \'נא לא להפריע\'"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"אפשר להודעות אלה להמשיך ולהפריע כאשר \'נא לא להפריע\' מוגדר כ\'עדיפות בלבד\'"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"במסך הנעילה"</string>
@@ -3277,8 +3282,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"תצוגה מעל אפליקציות אחרות"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> מתוך <xliff:g id="COUNT_1">%2$d</xliff:g> אפליקציות מורשות להופיע מעל אפליקציות אחרות"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"אפליקציות עם הרשאה"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"כן"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"לא"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"להתקין גם אם לא מוכר?"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"להתקין אפליקציות ממקורות לא מוכרים"</string>
     <string name="write_settings" msgid="4797457275727195681">"שינוי הגדרות המערכת"</string>
@@ -3291,10 +3298,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"הרשאת אפליקציה לשנות את הגדרות המערכת"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"התר שינוי של הגדרות המערכת"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ההרשאה הזו מתירה לאפליקציה לשנות את הגדרות המערכת."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"כן"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"לא"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"מורשה"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"לא מורשה"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"אפשר ממקור זה"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"סיבוב כפול להפעלת המצלמה"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"פתח את אפליקציית המצלמה על ידי סיבוב כפול של פרק כף היד"</string>
@@ -3391,8 +3394,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"כל חודש ב-<xliff:g id="ID_1">%1$s</xliff:g> בחודש"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"הגבלות רשת"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="two"><xliff:g id="COUNT">%1$d</xliff:g> הגבלות</item>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index f1437c6..9076344 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"強"</item>
     <item msgid="8986346415847956850">"非常に強い"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"常に接続"</item>
-    <item msgid="844721238536786870">"電源接続時にのみ接続"</item>
-    <item msgid="1986753720941888596">"接続しない"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"常に使用"</item>
-    <item msgid="7433294150916905997">"電源接続時にのみ接続"</item>
-    <item msgid="1390404486722375028">"使用しない"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"過去30日間"</item>
     <item msgid="6600989128423965319">"使用サイクルを設定..."</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 33fafa8..d05fae7 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"これでデベロッパーになりました!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"開発者向けオプションが既に有効です。"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -41,7 +43,7 @@
     <string name="volte_provisioned_switch_string" msgid="7979882929810283786">"VoLTE プロビジョニング"</string>
     <string name="vt_provisioned_switch_string" msgid="7876998291744854759">"ビデオ ハングアウト対応"</string>
     <string name="wfc_provisioned_switch_string" msgid="3985406545172898078">"Wi-Fi 通話対応"</string>
-    <string name="eab_provisioned_switch_string" msgid="3482272907448592975">"EAB / プレゼンス プロビジョニング"</string>
+    <string name="eab_provisioned_switch_string" msgid="3482272907448592975">"EAB / プレゼンス プロビジョニング有効"</string>
     <string name="radio_info_radio_power" msgid="7187666084867419643">"モバイル無線電力"</string>
     <string name="radioInfo_menu_viewADN" msgid="7069468158519465139">"SIM のアドレス帳を表示"</string>
     <string name="radioInfo_menu_viewFDN" msgid="7934301566925610318">"発信番号制限を表示"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"切断しますか?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"この操作を行うと、次のデバイスとの接続が切断されます:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Bluetooth設定を変更する権限がありません。"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth設定を開いている間は、<xliff:g id="DEVICE_NAME">%1$s</xliff:g>は付近のデバイスに表示されています。"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC アドレス: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>を切断しますか?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ブロードキャスト"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"プロファイルを無効にしますか?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$sがメッセージにアクセスしようとしています。%2$sにアクセスを許可しますか?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIMアクセスリクエスト"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>がSIMカードにアクセスしようとしています。SIMカードへのアクセスを許可すると、接続を処理している間、端末上のデータ接続は無効になります。<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>にアクセスを許可します"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"他の端末に「<xliff:g id="DEVICE_NAME">^1</xliff:g>」として表示されます"</string>
     <string name="date_and_time" msgid="9062980487860757694">"日付と時刻"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"タイムゾーンの選択"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"指を離してスリープ状態から復帰"</string>
     <string name="doze_title" msgid="2259176504273878294">"アンビエント表示"</string>
     <string name="doze_summary" msgid="3846219936142814032">"通知を受信したときにスリープ状態から復帰"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"常に ON"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"時刻、通知アイコンなどの情報を表示します"</string>
     <string name="title_font_size" msgid="4405544325522105222">"フォントサイズ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"テキストのサイズを変更します"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIMカードロック設定"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g>を利用しますか?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>では以下が必要です。"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"アプリが許可リクエストを隠しているため、設定側でユーザーの応答を確認できません。"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"このオプションに重なって他のアプリが表示されているため、[設定] を操作しても反応しません。"</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"<xliff:g id="SERVICE">%1$s</xliff:g>をONにすると、端末データの暗号化の強化に画面ロックは使用されなくなります。"</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"ユーザー補助サービスがONに設定されているため、端末データの暗号化の強化に画面ロックは使用されません。"</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>をONにするとデータの暗号化に影響するため、パターンの確認が必要となります。"</string>
@@ -1881,8 +1888,8 @@
       <item quantity="one">1 件の印刷サービスが ON です</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="5810106725778525400">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 個の印刷ジョブ</item>
-      <item quantity="one">1 個の印刷ジョブ</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 件の印刷ジョブ</item>
+      <item quantity="one">1 件の印刷ジョブ</item>
     </plurals>
     <string name="print_settings_title" msgid="3685449667822217816">"印刷サービス"</string>
     <string name="print_no_services_installed" msgid="8443039625463872294">"インストールされているサービスはありません"</string>
@@ -2548,7 +2555,7 @@
     <string name="user_enable_calling_confirm_message" msgid="8061594235219352787">"発信履歴がこのユーザーと共有されます。"</string>
     <string name="user_enable_calling_and_sms_confirm_title" msgid="7243308401401932681">"通話とSMSをONにしますか?"</string>
     <string name="user_enable_calling_and_sms_confirm_message" msgid="4025082715546544967">"通話とSMSの履歴がこのユーザーと共有されます。"</string>
-    <string name="emergency_info_title" msgid="208607506217060337">"緊急情報"</string>
+    <string name="emergency_info_title" msgid="208607506217060337">"緊急時情報"</string>
     <string name="emergency_info_summary" msgid="5062945162967838521">"<xliff:g id="USER_NAME">%1$s</xliff:g>の情報と連絡先"</string>
     <string name="application_restrictions" msgid="8207332020898004394">"アプリとコンテンツの許可"</string>
     <string name="apps_with_restrictions_header" msgid="3660449891478534440">"制限のあるアプリ"</string>
@@ -2792,6 +2799,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"詳細設定"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"仕事用プロファイルの通知"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"アイコンバッジの許可"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"点滅"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ロック画面の通知"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"すべての通知内容を表示する"</string>
@@ -2817,7 +2825,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"中"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"高"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"緊急"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"音の許可"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"音の許可"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"音やバイブレーションで知らせず、現在の画面に通知を数秒間表示することもしません。"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"通知アシスタント"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"通知へのアクセス"</string>
@@ -2846,8 +2854,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"PIP"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"PIP を許可"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"このアプリを開いているとき、またはアプリを離れた後に、動画の再生を続けるなどの目的で PIP ウィンドウを表示できるようにします。このウィンドウは、使用中の他のアプリの上に重ねて表示されます。"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"許可する"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"許可しない"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"マナーモードへのアクセス"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"マナーモードへのアクセスをリクエストしたインストール済みアプリはありません"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"アプリを読み込んでいます..."</string>
@@ -2873,8 +2879,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"今後はこの通知を表示しない"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"通知の表示"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"シェードにも周辺端末にも通知を表示しない"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"バッジアプリ アイコン"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"通知をホームアプリでバッジとして表示する(対応している場合)"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"アイコンバッジの許可"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"マナーモードをオーバーライドする"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"[マナーモード] が [優先する通知のみ] に設定されているとき、この通知を引き続き表示する"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ロック画面"</string>
@@ -3201,8 +3206,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"他のアプリの上に重ねて表示"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"他のアプリの上に重ねて表示できるアプリの数: <xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g> 個"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"権限のあるアプリ"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"可"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"不可"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"不明なアプリのインストール"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"インストール アプリ 不明 提供元"</string>
     <string name="write_settings" msgid="4797457275727195681">"システム設定の変更"</string>
@@ -3215,10 +3222,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"アプリがシステム設定を変更する権限"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"システム設定の変更の許可"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"この権限により、アプリはシステム設定の変更ができるようになります。"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"可"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"不可"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"許可"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"許可しない"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"この提供元のアプリを許可"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"2回ひねる動作でカメラアプリを開く"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"手首を2回ひねる動作でカメラアプリを開きます"</string>
@@ -3313,8 +3316,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"毎月 <xliff:g id="ID_1">%1$s</xliff:g> 日"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ネットワーク制限"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 個の制限</item>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index 13e21c2..1cc501a 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"კარგი"</item>
     <item msgid="8986346415847956850">"შესანიშნავი"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ყოველთვის"</item>
-    <item msgid="844721238536786870">"მხოლოდ ქსელიდან კვების მიღების დროს"</item>
-    <item msgid="1986753720941888596">"არასოდეს"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ყოველთვის"</item>
-    <item msgid="7433294150916905997">"მხოლოდ მაშინ, როცა მიერთებულია"</item>
-    <item msgid="1390404486722375028">"არასოდეს"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"ბოლო 30 დღე"</item>
     <item msgid="6600989128423965319">"გამოყენების ციკლის დაყენება..."</item>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 61fffd0..b4e6d7c 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ახლა დეველოპერი ხართ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"არ არის საჭირო, თქვენ უკვე დეველოპერი ხართ."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"გავწყვიტო კავშირი?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ეს დაასრულებს თქვენს კავშირს :&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-თან&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"თქვენ არ გაქვთ Bluetooth-ის პარამეტრების შეცვლის ნებართვა."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ჩანს ახლომდებარე მოწყობილობებზე, როდესაც Bluetooth პარამეტრები გახსნილია."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC-ის მისამართი: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"გაწყდეს კავშირი <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-თან?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"მაუწყებლობა"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"გავაუქმოთ პროფილი?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s-ს უნდა თქვენს შეტყობინებებზე წვდომა. მისცემთ %2$s-ს წვდომას?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM-ზე წვდომის მოთხოვნა"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>-ს სურს თქვენს SIM ბარათზე წვდომა. SIM ბარათზე წვდომის დაშვება კავშირის განმავლობაში გათიშავს მონაცემთა გადაცემას მოწყობილობაზე. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>-ისთვის წვდომის მიცემა"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ხილულია, როგორც <xliff:g id="DEVICE_NAME">^1</xliff:g>, სხვა მოწყობილობებისთვის"</string>
     <string name="date_and_time" msgid="9062980487860757694">"თარიღი და დრო"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"დროის ზონის არჩევა"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"გაღვიძება აწევისას"</string>
     <string name="doze_title" msgid="2259176504273878294">"გარემოს ეკრანი"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ეკრანის გამოღვიძება შეტყობინებების მიღებისას"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ყოველთვის ჩართული"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"დროის, შეტყობინებათა ხატულების და სხვა ინფორმაციის ჩვენება"</string>
     <string name="title_font_size" msgid="4405544325522105222">"შრიფტის ზომა"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ტექსტის გადიდება ან დაპატარავება"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM ბარათის დაბლოკვის პარამეტრები"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"გსურთ <xliff:g id="SERVICE">%1$s</xliff:g>-ის გამოყენება?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>-ს ესაჭიროება:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"აპის მიერ ნებართვის მოთხოვნის დაფარვის გამო, ვერ ხერხდება თქვენი პასუხის დადასტურება პარამეტრებით."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"პარამეტრები თქვენს მოქმედებაზე ვერ რეაგირებს, რადგან სხვა აპი გადაფარვითაა ნაჩვენები ამ ვარიანტებზე."</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="enable_service_pattern_reason" msgid="777577618063306751">"ვინაიდან <xliff:g id="SERVICE">%1$s</xliff:g>-ის ჩართვას მონაცემთა დაშიფვრაზე აქვს გავლენა, გთხოვთ, ხელახლა შეიყვანოთ ნიმუში."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"შეტყობინებები"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"გაფართოებული"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"სამსახურის შეტყობინებები"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ხატულას ბეჯების დაშვება"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"სინათლის ციმციმი"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ჩაკეტილ ეკრანზე"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"შეტყობინების მთელი შინაარსის ჩვენება"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"საშუალო"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"მაღალი"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"სასწრაფო"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ხმის გამოყენების დაშვება"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ხმის გამოყენების დაშვება"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"შეტყობინებებისთვის ხმისა თუ ვიბრაციის გათიშვა და მიმდინარე ეკრანზე ანთების აკრძალვა."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"შეტყობინებათა ასისტენტი"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"შეტყობინებებზე წვდომა"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"გამოსახულება გამოსახულებაში"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"„გამოსახულება გამოსახულებაში“ რეჟიმის დაშვება"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"საშუალებას მისცემს ამ აპს, შექმნას „გამოსახულება გამოსახულებაში“ ტიპის ფანჯარა, როცა ის გახსნილია, ან აპიდან გასვლისას (მაგალითად, ვიდეოს ყურების გასაგრძელებლად). ეს ფანჯარა თქვენ მიერ გამოყენებული აპების ზემოდან გამოჩნდება."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"დიახ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"არა"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"„არ შემაწუხოთ“ წვდომა"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"დაუინსტალირებელმა აპებმა მოითხოვა „არ შემაწუხოთ“ წვდომა"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"აპები იტვირთება..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ამ შეტყობინებების ჩვენების შეწყვეტა"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"შეტყობინებების ჩვენება"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"შეტყობინებების ჩრდილოვნად ან პერიფერიულ მოწყობილობებზე ჩვენების აღკვეთა"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"აპის ხატულაზე ბეჯის მიმაგრება"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"შეტყობინებების Home აპში ბეჯების სახით ჩვენება, თუ ეს ფუნქცია მხარდაჭერილია."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ხატულას ბეჯის დაშვება"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"„არ შემაწუხოთ“-ის უგულებელყოფა"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"ამ შეტყობინებების ჩვენება მაშინაც კი, როცა რეჟიმისთვის „არ შემაწუხოთ“ არჩეულია „მხოლოდ პრიორიტეტული“"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ჩაკეტილ ეკრანზე"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"სხვა აპების ზემოდან გამოჩენა"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"სხვა აპების ზემოდან გამოჩენა <xliff:g id="COUNT_1">%2$d</xliff:g>-დან <xliff:g id="COUNT_0">%1$d</xliff:g> აპს შეუძლია"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ნებართვის მქონე აპები"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"კი"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"არა"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"უცნობი აპების ინსტალაცია"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ინსტალაცია აპები უცნობი წყაროები"</string>
     <string name="write_settings" msgid="4797457275727195681">"სისტემის პარამეტრების შეცვლა"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"აპის მიერ სისტემის პარამეტრების შეცვლის ნებართვა"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"მიეცით სისტემის პარამეტრების შეცვლის უფლება"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ეს ნებართვა უფლებას აძლევს აპს, შეცვალოს სისტემის პარამეტრები."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"კი"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"არა"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"დაშვებულია"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"დაუშვებელია"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ამ წყაროდან დაშვება"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ორმაგი მოტრიალება კამერისთვის"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"გახსენით კამერის აპი თქვენი მაჯის ორჯერ მოტრიალებით"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ყოველთვიურად, <xliff:g id="ID_1">%1$s</xliff:g> რიცხვში"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ქსელის შეზღუდვები"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> შეზღუდვა</item>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 62df25e..d75b606 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Жақсы"</item>
     <item msgid="8986346415847956850">"Өте жақсы"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Әрқашан"</item>
-    <item msgid="844721238536786870">"Жалғанып тұрғанда"</item>
-    <item msgid="1986753720941888596">"Ешқашан"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Үнемі"</item>
-    <item msgid="7433294150916905997">"Жалғанып тұрғанда ғана"</item>
-    <item msgid="1390404486722375028">"Ешқашан"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Соңғы 30 күн"</item>
     <item msgid="6600989128423965319">"Пайдалану циклын орнату…"</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 4f08b2e..bda053b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Қазір сіз дамытушысыз!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Қажет емес, сіз қазір әзірлеушісіз."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ажыратылсын ба?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Бұл келесі құрылғымен байланысты үзеді:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Сізде Bluetooth параметрлерін өзгерту рұқсаты жоқ."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> Bluetooth параметрлері ашық болғанда маңайдағы құрылғыларға көрінеді."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC мекенжайы: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ажырату керек пе?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Хабар тарату"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Профайл істен шығарылсын ба?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s хабарларыңызға кіруді қалайды. %2$s кірсін бе?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM картасына кіру сұрауы"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> сіздің SIM картаңызға кіруге рұқсат сұрайды. Ондай рұқсатты берсеңіз, байланыс барысында дерек тасымалы өшіріледі. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> құрылғысына рұқсат беру"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Басқа құрылғыларға <xliff:g id="DEVICE_NAME">^1</xliff:g> болып көрінеді"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Күн және уақыт"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Уақыт аймағын таңдау"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ояту үшін көтеру"</string>
     <string name="doze_title" msgid="2259176504273878294">"Айналаны көрсету"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Хабарландырулар келгенде, экранды ұйқы режимінен шығару"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Әрқашан қосулы"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Уақытын, хабарландыру белгішелерін және басқа ақпаратты көрсету"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Шрифт өлшемі"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Мәтінді үлкейтеді немесе кішірейтеді"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM картасын бекіту параметрлері"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> қолданылсын ба?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> қызметіне қажет:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Бағдарлама рұқсат сұрауын жасырып тұрғандықтан, Параметрлер жауабыңызды тексере алмайды."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Себебі бұл опциялардың жоғарғы жағында басқа қолданба көрсетіледі. Параметрлер әрекетіңізге әсер етпейді."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> қосу деректерді шифрлауға әсер ететіндіктен, өрнекті растау керек."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Хабарландырулар"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Кеңейтілген"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Жұмыс хабарландырулары"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Белгіше танымбелгілеріне рұқсат беру"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Жыпылықтаған жарық"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Құлып экранында"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Бүкіл хабарландыру мазмұнын көрсету"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Орташа"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Жоғары"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Шұғыл"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дыбысқа рұқсат ету"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дыбысқа рұқсат ету"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Дыбыс шығармау, дірілдетпеу немесе осы хабарландыруларды ағымдағы экрандағы көріністе көрсетпеу."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Хабарландыру көмекшісі"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Хабарландыруға кіру мүмкіндігі"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Сурет ішіндегі сурет"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"\"Сурет ішіндегі сурет\" режиміне рұқсат беру"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Қолданба ашық болғанда не одан шыққанда (мысалы, бейнені көре беру үшін), бұл қолданбаға сурет ішіндегі сурет терезесін ашуға мүмкіндік береді. Бұл терезе пайдаланылып жатқан басқа қолданбалардың үстінен шығады."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Иә"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Жоқ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Мазаламау режиміне кіру"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Орнатылған қолданбалардың ешбірі Мазаламау режиміне кіруге рұқсат сұрамады"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Қолданбаларды жүктеу…"</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Бұл хабарландыруларды ешқашан көрсетпеу"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Хабарландыруларды көрсету"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Тақтада немесе перифериялық құрылғыларда хабарландыруларды ешқашан көрсетпеу"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Танымбелгі қолданбасы белгішесі"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Қолдау көрсетілетін жағдайда хабарландыруларды Home қолданбасында танымбелгі ретінде көрсету."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Белгішеге рұқсат ету"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Мазаламау\" режимін қайта анықтау"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"\"Мазаламау\" режимі \"Тек маңызды\" күйіне орнатылған кезде, осы хабарландыруларға рұқсат беру"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Құлып экранында"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Басқа қолданбалардың үстінен көрсету"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> қолданбаның <xliff:g id="COUNT_0">%1$d</xliff:g>-на(не) басқа қолданбалардың үстінен шығуға рұқсат берілген"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Рұқсаты бар қолданбалар"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Иә"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Жоқ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Белгісіз қолданбаларды орнату"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"қолданбаларлы орнату белгісіз дереккөздер"</string>
     <string name="write_settings" msgid="4797457275727195681">"Жүйелік параметрлерді өзгерту"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Қолданбаның жүйелік параметрлерді өзгерту рұқсаты"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Жүйелік параметрлерді өзгертуге рұқсат ету"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Бұл рұқсат қолданбаға жүйелік параметрлерді өзгертуге рұқсат етеді."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Иә"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Жоқ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Рұқсат етілген"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Рұқсат етілмеген"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Осы көзден рұқсат беру"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Камера үшін екі рет бұру"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Білекті екі рет бұру арқылы камера қолданбасын ашу"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Ай сайын <xliff:g id="ID_1">%1$s</xliff:g> күні"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Желілік шектеулер"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> шектеу</item>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 26ea3dd..dcdd510 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ខ្លាំង"</item>
     <item msgid="8986346415847956850">"ខ្លាំងណាស់"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ជា​និច្ច"</item>
-    <item msgid="844721238536786870">"តែ​ពេល​ដោតប៉ុណ្ណោះ"</item>
-    <item msgid="1986753720941888596">"កុំ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ជា​និច្ច"</item>
-    <item msgid="7433294150916905997">"តែ​ពេល​ដោត"</item>
-    <item msgid="1390404486722375028">"កុំ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 ថ្ងៃ​មុន"</item>
     <item msgid="6600989128423965319">"កំណត់រង្វង់ប្រើប្រាស់..."</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 8df1365..e49bcd6 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ឥឡូវ​អ្នក​ក្លាយ​ជា​អ្នក​អភិវឌ្ឍ​ហើយ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"មិន​ចាំបាច់​ទេ អ្នក​ជា​អ្នក​អភិវឌ្ឍ​រួច​ហើយ។"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"ឥត​ខ្សែ &amp; បណ្ដាញ​"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"ការ​តភ្ជាប់"</string>
     <string name="header_category_device" msgid="4544026001618307754">"ឧបករណ៍"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ផ្ដាច់?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"វា​នឹង​បញ្ចប់​ការ​តភ្ជាប់​​ជា​មួយ៖&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"អ្នក​មិន​មាន​សិទ្ធិ​ ដើម្បី​​ប្ដូរ​ការ​កំណត់​ប៊្លូធូស​ទេ។"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> អាចមើលឃើញដោយឧបករណ៍នៅក្បែរនោះ នៅពេលដែលបើកការកំណត់ប្ល៊ូធូស។"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"អាសយដ្ឋាន MAC ប៊្លូធូស៖ <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"ផ្ដាច់ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ការ​ផ្សាយ"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"បិទ​ប្រវត្តិរូប?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ចង់​ចូល​ដំណើរការ​សារ​របស់​អ្នក។ សូម​ផ្ដល់​ការ​ចូល​ដំណើរការ​ទៅ​កាន់​%2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"សំណើចូលដំណើរការស៊ីម"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ចង់ចូលដំណើរការស៊ីមកាតរបស់អ្នក។ ការផ្តល់ការអនុញ្ញាតចូលដំណើរការស៊ីមកាតនឹងបិទដំណើរការតភ្ជាប់ទិន្នន័យនៅលើឧបករណ៍របស់អ្នកក្នុងអំឡុងពេលធ្វើការតភ្ជាប់។ អនុញ្ញាតឲ្យចូលដំណើរការ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"អាច​មើល​ឃើញ​ជា <xliff:g id="DEVICE_NAME">^1</xliff:g> ទៅកាន់​ឧបករណ៍ផ្សេងទៀត"</string>
     <string name="date_and_time" msgid="9062980487860757694">"កាលបរិច្ឆេទ និង ម៉ោង"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"ជ្រើស​តំបន់​ពេល​វេលា"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"លើក​ដៃ​ដើម្បី​ឲ្យ​ភ្ញាក់"</string>
     <string name="doze_title" msgid="2259176504273878294">"មុខងារដាស់អេក្រង់"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ដាស់អេក្រង់នៅពេលដែលអ្នកទទួលបានការជូនដំណឹង"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"បើក​ជា​និច្ច"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"បង្ហាញ​ម៉ោង រូបតំណាងការជូនដំណឹង និងព័ត៌មានផ្សេងទៀត"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ទំហំពុម្ពអក្សរ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ធ្វើឲ្យអក្សរធំជាងមុន ឬតូចជាងមុន"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"កំណត់​ការ​ចាក់សោ​ស៊ីម​កាត"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"ប្រើ <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ត្រូវ​ការ៖"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"ដោយសារកម្មវិធីមួយកំពុងធ្វើឲ្យសំណើរអនុញ្ញាតមានភាពមិនច្បាស់ ការកំណត់នេះមិនអាចផ្ទៀងផ្ទាត់ការឆ្លើយតបរបស់អ្នកបានទេ។"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ការកំណត់មិនអាចឆ្លើយតបនឹងសកម្មភាពរបស់អ្នកបានទេ ដោយសារកម្មវិធីផ្សេងទៀតកំពុងបង្ហាញនៅលើជម្រើសទាំងនេះ។"</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="enable_service_pattern_reason" msgid="777577618063306751">"ព្រោះ​បើក <xliff:g id="SERVICE">%1$s</xliff:g> ប៉ះពាល់​ដល់​ការ​អ៊ិនគ្រីប​ទិន្នន័យ អ្នក​ត្រូវតែ​បញ្ជាក់​​លំនាំ​​របស់​អ្នក។"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"ការ​ជូនដំណឹង"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"កម្រិតខ្ពស់"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ការជូនដំណឹងពីកន្លែងធ្វើការ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"អនុញ្ញាតស្លាកសញ្ញាជារូបតំណាង"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ភ្លើងលោត"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"នៅលើអេក្រង់ជាប់សោ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"បង្ហាញ​ខ្លឹមសារនៃការ​ជូនដំណឹង​ទាំងអស់"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"មធ្យម"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ខ្ពស់"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"បន្ទាន់"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"អនុញ្ញាតឲ្យមានសំឡេង"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"អនុញ្ញាត​សំឡេង"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"កុំបន្លឺសំឡេង ញ័រ ឬលោតបង្ហាញការជូនដំណឹងទាំងនេះទៅក្នុងការបង្ហាញនៃអេក្រង់បច្ចុប្បន្ន។"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"ជំនួយការជូនដំណឹង"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"ចូល​ដំណើរការ​ការ​ជូន​ដំណឹង"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"រូបភាព​ក្នុង​រូបភាព"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"អនុញ្ញាតសម្រាប់មុខងាររូបភាពក្នុងរូបភាព"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"អនុញ្ញាតឲ្យកម្មវិធីនេះបង្កើតវិនដូរូបភាពក្នុងរូបភាព ខណៈពេលដែលកម្មវិធីកំពុងបើក ឬបន្ទាប់ពីអ្នកចាកចេញពីវា (ឧទាហរណ៍ ដើម្បីបន្តមើលវីដេអូ)។ វិនដូនេះបង្ហាញនៅលើកម្មវិធីផ្សេងទៀតដែលអ្នកកំពុង​ប្រើប្រាស់។"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"បាទ/ចាស"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ទេ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"ចូលដំណើរការមុខងារកុំរំខាន"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"គ្មានកម្មវិធីបានដំឡើងណាមួយបានស្នើការចូលដំណើរការមុខងារកុំរំខានទេ"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"កំពុង​ផ្ទុក​កម្មវិធី..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"កុំ​បង្ហាញ​ការ​ជូនដំណឹង​ទាំង​នេះ"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"បង្ហាញ​ការ​ជូន​ដំណឹង"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"កុំ​បង្ហាញ​ការ​ជូន​ដំណឹង​នៅក្នុង​ផ្ទាំង​ទម្លាក់ ឬ​នៅលើ​ឧបករណ៍​ភ្ជាប់​ជាមួយ​កុំព្យូទ័រ"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"រូបតំណាងកម្មវិធីគ្រឿងសម្គាល់"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"បង្ហាញ​ការ​ជូន​ដំណឹង​ជា​ស្លាកសញ្ញា​នៅ​លើ​កម្មវិធី Home នេះ ប្រសិន​បើ​​ស្គាល់។"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"អនុញ្ញាតស្លាកសញ្ញាជារូបតំណាង"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"បដិសេធរបៀបកុំរំខាន"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"អនុញ្ញាតឲ្យការជូនដំណឹងទាំងនេះបន្តរំខាន នៅពេលដែលរបៀបកុំរំខានត្រូវបានកំណត់ទៅ របៀបអាទិភាពប៉ុណ្ណោះ"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"នៅលើអេក្រង់ជាប់សោ"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"បង្ហាញនៅលើកម្មវិធីផ្សេងទៀត"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"កម្មវិធី <xliff:g id="COUNT_0">%1$d</xliff:g> ក្នុងចំណោម <xliff:g id="COUNT_1">%2$d</xliff:g> ត្រូវបានអនុញ្ញាតឲ្យបង្ហាញនៅលើកម្មវិធីផ្សេងទៀត"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"កម្មវិធីដែលមានសិទ្ធិអនុញ្ញាត"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"បាទ/ចាស"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ទេ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ដំឡើងកម្មវិធីដែលមិនស្គាល់"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ដំឡើងកម្មវិធីពីប្រភពដែលមិនស្គាល់"</string>
     <string name="write_settings" msgid="4797457275727195681">"កែការកំណត់ប្រព័ន្ធ"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"សិទ្ធិអនុញ្ញាតកម្មវិធីកែការកំណត់ប្រព័ន្ធ"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"អនុញ្ញាតកែការកំណត់ប្រព័ន្ធ"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"សិទ្ធិអនុញ្ញាតនេះអនុញ្ញាតឲ្យកម្មវិធីកែការកំណត់ប្រព័ន្ធ។"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"បាទ/ចាស"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ទេ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"បាន​អនុញ្ញាត"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"មិន​អនុញ្ញាត​ទេ"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"អនុញ្ញាត​កម្មវិធី​ពី​ប្រភពនេះ"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"បង្វិលពីរដងដើម្បីប្រើកាមេរ៉ា"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"បើកកម្មវិធីកាមេរ៉ាដោយបង្វិលកដៃរបស់អ្នកពីរដង"</string>
@@ -3233,10 +3236,10 @@
     <string name="screen_zoom_conversation_message_2" msgid="6935424214137738647">"តើឯងចង់ផឹកកាហ្វេ និងជជែកគ្នាលេងដែរទេថ្ងៃនេះ?"</string>
     <string name="screen_zoom_conversation_message_3" msgid="5218221201861387402">"មានអីល្អតើ ខ្ញុំស្គាល់កន្លែងល្អមួយ វាមិនឆ្ងាយពីកន្លែងនេះប៉ុន្មានទេ។"</string>
     <string name="screen_zoom_conversation_message_4" msgid="5564676794767555447">"ល្អណាស់!"</string>
-    <string name="screen_zoom_conversation_timestamp_1" msgid="7453710416319650556">"អង្គារ៍ 6:00PM"</string>
-    <string name="screen_zoom_conversation_timestamp_2" msgid="7107225702890747588">"អង្គារ៍ 6:01PM"</string>
-    <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"អង្គារ៍ 6:02PM"</string>
-    <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"អង្គារ៍ 6:03PM"</string>
+    <string name="screen_zoom_conversation_timestamp_1" msgid="7453710416319650556">"អង្គារ 6:00PM"</string>
+    <string name="screen_zoom_conversation_timestamp_2" msgid="7107225702890747588">"អង្គារ 6:01PM"</string>
+    <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"អង្គារ 6:02PM"</string>
+    <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"អង្គារ 6:03PM"</string>
     <string name="disconnected" msgid="4836600637485526329">"មិន​បាន​ភ្ជាប់"</string>
     <string name="data_usage_summary_format" msgid="7507047900192160585">"បានប្រើទិន្នន័យអស់ <xliff:g id="AMOUNT">%1$s</xliff:g>"</string>
     <plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ប្រចាំខែនៅថ្ងៃទី <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ការដាក់កំហិតបណ្ដាញ"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other">ការដាក់កំហិត <xliff:g id="COUNT">%1$d</xliff:g></item>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index bcd6f00..9b5a56c 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ಉತ್ತಮ"</item>
     <item msgid="8986346415847956850">"ಉತ್ಕೃಷ್ಟ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ಯಾವಾಗಲೂ"</item>
-    <item msgid="844721238536786870">"ಕೇವಲ ಪ್ಲಗ್ ಇನ್ ಮಾಡಿದಾಗ"</item>
-    <item msgid="1986753720941888596">"ಎಂದಿಗೂ ಬೇಡ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ಯಾವಾಗಲೂ"</item>
-    <item msgid="7433294150916905997">"ಕೇವಲ ಪ್ಲಗ್ ಇನ್ ಮಾಡಿದಾಗ"</item>
-    <item msgid="1390404486722375028">"ಎಂದಿಗೂ ಇಲ್ಲ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"ಕಳೆದ 30 ದಿನಗಳು"</item>
     <item msgid="6600989128423965319">"ಬಳಕೆಯ ಆವರ್ತನೆಯನ್ನು ಹೊಂದಿಸಿ..."</item>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 41057ca..d2b6737 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ಇದೀಗ ನೀವು ಡೆವಲಪರ್‌!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಈಗಾಗಲೇ ಡೆವಲಪರ್‌ ಆಗಿರುವಿರಿ."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"ವೈರ್‌ಲೆಸ್ &amp; ನೆಟ್‌ವರ್ಕ್‌ಗಳು"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"ಸಂಪರ್ಕಗಳು"</string>
     <string name="header_category_device" msgid="4544026001618307754">"ಸಾಧನ"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸುವುದೇ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ಇದರೊಂದಿಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಇದು ಕೊನೆಗೊಳಿಸುತ್ತದೆ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ಬ್ಲೂಟೂತ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಲು ನೀವು ಅನುಮತಿ ಹೊಂದಿಲ್ಲ."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ಬ್ಲೂಟೂತ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ತೆರೆದಿರುವಾಗ ಸಮೀಪದಲ್ಲಿರುವ ಸಾಧನಗಳಿಗೆ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ಬ್ಲೂಟೂತ್ MAC ವಿಳಾಸ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸುವುದೇ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ಪ್ರಸಾರ ಮಾಡಲಾಗುತ್ತಿದೆ"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ಪ್ರೊಫೈಲ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುವುದೇ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ನಿಮ್ಮ ಸಂದೇಶಗಳನ್ನು ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. %2$s ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡುವುದೇ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"ಸಿಮ್ ಪ್ರವೇಶ ವಿನಂತಿ"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ. ಸಿಮ್ ಕಾರ್ಡ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ನೀಡಿದರೆ, ಸಂಪರ್ಕಪಡಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಡೇಟಾ ಸಂಪರ್ಕಪಡಿಸುವಿಕೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> ಗೆ ಪ್ರವೇಶ ನೀಡಿ"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ಇತರ ಸಾಧನಗಳಿಗೆ <xliff:g id="DEVICE_NAME">^1</xliff:g> ಎಂದು ಗೋಚರವಾಗುತ್ತದೆ"</string>
     <string name="date_and_time" msgid="9062980487860757694">"ದಿನಾಂಕ &amp; ಸಮಯ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"ಸಮಯದ ವಲಯವನ್ನು ಆರಿಸಿ"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"ಎಬ್ಬಿಸಲು ಎತ್ತಿರಿ"</string>
     <string name="doze_title" msgid="2259176504273878294">"ಆವರಿಸಿದ ಪರದೆ"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ಅಧಿಸೂಚನೆಗಳನ್ನು ನೀವು ಸ್ವೀಕರಿಸಿದಾಗ ಪರದೆಯನ್ನು ಎಚ್ಚರಗೊಳಿಸಿ"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ಯಾವಾಗಲೂ ಆನ್"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"ಸಮಯ, ಅಧಿಸೂಚನೆ ಐಕಾನ್‌ಗಳು ಮತ್ತು ಇತರ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಿ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ಫಾಂಟ್ ಗಾತ್ರ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ಪಠ್ಯವನ್ನು ಸಣ್ಣದು ಅಥವಾ ದೊಡ್ಡದು ಮಾಡಿ"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"ಸಿಮ್‌ ಕಾರ್ಡ್ ಲಾಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> ಬಳಸುವುದೇ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಮಾಡುತ್ತದೆ:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"ಅನುಮತಿ ವಿನಂತಿಯನ್ನು ಅಪ್ಲಿಕೇಶನ್ ಮರೆಮಾಚುತ್ತಿರುವ ಕಾರಣ, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ನಿಮ್ಮ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ಈ ಆಯ್ಕೆಗಳ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಇನ್ನೊಂದು ಅಪ್ಲಿಕೇಶನ್ ಡಿಸ್‌ಪ್ಲೇ ಆಗುತ್ತಿರುವುದರಿಂದ, ಸೆಟ್ಟಿಂಗ್‌ಗಳು ನಿಮ್ಮ ಕ್ರಿಯೆಗೆ ಪ್ರತಿಕ್ರಿಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> ಆನ್‌ ಮಾಡುವುದರಿಂದಾಗಿ ಡೇಟಾ ಎನ್ಕ್ರಿಪ್ಷನ್‌ಗೆ ಪರಿಣಾಮಬೀರುವ ಕಾರಣ, ನಿಮ್ಮ ನಮೂನೆಯನ್ನು ನೀವು ಖಚಿತಡಿಸಬೇಕಾದ ಅಗತ್ಯವಿದೆ."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ಸುಧಾರಿತ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ಕೆಲಸದ ಅಧಿಸೂಚನೆಗಳು"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ಐಕಾನ್ ಬ್ಯಾಡ್ಜ್‌ಗಳಿಗೆ ಅನುಮತಿಸಿ"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ಮಿನುಗುವ ಬೆಳಕು"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪೂರ್ತಿ ತೋರಿಸು"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"ಮಧ್ಯಮ"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ಅಧಿಕ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"ತುರ್ತು"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ಧ್ವನಿಗೆ ಅನುಮತಿ ನೀಡಿ"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ಧ್ವನಿಗೆ ಅನುಮತಿ ನೀಡಿ"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ಪ್ರಸ್ತುತ ಪರದೆಯಲ್ಲಿ ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಲು ಧ್ವನಿ, ವೈಬ್ರೇಷನ್ ಅಥವಾ ಇಣುಕು ನೋಟ ಮಾಡಬೇಡ."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"ಅಧಿಸೂಚನೆ ಸಹಾಯಕ"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"ಅಧಿಸೂಚನೆ ಪ್ರವೇಶ"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರಕ್ಕೆ ಅನುಮತಿಸಿ"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ನೀವು ಈ ಅಪ್ಲಿಕೇಶನ್ ತೊರೆದ ಬಳಿಕ (ಉದಾಹರಣೆಗೆ, ವೀಡಿಯೊ ನೋಡಲು), ಅಪ್ಲಿಕೇಶನ್ ತೆರೆದೇ ಇರುವಾಗ ಚಿತ್ರದಲ್ಲಿ ಚಿತ್ರ ವಿಂಡೋ ರಚಿಸಲು ಈ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿ ನೀಡಿ. ನೀವು ಬಳಸುವ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಮೇಲೆ ಈ ವಿಂಡೋ ಡಿಸ್‌ಪ್ಲೇ ಆಗುತ್ತದೆ."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ಹೌದು"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ಇಲ್ಲ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಪ್ರವೇಶ"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ಸ್ಥಾಪಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಯಾವುದೇ ಅಡಚಣೆ ಮಾಡಬೇಡಿಗೆ ಪ್ರವೇಶ ವಿನಂತಿಸಿಲ್ಲ"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಎಂದಿಗೂ ತೋರಿಸಬೇಡ"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸು"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ಶೇಡ್ ಅಥವಾ ಪೆರಿಪೆರಲ್ ಸಾಧನಗಳಲ್ಲಿ ಎಂದಿಗೂ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಬೇಡಿ"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ಬ್ಯಾಡ್ಜ್ ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ಬೆಂಬಲಿಸಿದರೆ, ಮುಖಪುಟ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಬ್ಯಾಡ್ಜ್‌ಗಳಂತಿರುವ ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಿ."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ಐಕಾನ್ ಬ್ಯಾಡ್ಜ್‌ಗೆ ಅನುಮತಿಸಿ"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ಅಡಚಣೆ ಮಾಡಬೇಡ ಅತಿಕ್ರಮಿಸು"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"ಅಡಚಣೆ ಮಾಡಬೇಡ ಅನ್ನು ಆದ್ಯತೆಗೆ ಹೊಂದಿಸಿದಾಗ ಮಾತ್ರ ಅಡ್ಡಿಪಡಿಸಲು ಈ ಅಧಿಸೂಚನೆಗಳನ್ನು ಮುಂದುವರಿಸಲು ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ಲಾಕ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಮೇಲೆ ಡಿಸ್‌ಪ್ಲೇ"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> ರಲ್ಲಿ <xliff:g id="COUNT_0">%1$d</xliff:g> ಅಪ್ಲಿಗಳಿಗೆ ಇತರ ಅಪ್ಲಿಗಳ ಮೇಲೆ ಪ್ರದರ್ಶಿಸಲು ಅನುಮತಿಯಿದೆ"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ಅನುಮತಿಯೊಂದಿಗೆ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ಹೌದು"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ಇಲ್ಲ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ಅಪರಿಚಿತ ಆಪ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಿ"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ಅಪರಿಚಿತ ಮೂಲದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಸ್ಥಾಪನೆ"</string>
     <string name="write_settings" msgid="4797457275727195681">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‍ಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ಅಪ್ಲಿಕೇಶನ್ ಮಾರ್ಪಡಿಸಲು ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‍ಗಳ ಅನುಮತಿ"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಮಾರ್ಪಡಿಸುವಿಕೆಯನ್ನು ಅನುಮತಿಸಿ"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ಈ ಅನುಮತಿಯು ಸಿಸ್ಟಂ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅನುಮತಿಸುತ್ತದೆ."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"ಹೌದು"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ಇಲ್ಲ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ಅನುಮತಿಸಲಾಗಿದೆ"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ಅನುಮತಿಸಲಾಗುವುದಿಲ್ಲ"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ಈ ಮೂಲದಿಂದ ಅನುಮತಿಸಿ"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ಕ್ಯಾಮರಾಗೆ ಎರಡು ಬಾರಿ ತಿರುಗಿಸಿ"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"ನಿಮ್ಮ ಮಣಿಕಟ್ಟನ್ನು ಎರಡು ಬಾರಿ ತಿರುಗಿಸುವ ಮೂಲಕ ಕ್ಯಾಮರಾ ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಿರಿ"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ಮಾಸಿಕವಾಗಿ <xliff:g id="ID_1">%1$s</xliff:g> ರಂದು"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ನೆಟ್‌ವರ್ಕ್ ನಿರ್ಬಂಧಗಳು"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ನಿರ್ಬಂಧಗಳು</item>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index 52d8d59..d9990cf 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"좋음"</item>
     <item msgid="8986346415847956850">"우수함"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"항상"</item>
-    <item msgid="844721238536786870">"충전 중인 경우에만"</item>
-    <item msgid="1986753720941888596">"안함"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"항상"</item>
-    <item msgid="7433294150916905997">"충전 중인 경우에만"</item>
-    <item msgid="1390404486722375028">"안함"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"최근 30일"</item>
     <item msgid="6600989128423965319">"사용 주기 설정..."</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index f1b5b93..fc6f3ce 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"개발자가 되셨습니다."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"이미 개발자입니다."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"연결을 해제하시겠습니까?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;와(과) 연결이 끊어집니다.&lt;br&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"블루투스 설정을 변경할 권한이 없습니다."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"블루투스 설정이 열려 있는 동안 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>이(가) 주변의 기기에 표시됩니다."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"블루투스 MAC 주소: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>을(를) 연결 해제하시겠습니까?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"브로드캐스팅"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"프로필을 사용 중지하시겠습니까?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s이(가) 메시지에 액세스하려고 합니다. %2$s에 액세스 권한을 제공하시겠습니까?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM 액세스 요청"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>이(가) SIM 카드에 액세스하려고 합니다. SIM 카드에 대한 액세스를 허용하면 연결되어 있는 동안 기기의 데이터 연결이 비활성화됩니다. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>에 액세스 권한을 부여하세요."</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"다른 기기에 <xliff:g id="DEVICE_NAME">^1</xliff:g>(으)로 표시"</string>
     <string name="date_and_time" msgid="9062980487860757694">"날짜 및 시간"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"시간대 선택"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"기기를 들어 대기 모드 해제"</string>
     <string name="doze_title" msgid="2259176504273878294">"절전 모드 자동 해제"</string>
     <string name="doze_summary" msgid="3846219936142814032">"알림을 수신하면 절전 모드를 해제합니다."</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"항상 사용"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"시간, 알림 아이콘 등의 정보 표시"</string>
     <string name="title_font_size" msgid="4405544325522105222">"글꼴 크기"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"텍스트를 확대 또는 축소"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 카드 잠금 설정"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 사용하시겠습니까?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>에 필요한 기능:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"권한 요청을 보이지 않게 하는 앱이 있어서 설정에서 내 응답을 확인할 수 없습니다."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"다른 앱이 이 옵션 위에 표시되므로 설정에서 내 작업에 응답할 수 없습니다."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>을(를) 사용 설정하면 데이터 암호화에 영향을 주기 때문에 패턴 확인이 필요합니다."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"알림"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"고급"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"직장 알림"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"아이콘 배지 허용"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"표시등이 깜박거림"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"잠금 화면에서"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"모든 알림 내용 표시"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"보통"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"높음"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"긴급"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"소리 허용"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"소리 허용"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"현재 화면에서 소리, 진동, 알림 표시를 허용하지 않습니다."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"알림 어시스턴트"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"알림 액세스"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"PIP 모드"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"PIP 모드 허용"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"앱이 열려 있을 때나 사용자가 앱에서 나갔을 때(예: 동영상 시청을 계속하기 위해) 이 앱에서 PIP 창을 표시하도록 허용합니다. 이 창은 사용 중인 다른 앱 위에 표시됩니다."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"예"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"아니요"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"알림 일시중지 액세스"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"설치된 앱 중에서 알림 일시중지 액세스를 요청한 앱이 없습니다."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"앱 로드 중..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"이러한 알림을 다시 표시하지 않음"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"알림 표시"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"알림을 창이나 주변기기에 표시하지 않음"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"배지 앱 아이콘"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"지원되는 경우 Home 앱에서 알림을 배지로 표시"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"아이콘 배지 허용"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"알림 일시중지 무시"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"알림 일시중지가 중요 알림만으로 설정된 경우 이러한 알림을 계속 받도록 허용"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"잠금 화면에서"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"다른 앱 위에 표시"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g>개 앱 중 다른 앱 위에 표시하도록 허용된 앱 <xliff:g id="COUNT_0">%1$d</xliff:g>개"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"권한을 가진 앱"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"예"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"아니요"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"알 수 없는 앱 설치"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"알 수 없는 소스에서 가져온 앱 설치"</string>
     <string name="write_settings" msgid="4797457275727195681">"시스템 설정 수정"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"앱의 시스템 설정 수정 권한"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"시스템 설정 수정 허용"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"이 권한은 앱이 시스템 설정을 수정하도록 허용합니다."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"예"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"아니요"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"허용됨"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"허용되지 않음"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"이 소스에서 가져온 앱 설치 허용"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"손목을 두 번 돌려 카메라 열기"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"손목을 두 번 돌리면 카메라 앱이 열립니다."</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"매월 <xliff:g id="ID_1">%1$s</xliff:g>일"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"네트워크 제한"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other">제한 <xliff:g id="COUNT">%1$d</xliff:g>개</item>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index f711e95..ac99cad 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Жакшы"</item>
     <item msgid="8986346415847956850">"Эң жакшы"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Дайыма"</item>
-    <item msgid="844721238536786870">"Дүрмөттөө учурунда гана"</item>
-    <item msgid="1986753720941888596">"Эч качан"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Дайыма"</item>
-    <item msgid="7433294150916905997">"Бир гана дүрмөттөө учурунда"</item>
-    <item msgid="1390404486722375028">"Эч качан"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Акыркы 30 күн"</item>
     <item msgid="6600989128423965319">"Колдонуу мерчимин коюу…"</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 1a012a5..9f1a504 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Сиз өндүрүүчү болдуңуз!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Кереги жок, сиз өндүрүүчү болгонсуз."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -109,7 +111,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ажыратылсынбы?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Бул кийинкилер менен болгон байланышты үзөт:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Bluetooth жөндөөлөрүн өзгөртүүгө уруксатыңыз жок."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth жөндөөлөрү ачылып турганда <xliff:g id="DEVICE_NAME">%1$s</xliff:g> жакын арадагы түзмөктөргө көрүнөт."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC дареги: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ажыратылсынбы?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Кеңири таратуу"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Профайлды өчүрөсүзбү?"</string>
@@ -157,6 +162,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s сиздин баарлашуу билдирүүлөрүңүзгө жеткиси келет. %2$s уруксат берилсинби?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM карта пайдалануу мүмкүнчүлүгүн суроо"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> SIM картаңызды пайдалануу мүмкүнчүлүгүнө ээ болгусу келет. SIM картаны пайдалануу укугу берилсе, түзмөк SIM картага туташып жатканда дайындарды мобилдик тармак аркылуу өткөрүү кызматтары убактылуу иштебей калат. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> түзмөгүнө SIM картаны пайдалануу мүмкүнчүлүгүн берүү"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Башка түзмөктөргө <xliff:g id="DEVICE_NAME">^1</xliff:g> катары көрүнөт"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Күн жана убакыт"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Саат алкагын тандаңыз"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ойготуу үчүн көтөрүү"</string>
     <string name="doze_title" msgid="2259176504273878294">"Градиент дисплейи"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Эскертмелерди алганыңызда экран күйөт"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Ар дайым күйүк"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Убакытты, эскертме сүрөтчөлөрүн жана башка маалыматты көрсөтүү"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Арип өлчөмү"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Текстти чоңойтуп же кичирейтиңиз"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM картаны кулпулоо жөндөөлөрү"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> колдоносузбу?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Колдонмо уруксат суроо-талабын түшүнбөй жаткандыктан, Жөндөөлөр жообуңузду текшере албайт."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Бул опциялардын үстүндө башка колдонмо көрсөтүлүп жаткандыктан, Жөндөөлөр сиздин аракетиңизге жооп бере албайт."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> күйгүзүлгөндө дайындарды шифрлөөгө таасир тийгизгендиктен, үлгүңүздү ырасташыңыз керек."</string>
@@ -2792,6 +2799,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Эскертмелер"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Өркүндөтүлгөн"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Жумуш боюнча эскертмелер"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Бейджиктин сүрөтчөлөрүн көрсөтүүгө уруксат берүү"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Жарык индикатору"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Кулпуланган экранда"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Эскертме толугу менен көрүнсүн"</string>
@@ -2817,7 +2825,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Орто"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Жогору"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Шашылыш"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Добуш чыгарууга уруксат берүү"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Добуш чыгарууга уруксат берүү"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Үн чыгарылбасын, дирилдебесин же бул эскертмелер учурдагы экранда көрүнбөсүн."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Эскертме жардамчысы"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Эскертмелерди ишт мүмкүнчлгү"</string>
@@ -2846,8 +2854,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Сүрөт ичиндеги сүрөт"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Сүрөт ичиндеги сүрөткө уруксат берүү"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Бул колдонмо ачылып турганда же андан чыгып кеткениңизде (мисалы, видео көрүүнү улантуу үчүн), колдонмого сүрөт ичиндеги сүрөт терезсин түзүүгө уруксат бериңиз. Терезе колдонулуп жаткан башка колдонмолордун үстүнөн көрсөтүлөт."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ооба"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Жок"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"Тынчымды алба\" функциясы"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Орнотулган колдонмолор үчүн \"Тынчымды алба\" функциясы талап кылынбайт"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Колдонмолор жүктөлүүдө…"</string>
@@ -2873,8 +2879,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Бул эскертмелер эч качан көрсөтүлбөсүн"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Эскертмелерди көрсөтүү"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Эскертмелер эч качан көлөкөдө же сырткы түзмөктөрдө көрсөтүлбөсүн"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Колдонмонун сүрөтчөсүн белгилөө"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Эгер колдоого алынса, эскертмелер Home колдонмосунда бейджик түрүндө көрсөтүлсүн."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Бейджиктин сүрөтчөсүн көрсөтүүгө уруксат берүү"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Тынчымды албаны өзгөртүп коюу"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"\"Тынчымды алба режиминде\" \"Шашылыш эскертмелер гана\" деп белгиленсе ушул эскертмелер көрүнөт"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Кулпуланган экранда"</string>
@@ -3201,8 +3206,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Башка терезел-н үст-н көрсөтүү"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> колдонмодон <xliff:g id="COUNT_0">%1$d</xliff:g> колдонмо башка терезелердин үстүнөн көрсөтүлөт"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Уруксаты бар колдонмолор"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ооба"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Жок"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Белгисиз колдонмолорду орнотуу"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"белгисиз булактардан келген колдонмолорду орнотуу"</string>
     <string name="write_settings" msgid="4797457275727195681">"Тутум жөндөөлөрүн өзгөртүү"</string>
@@ -3215,10 +3222,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Колдонмонун тутум жөндөөлөрүн өзгөртүү уруксаты"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Тутум жөндөөлөрүн өзгөртүүгө уруксат"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Мындай уруксат колдонмого тутум жөндөөлөрүн өзгөртүү мүмкүнчүлүгүн берет."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ооба"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Жок"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Уруксат берилген"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Тыюу салынган"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Бул булактан алынган колдонмолорго ишеним көрсөтүү"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Колду эки айлантып камераны ачуу"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Колуңузду эки айлантып, камера колдонмосун ачыңыз"</string>
@@ -3313,8 +3316,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Ай сайын <xliff:g id="ID_1">%1$s</xliff:g> күнү"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Тармак чектөөлөрү"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> чектөө</item>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index ccb296c..fbc8104 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ດີ"</item>
     <item msgid="8986346415847956850">"ດີເລີດ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ຕະຫຼອດເວລາ"</item>
-    <item msgid="844721238536786870">"ສະເພາະເມື່ອສຽບສາຍສາກ"</item>
-    <item msgid="1986753720941888596">"ບໍ່ໃຊ້"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ຕະຫຼອດເວລາ"</item>
-    <item msgid="7433294150916905997">"ສະເພາະເມື່ອສຽບສາຍສາກເທົ່ານັ້ນ"</item>
-    <item msgid="1390404486722375028">"ບໍ່ໃຊ້"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 ມື້ທີ່ຜ່ານມາ"</item>
     <item msgid="6600989128423965319">"ຕັ້ງ​ຮອບ​ການ​ນຳ​ໃຊ້..."</item>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 230b208..83f728a 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ຕອນນີ້ທ່ານເປັນນັກພັດທະນາແລ້ວ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"ບໍ່ຈຳເປັນ, ທ່ານເປັນນັກພັດທະນາຢູ່ແລ້ວ."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"ລະບົບໄຮ້ສາຍ &amp; ເຄືອຂ່າຍ"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"ການເຊື່ອມຕໍ່"</string>
     <string name="header_category_device" msgid="4544026001618307754">"ອຸປະກອນ"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ຕັດການເຊື່ອມຕໍ່ຫຼືບໍ່?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ນີ້ຈະເປັນການຢຸດການເຊື່ອມຕໍ່ຂອງທ່ານກັບ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ທ່ານ​ບໍ່​ມີ​ສິດ​ອະນຸຍາດ​ໃນ​ການ​ແກ້ໄຂ​ການ​ຕັ້ງຄ່າ Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ສາ​ມາດ​ໃຫ້​ອຸ​ປະ​ກອນ​ໃກ້​ຄຽງ​ເຫັນ​ໄດ້ ໃນ​ຂະ​ນະ​ທີ່ການ​ຕັ້ງ​ຄ່າ Bluetooth ເປີດ."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ທີ່ຢູ່ MAC ຂອງ Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"​ຕັດ​ການ​ເຊື່ອມ​ຕ​ໍ່ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ບໍ່?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ການກະ​ຈາຍ​ສັນຍານ"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ປິດການນຳໃຊ້ໂປຣໄຟລ໌?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ຕ້ອງການສິດເພື່ອເຂົ້າໄປຂໍ້ຄວາມຂອງທ່ານ. ໃຫ້ສິດແກ່ %2$s ຫຼືບໍ່?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"ການ​ຂໍ​ເຂົ້າ​ຫາ SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ຕ້ອງ​ການ​ເຂົ້າ​ຫາ​ແຜ່ນ SIM ຂອງ​ທ່ານ. ການ​ໃຫ້​ການ​ເຂົ້າ​ເຖິງ​ແຜ່ນ SIM ຈະ​ປິດ​ໃຊ້​ງານ​ການ​ເຊື່ອມ​ຕໍ່​ຂໍ້​ມູນ​ຢູ່​ໃນ​ອຸ​ປະ​ກອນ​ຂອງ​ທ່ານ​ສຳ​ລັບ​ໄລ​ຍະ​ເວ​ລາ​ຂອງ​ການ​ເຊື່ອມ​ຕໍ່. ໃຫ້​ການ​ເຂົ້າ​ຫາ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ອຸປະກອນອື່ນເບິ່ງເຫັນເປັນ <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"ວັນ​ທີ &amp; ເວ​ລາ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"ເລືອກເຂດເວລາ"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"ຍົກ​ເພື່ອ​ເປີດ​ໜ້າ​ຈໍ"</string>
     <string name="doze_title" msgid="2259176504273878294">"ການ​ສະ​ແດງ​ຜົນ​ສະ​ພາບ​ແວດ​ລ້ອມ"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ເປີດໜ້າຈໍເມື່ອທ່ານໄດ້ຮັບການແຈ້ງເຕືອນ"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ເປີດຕະຫຼອດ"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"ສະແດງເວລາ, ໄອຄອນການແຈ້ງເຕືອນ ແລະ ຂໍ້ມູນອື່ນໆ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ຂະໜາດຕົວອັກສອນ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ເຮັດໃຫ້ຂໍ້ຄວາມໃຫຍ່ຂຶ້ນ ຫຼື ນ້ອຍລົງ"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"ການຕັ້ງຄ່າການລັອກ SIM card"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"ໃຊ້ <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ຕ້ອງການ:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"ເພາະ​ວ່າ​ແອັບຯ​ກຳ​ລັງ​ຂັດ​ຂວາງ​ການ​ຂໍ​ອະ​ນຸ​ຍາດ, ການ​ຕັ້ງ​ຄ່າ​ບໍ່​ສາ​ມາດກວດ​ສອບ​ການ​ຕອບ​ຮັບ​ຂອງ​ທ່ານ​ໄດ້."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ເນື່ອງຈາກແອັບອື່ນກຳລັງສະແດງຜົນບັງຕົວເລືອກເຫຼົ່ານີ້, ການຕັ້ງຄ່າຈຶ່ງບໍ່ສາມາດຕອບສະໜອງຄຳສັ່ງຂອງທ່ານໄດ້."</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="enable_service_pattern_reason" msgid="777577618063306751">"ເພາະ​ວ່າ​ການ​ເປີດ <xliff:g id="SERVICE">%1$s</xliff:g> ມີ​ຜົນ​ຕໍ່​ການ​ເຂົ້າ​ລະ​ຫັດ, ​ທ່ານ​ຈຶ່ງ​ຈຳ​ຕ້ອງ​ຢືນ​ຢັນ​ຮູບ​ແບບ​ການ​ລັອກ​ຂອງ​ທ່ານ."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"ການແຈ້ງເຕືອນ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"​ຂັ້ນ​ສູງ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ການແຈ້ງເຕືອນວຽກ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ອະນຸຍາດປ້າຍໄອຄອນ"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ກະພິບໄຟ"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ຢູ່ໜ້າຈໍລັອກ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ສະແດງ​ເນື້ອຫາ​ການແຈ້ງເຕືອນ​ທັງໝົດ"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"ປານກາງ"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ສູງ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"ດ່ວນ"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ອະນຸຍາດສຽງ"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ອະນຸຍາດສຽງ"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ບໍ່ໃຊ້ສຽງ, ສັ່ນ ຫຼື ເຫັນການແຈ້ງເຕືອນເຫຼົ່ານີ້ໃນໜ້າຈໍປັດຈຸບັນ."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"ຕົວຊ່ວຍ​ການ​ແຈ້ງ​ເຕືອນ"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"ການ​ເຂົ້າ​ເຖິງ​ການ​ແຈ້ງ​ເຕືອນ"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ສະແດງຜົນຫຼາຍຢ່າງພ້ອມກັນ"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ອະນຸຍາດການສະແດງຜົນຊ້ອນ"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ອະນຸຍາດໃຫ້ແອັບນີ້ສ້າງໜ້າຈໍທີ່ຊ້ອນຂຶ້ນມາໃນເວລາເປີດແອັບອື່ນ ຫຼື ຫຼັງຈາກທ່ານອອກຈາກມັນ (ເຊັ່ນ: ເພື່ອສືບຕໍ່ການເບິ່ງວິດີໂອ). ໜ້າຈໍນີ້ຈະສະແດງບັງແອັບອື່ນທີ່ທ່ານກຳລັງໃຊ້ຢູ່."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ແມ່ນແລ້ວ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ບໍ່"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"​ຫ້າມ​ລົບ​ກວນການ​ເຂົ້າ​ຫາ"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ບໍ່​ມີ​ການ​ຂໍ​ແອັບ​ທີ່​ຕິດ​ຕັ້ງ​ໄວ້ ​ຫາ​ຫ້າມ​ລົບ​ກວນການ​ເຂົ້າ"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"​ກຳ​ລັງ​ໂຫລດ​ແອັບຯ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ຢ່າສະແດງການແຈ້ງເຕືອນເຫຼົ່ານີ້ອີກ"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"ສະແດງການແຈ້ງເຕືອນ"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ຢ່າສະແດງການແຈ້ງເຕືອນໃນເງົາ ຫຼື ອຸປະກອນຕໍ່ພ່ວງອີກ."</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ໄອຄອນແອັບປ້າຍ"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ສະແດງການແຈ້ງເຕືອນເປັນປ້າຍໃນແອັບ Home ແທນ, ຫາກຮອງຮັບ."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ອະນຸຍາດປ້າຍໄອຄອນ"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ຍົກເລີກຫ້າມລົບກວນ"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"ອະນຸຍາດ​ໃຫ້ການ​ແຈ້ງ​ເຕືອນ​​ເຫຼົ່າ​ນີ້​ສືບ​ຕໍ່​ຂັດ​ຈັງຫວະ ​ເມື່ອຄຸນສົມບັດ ຫ້າມ​ລົບ​ກວນ ຖືກ​ຕັ້ງ​ເປັນແບບບຸລິ​ມະ​ສິດ​ເທົ່າ​ນັ້ນ"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ຢູ່ໜ້າຈໍລັອກ"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"ສະແດງແອັບບັງແອັບອື່ນ"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="COUNT_1">%2$d</xliff:g> ແອັບແມ່ນອະນຸຍາດໃຫ້ສະແດງຜົນບັງແອັບອື່ນໄດ້"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ແອັບ​ທີ່​ມີ​ການ​ອະ​ນຸ​ຍາດ"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"​ແມ່ນ​ແລ້ວ"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ບໍ່"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ຕິດຕັ້ງແອັບທີ່ບໍ່ຮູ້ຈັກ"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ຕິດຕັ້ງແອັບທີ່ບໍ່ຮູ້ແຫລ່ງທີ່ມາ"</string>
     <string name="write_settings" msgid="4797457275727195681">"ແກ້ໄຂການຕັ້ງຄ່າລະບົບ"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ການ​ອະ​ນຸ​ຍາດ​ແອັບ​ແກ້​ໄຂ​ການ​ຕັ້ງ​ຄ່າ​ລະ​ບົບ"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"ອະ​ນຸ​ຍາດແກ້​ໄຂການ​ຕັ້ງ​ຄ່າ​ລະ​ບົບ"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ການ​ອະ​ນຸ​ຍາດ​ນີ້​ອະ​ນຸ​ຍາດໃຫ້​ແອັບດັດ​ແປງ​ການ​ຕັ້ງ​ຄ່າ​ລະ​ບົບ​ໄດ້."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"​ແມ່ນ​ແລ້ວ"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ບໍ່"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ອະນຸຍາດແລ້ວ"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ບໍ່ອະນຸຍາດແລ້ວ"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ອະນຸຍາດຈາກແຫລ່ງທີ່ມານີ້"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ບິດ​ສອງ​ຄັ້ງ​ສຳ​ລັບ​ກ້ອງ​ຖ່າຍ​ຮູບ"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"ເປີດ​ກ້ອງ​ຖ່າຍ​ຮູບ​ໂດຍ​ການ​ບິດ​ຂໍ້​ມື​ຂອງ​ທ່ານ​ສອງ​ຄັ້ງ"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ທຸກໆເດືອນໃນວັນທີ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ການ​ຈຳ​ກັດ​ເຄືອ​ຂ່າຍ"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> ຂໍ້ຈຳກັດ</item>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9b48cb7..1c7be20 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Geras"</item>
     <item msgid="8986346415847956850">"Puikus"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Visada"</item>
-    <item msgid="844721238536786870">"Tik kai įjungtas į lizdą"</item>
-    <item msgid="1986753720941888596">"Niekada"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Visada"</item>
-    <item msgid="7433294150916905997">"Tik kai įjungtas į lizdą"</item>
-    <item msgid="1390404486722375028">"Niekada"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Pastarosios 30 dienų"</item>
     <item msgid="6600989128423965319">"Nustatyti naudojimo ciklą..."</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index f44959a..edef411 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Dabar esate kūrėjas!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nereikia, jūs jau esate kūrėjas."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Belaidis ryšys ir tinklai"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Ryšiai"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Įrenginys"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Atsijungti?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tai nutrauks ryšį su:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Neturite leidimo keisti „Bluetooth“ nustatymų."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"„<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ matomas netoliese esantiems įrenginiams, kai įjungti „Bluetooth“ nustatymai."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"„Bluetooth“ MAC adresas: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Atjungti „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transliavimas"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Neleisti profilio?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s nori pasiekti jūsų pranešimus. Suteikti prieigą %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM prieigos užklausa"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"„<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>“ nori pasiekti jūsų SIM kortelę. Suteikus prieigą prie SIM kortelės bus išjungtas duomenų ryšys įrenginyje, kol veiks šis ryšys. Leiskite pasiekti „<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>“"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Kitiems įrenginiams matomas kaip „<xliff:g id="DEVICE_NAME">^1</xliff:g>“"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data ir laikas"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Pasirinkite laiko juostą"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Pakelti ir pažadinti"</string>
     <string name="doze_title" msgid="2259176504273878294">"Aplinkos vaizdas"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Pažadinti ekraną, kai gaunamas pranešimas"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Visada įjungta"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Rodymo laikas, pranešimų piktogramos ir kita informacija"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Šrifto dydis"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Padidinkite arba sumažinkite tekstą"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM kortelės užrakto nustatymai"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Naudoti „<xliff:g id="SERVICE">%1$s</xliff:g>“?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"„<xliff:g id="SERVICE">%1$s</xliff:g>“ reikia:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Kadangi programa užstoja leidimo užklausą, nustatymuose negalima patvirtinti jūsų atsakymo."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Kadangi kita programa rodoma virš šių parinkčių, nustatymai negali reaguoti į jūsų veiksmą."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Jei įjungsite „<xliff:g id="SERVICE">%1$s</xliff:g>“, įrenginyje nebus naudojamas ekrano užraktas siekiant patobulinti duomenų šifruotę."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Kadangi įjungėte pritaikymo neįgaliesiems paslaugą, įrenginyje nebus naudojamas ekrano užraktas siekiant patobulinti duomenų šifruotę."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Įjungus „<xliff:g id="SERVICE">%1$s</xliff:g>“ paveikiama duomenų šifruotė, todėl reikia patvirtinti atrakinimo piešinį."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Pranešimai"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Išplėstiniai"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Darbo profilio pranešimai"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Leisti piktogramų ženklelius"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Mirksinti šviesa"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Užrakinimo ekrane"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Rodyti visą pranešimo turinį"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Vidutinis"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Aukštas"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Skubus"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Leisti garsus"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Leisti garsą"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Neskambėti, nevibruoti arba nerodyti šių pranešimų dabartiniame ekrane."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Pranešimų pagelbiklis"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Prieiga prie pranešimų"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Vaizdas vaizde"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Leisti vaizdą vaizde"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Leisti šiai programai kurti vaizdo vaizde langą, kol programa atidaryta arba iš jos išėjus (pvz., kad galėtumėte ir toliau žiūrėti vaizdo įrašą). Šis langas rodomas virš kitų naudojamų programų."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Taip"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Prieiga „Netrukdyti“"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Jokios įdiegtos programos nepateikė prieigos „Netrukdyti“ užklausos"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Įkeliamos programos..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Niekada nerodyti šių pranešimų"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Rodyti pranešimus"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Niekada nerodyti pranešimų skydelyje ar išoriniuose įrenginiuose"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Programos piktogramos kaip ženklelio nustatymas"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"„Home“ programoje rodyti pranešimus kaip ženklelius, jei tai palaikoma."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Leisti piktogramos ženklelį"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Nepaisyti netrukdymo režimo"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Leisti ir toliau teikti šiuos pranešimus, kai netrukdymo režimas nustatytas į „Tik prioritetiniai“"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Užrakinimo ekrane"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Rodyti virš kitų programų"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> iš <xliff:g id="COUNT_1">%2$d</xliff:g> progr. leidžiama rodyti virš kitų programų"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Leidimą turinčios programos"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Taip"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Nežinomų programų diegimas"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"programų diegimas iš nežinomų šaltinių"</string>
     <string name="write_settings" msgid="4797457275727195681">"Keisti sistemos nustatymus"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Programos leidimas keisti sistemos nustatymus"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Leisti keisti sistemos nustatymus"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Programai bus leidžiama keisti sistemos nustatymus."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Taip"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Leidžiama"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Neleidžiama"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Leisti iš šio šaltinio"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dukart pasukti, kad fotoap. pr. būtų at."</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Atidarykite fotoaparato programą dukart pasukę riešą"</string>
@@ -3389,8 +3392,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> duomenų įspėjimas"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> duomenų įspėjimas / <xliff:g id="ID_2">%2$s</xliff:g> duomenų apribojimas"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Atsiskaitymo ciklas"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Kas mėnesį, <xliff:g id="ID_1">%1$s</xliff:g> d."</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Tinklo apribojimai"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> apribojimas</item>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 94d6557..4d26a15 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Labs"</item>
     <item msgid="8986346415847956850">"Teicams"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Vienmēr"</item>
-    <item msgid="844721238536786870">"Tikai ja pieslēgts pie strāvas"</item>
-    <item msgid="1986753720941888596">"Nekad"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Vienmēr"</item>
-    <item msgid="7433294150916905997">"Tikai ja pieslēgts pie strāvas"</item>
-    <item msgid="1390404486722375028">"Nekad"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Pēdējās 30 dienas"</item>
     <item msgid="6600989128423965319">"Iestatīt lietojuma ciklu…"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 82bb46f..9924595 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -31,6 +31,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Tagad jūs esat izstrādātājs!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nav nepieciešams, ja jau esat izstrādātājs."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bezvadu sakari un tīkli"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Savienojumi"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Ierīce"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Vai pārtraukt savienojumu?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tiks pārtraukts savienojums ar:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Jums nav atļaujas mainīt Bluetooth iestatījumus."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Kamēr Bluetooth iestatījumi atvērti, ierīce <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ir redzama citām ierīcēm tuvumā."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC adrese: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Vai atvienot <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Apraidīšana"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vai atspējot profilu?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"Ierīce “%1$s” vēlas piekļūt jūsu ziņojumiem. Vai sniegt piekļuvi ierīcei “%2$s”?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Pieprasījums piekļūt SIM kartei"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> pieprasa piekļuvi SIM kartei. Piešķirot piekļuvi SIM kartei, savienojuma laikā ierīcē tiks atspējota datu savienojamība. Piešķirt piekļuvi ierīcei <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Citām ierīcēm redzama kā “<xliff:g id="DEVICE_NAME">^1</xliff:g>”"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datums un laiks"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Laika joslas izvēle"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1033,6 +1039,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Pacelt, lai ieslēgtu"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambients displejs"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Aktivizēt ekrānu, kad tiek saņemts paziņojums"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Vienmēr ieslēgts"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Tiek rādīts laiks, paziņojumu ikonas un cita informācija."</string>
     <string name="title_font_size" msgid="4405544325522105222">"Fonta lielums"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Palielināt vai samazināt tekstu"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM kartes bloķēšanas iestatījumi"</string>
@@ -1879,8 +1887,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Vai izmantot pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Pakalpojumam <xliff:g id="SERVICE">%1$s</xliff:g> nepieciešams:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Lietotne Iestatījumi nevar verificēt jūsu atbildi, jo cita lietotne aizsedz atļaujas pieprasījumu."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Lietotne Iestatījumi nevar atbildēt uz jūsu darbību, jo cita lietotne tiek rādīta virs šīm opcijām."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ja ieslēgsiet pakalpojumu <xliff:g id="SERVICE">%1$s</xliff:g>, ierīce neizmantos ekrāna bloķēšanu datu šifrēšanas uzlabošanai."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Tā kā esat ieslēdzis pieejamības pakalpojumu, ierīce neizmantos ekrāna bloķēšanu datu šifrēšanas uzlabošanai."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Tā kā pakalpojuma <xliff:g id="SERVICE">%1$s</xliff:g> ieslēgšana ietekmē datu šifrēšanu, jums ir jāapstiprina sava grafiskā atslēga."</string>
@@ -2816,6 +2823,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Paziņojumi"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Papildu"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Darba paziņojumi"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Atļaut ikonu emblēmas"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Mirgojošs gaismas signāls"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Bloķēšanas ekrānā"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Rādīt visu saturu paziņojumos"</string>
@@ -2841,7 +2849,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Vidēji svarīgs"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Svarīgs"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Steidzams"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Atļaut skaņu"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Atļaujiet skaņu"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Nerādīt šos paziņojumus pašreizējā ekrāna skatā, kā arī neatskaņot to skaņas signālu un nevibrēt"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Paziņojumu palīgs"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Piekļuve paziņojumiem"</string>
@@ -2871,8 +2879,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Attēls attēlā"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Atļaut attēlu attēlā"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Atļaut šai lietotnei izveidot logu ar attēlu attēlā, kad lietotne ir atvērta vai pēc tās aizvēršanas (piemēram, lai turpinātu skatīties video). Šis logs tiek rādīts pāri citām izmantotajām lietotnēm."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Jā"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nē"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Piekļuve pie “Netraucēt”"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nevienā instalētajā lietotnē nav pieprasīta piekļuve režīmam “Netraucēt”."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Notiek lietotņu ielāde..."</string>
@@ -2900,8 +2906,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nekad nerādīt šos paziņojumus"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Rādīt paziņojumus"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nekad nerādīt paziņojumus panelī vai perifērijas ierīcēs"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Emblēmas lietotnes ikona"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Ja tiek atbalstīts, rādīt paziņojumus kā emblēmas lietotnē Sākums."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Atļaut ikonas emblēmu"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignorēt režīmu “Netraucēt”"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Ļaut šiem paziņojumiem pārtraukt arī turpmāk, ja režīms “Netraucēt” ir iestatīts uz “Tikai prioritārie”"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Bloķēšanas ekrānā"</string>
@@ -3236,8 +3241,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Rādīt pāri citām lietotnēm"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> lietotnes no <xliff:g id="COUNT_1">%2$d</xliff:g> drīkst rādīt pāri citām lietotnēm"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Lietotnes ar atļauju"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Jā"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nē"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalēt nez. lietotnes"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalēt lietotnes nezināmi avoti"</string>
     <string name="write_settings" msgid="4797457275727195681">"Iestatījumu pārveidošana"</string>
@@ -3250,10 +3257,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Atļauja lietotnei pārveidot sistēmas iestatījumus"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Atļaut pārveidot sistēmas iestatījumus"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Ar šo atļauju lietotnes var pārveidot sistēmas iestatījumus."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Jā"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nē"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Atļauts"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nav atļauts"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Atļaut no šī avota"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Pagriešana divreiz kameras atvēršanai"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Atvērt kameras lietotni, divreiz pagriežot plaukstas locītavu"</string>
@@ -3349,8 +3352,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Datu brīdinājums: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Datu brīdinājums: <xliff:g id="ID_1">%1$s</xliff:g>/ datu ierobežojums: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Norēķinu cikls"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Reizi mēnesī: <xliff:g id="ID_1">%1$s</xliff:g>. datumā"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Tīkla ierobežojumi"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="zero"><xliff:g id="COUNT">%1$d</xliff:g> ierobežojumi</item>
@@ -3653,7 +3655,7 @@
     <string name="storage_manager_indicator" msgid="1516810749625915020">"Krātuves pārvaldnieks: <xliff:g id="STATUS">^1</xliff:g>"</string>
     <string name="storage_manager_indicator_off" msgid="7488057587180724388">"Izslēgts"</string>
     <string name="storage_manager_indicator_on" msgid="8625551710194584733">"Ieslēgts"</string>
-    <string name="install_type_instant" msgid="3174425974536078647">"Tūlītēja lietotne"</string>
+    <string name="install_type_instant" msgid="3174425974536078647">"Tūlītējā lietotne"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="5605210730828410482">"Vai izslēgt krātuves pārvaldnieku?"</string>
     <string name="storage_movies_tv" msgid="5498394447562086890">"Filmu un TV pārraižu lietotnes"</string>
     <string name="carrier_provisioning" msgid="4398683675591893169">"Informācija par operatora nodrošināšanu"</string>
diff --git a/res/values-mcc262-mnc02/strings.xml b/res/values-mcc262-mnc02/strings.xml
new file mode 100644
index 0000000..17f9272
--- /dev/null
+++ b/res/values-mcc262-mnc02/strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
+    <string name="wifi_calling_off_explanation_2">\n\nYou can\u2019t make emergency calls through Wi-Fi calling. If you try to make an emergency call, your device will automatically use the mobile network. Emergency calls can only be made in areas with mobile network coverage.</string>
+</resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 6f1a4f4..1f76012 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Добар"</item>
     <item msgid="8986346415847956850">"Одличен"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Секогаш"</item>
-    <item msgid="844721238536786870">"Само кога е вклучено"</item>
-    <item msgid="1986753720941888596">"Никогаш"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Секогаш"</item>
-    <item msgid="7433294150916905997">"Само кога е вклучено"</item>
-    <item msgid="1390404486722375028">"Никогаш"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Последните 30 дена"</item>
     <item msgid="6600989128423965319">"Пост. цикл. на корист...."</item>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index c5c208d..f5db0fa 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Сега сте развивач"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Нема потреба, веќе сте развивач"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Исклучи?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Ова ќе ја прекине вашата врска со:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Немате дозвола за промена на поставките на Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> е видлив за уредите во близина кога се отворени Поставки за Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC адреса на Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Исклучи <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Емитување"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Оневозможи профил?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s сака да пристапи кон вашите пораки. Дозволи пристап на %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Побаран е пристап до SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> сака да пристапи до вашата SIM-картичка. Доколку дозволите пристап до SIM-картичката, ќе се исклучи поврзувањето со податоци на уредот сѐ додека трае поврзувањето. Дозволете пристап до <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Другите уреди го гледаат како <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Датум и време"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Избери временска зона"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Подигнете да се активира"</string>
     <string name="doze_title" msgid="2259176504273878294">"Амбиентален екран"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Разбудете го екранот кога ќе примите известувања"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Секогаш вклученa"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Прикажување на времето, икони за известување и други информации"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Големина на фонт"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Намалете го или зголемете го текстот"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Поставки на заклучување на SIM картичка"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Користи <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> треба да:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Бидејќи апликацијата го прикрива барањето за дозвола, Поставките не може да го потврдат вашиот одговор."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"„Поставки“ не може да реагира на вашето дејство, бидејќи друга апликација се прикажува врз опцииве."</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="enable_service_pattern_reason" msgid="777577618063306751">"Со оглед на тоа што вклучувањето <xliff:g id="SERVICE">%1$s</xliff:g> влијае врз шифрирањето податоци, треба да ја потврдите шемата."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Известувања"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Напредни"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Известувања за работен профил"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Дозволете значки на иконите"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Трепкај со сијаличката"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"На заклучениот екран"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Прикажи ја целата содржина од известувањето"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Средно"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Висока"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Итно"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дозволете звук"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дозволете звук"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Прикажувај ги овие апликации на тековниот екран без звук, вибрации или ѕиркање."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Помошник за известувања"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Пристап до известување"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Слика во слика"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Дозволете слика во слика"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Дозволете апликацијава да создава прозорец за слика во слика додека апликацијата е отворена или пак, откако ќе ја напуштите (на пр., за да продолжите со гледање видео). Прозорецот се прикажува врз другите апликации што ги користите."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Да"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Не"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Пристап до „Не вознемирувај“"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ниту една од инсталираните апликации не побарала пристап до „Не вознемирувај“"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Вчитување апликации…"</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Никогаш не прикажувај ги известувањава"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Прикажувај известувања"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Никогаш не прикажувај известувања во сенка или на периферни уреди"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Икона на апликација за значки"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Прикажувај ги известувањата како значки во апликацијата Home, ако е поддржано."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Дозволете значка на икона"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Отфрли го Не вознемирувај"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Оставете ги известувањава да продолжат да прекинуваат кога опцијата Не вознемирувај е поставена на Само приоритетни"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"На заклучениот екран"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Приказ врз други апликации"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g> аплик. имаат дозвола за прикажување врз други апликации"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Апликации со дозвола"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Да"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Не"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Непознати апликации"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"инсталирање апликации непознати извори"</string>
     <string name="write_settings" msgid="4797457275727195681">"Менување поставки на системот"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Дозвола на апликација за менување поставки на систем"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Дозволи менување на поставките на системот"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Оваа дозвола овозможува апликацијата да менува поставки на системот."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Да"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Не"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Дозволено"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Не е дозволено"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Дозволете од изворов"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Завртете двапати за камерата"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Завртете го зглобот двапати за да ја отворите апликација за камера"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"На <xliff:g id="ID_1">%1$s</xliff:g> секој месец"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Ограничувања на мрежата"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ограничување</item>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index 428a516..85d818f 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"നല്ലത്"</item>
     <item msgid="8986346415847956850">"മികച്ചത്"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"എല്ലായ്പ്പോഴും"</item>
-    <item msgid="844721238536786870">"പ്ലഗ്ഗുചെയ്‌തിരിക്കവേ"</item>
-    <item msgid="1986753720941888596">"ഒരിക്കലും"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"എല്ലായ്പ്പോഴും"</item>
-    <item msgid="7433294150916905997">"പ്ലഗ്ഗുചെയ്‌തിരിക്കവേ"</item>
-    <item msgid="1390404486722375028">"ഒരിക്കലും"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"കഴിഞ്ഞ 30 ദിവസം"</item>
     <item msgid="6600989128423965319">"ഉപയോഗ സൈക്കിൾ സജ്ജമാക്കുക..."</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 8a8c3ac..91449da 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"നിങ്ങൾ ഇപ്പോൾ ഒരു ഡവലപ്പറാണ്!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"ആവശ്യമില്ല, നിങ്ങൾ ഇതിനകം ഒരു ഡവലപ്പറാണ്."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"വിച്ഛേദിക്കണോ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ഇത് ഇനിപ്പറയുന്നതുമായുള്ള നിങ്ങളുടെ കണക്ഷൻ അവസാനിപ്പിക്കും:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ബ്ലൂടൂത്ത് ക്രമീകരണങ്ങൾ മാറ്റാൻ നിങ്ങൾക്ക് അനുമതിയില്ല."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth ക്രമീകരണം തുറന്നിരിക്കുമ്പോൾ വിളിപ്പാടരികെയുള്ള ഉപകരണങ്ങൾക്ക് <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ദൃശ്യമാകുന്നു."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC വിലാസം: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> വിച്ഛേദിക്കണോ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"പ്രക്ഷേപണം ചെയ്യുന്നു"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"പ്രൊഫൈൽ പ്രവർത്തനരഹിതമാക്കണോ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s, നിങ്ങളുടെ സന്ദേശങ്ങൾ ആക്‌സസ്സുചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. %2$s എന്നതിലേക്ക് ആക്‌സസ്സ് നൽകണോ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM ആക്‌സസ്സ് അഭ്യർത്ഥന"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ഉപകരണം SIM കാർഡ് ആക്‌സസ്സ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു. SIM കാർഡിലേക്ക് ആക്‌സസ്സ് അനുവദിക്കുന്നത് കണക്ഷന്റെ സമയപരിധിയ്‌ക്കായി ഉപകരണത്തിൽ ഡാറ്റ കണക്റ്റിവിറ്റിയെ പ്രവർത്തനരഹിതമാക്കുന്നതിനിടയാക്കും. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> ഉപകരണത്തിന് ആക്‌സസ്സ് നൽകുക"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"<xliff:g id="DEVICE_NAME">^1</xliff:g> എന്നതായി മറ്റ് ഉപകരണങ്ങൾക്ക് ദൃശ്യമാക്കുക"</string>
     <string name="date_and_time" msgid="9062980487860757694">"തീയതിയും സമയവും"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"സമയ മേഖല തിരഞ്ഞെടുക്കുക"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"സജീവമാക്കാൻ ലിഫ്റ്റുചെയ്യുക"</string>
     <string name="doze_title" msgid="2259176504273878294">"അറിയിപ്പിനു സ്ക്രീൻ ഓണാക്കുക"</string>
     <string name="doze_summary" msgid="3846219936142814032">"നിങ്ങൾക്ക് അറിയിപ്പുകൾ ലഭിക്കുന്ന സമയത്ത് സ്ക്രീൻ സജീവമാക്കുക"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"എല്ലായ്‌പ്പോഴും ഓണാണ്"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"സമയം, അറിയിപ്പ് ഐക്കണുകൾ എന്നിവയും മറ്റ് വിവരങ്ങളും കാണിക്കുക"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ഫോണ്ട് വലുപ്പം"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ടെക്സ്റ്റ് ചെറുതോ വലുതോ ആക്കുക"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"സിം കാർഡ് ലോക്ക് ക്രമീകരണങ്ങൾ"</string>
@@ -1189,7 +1197,7 @@
     <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_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_detail_apps" msgid="6141154016753507490">"ആപ്സ്"</string>
@@ -1544,7 +1552,7 @@
     <string name="default_emergency_app" msgid="1951760659640369980">"അടിയന്തിര അപ്ലിക്കേഷൻ"</string>
     <string name="reset_app_preferences" msgid="1321050641018356925">"ആപ്പ് മുൻഗണന പുനഃജ്ജമാക്കൂ"</string>
     <string name="reset_app_preferences_title" msgid="6093179367325336662">"അപ്ലിക്കേഷൻ മുൻഗണനകൾ പുനഃസജ്ജമാക്കണോ?"</string>
-    <string name="reset_app_preferences_desc" msgid="4822447731869201512">"ഇത് ഇനിപ്പറയുന്നവയ്‌ക്കുള്ള എല്ലാ മുൻഗണനകളും പുനഃസജ്ജമാക്കും:\n\n "<li>"പ്രവർത്തനരഹിതമാക്കിയ ആപ്സുകൾ"</li>\n" "<li>"പ്രവർത്തനരഹിതമാക്കിയ ആപ്സ് അറിയിപ്പുകൾ"</li>\n" "<li>"പ്രവർത്തനങ്ങൾക്കുള്ള ഡിഫോൾട്ട് ആപ്സുകൾ"</li>\n" "<li>"ആപ്സുകൾക്കുള്ള പശ്ചാത്തല ഡാറ്റാ നിയന്ത്രണങ്ങൾ"</li>\n" "<li>"എല്ലാ അനുമതി നിയന്ത്രണങ്ങളും"</li>\n\n" നിങ്ങൾക്ക് ആപ്സ് ഡാറ്റയൊന്നും നഷ്‌ടമാകില്ല."</string>
+    <string name="reset_app_preferences_desc" msgid="4822447731869201512">"ഇത് ഇനിപ്പറയുന്നവയ്‌ക്കുള്ള എല്ലാ മുൻഗണനകളും പുനഃസജ്ജമാക്കും:\n\n "<li>"പ്രവർത്തനരഹിതമാക്കിയ ആപ്പുകൾ"</li>\n" "<li>"പ്രവർത്തനരഹിതമാക്കിയ ആപ്സ് അറിയിപ്പുകൾ"</li>\n" "<li>"പ്രവർത്തനങ്ങൾക്കുള്ള ഡിഫോൾട്ട് ആപ്പുകൾ"</li>\n" "<li>"ആപ്പുകൾക്കുള്ള പശ്ചാത്തല ഡാറ്റാ നിയന്ത്രണങ്ങൾ"</li>\n" "<li>"എല്ലാ അനുമതി നിയന്ത്രണങ്ങളും"</li>\n\n" നിങ്ങൾക്ക് ആപ്സ് ഡാറ്റയൊന്നും നഷ്‌ടമാകില്ല."</string>
     <string name="reset_app_preferences_button" msgid="2559089511841281242">"ആപ്സ് പുനഃസജ്ജമാക്കൂ"</string>
     <string name="manage_space_text" msgid="8852711522447794676">"സ്‌പെയ്സ് നിയന്ത്രിക്കുക"</string>
     <string name="filter" msgid="2018011724373033887">"ഫിൽട്ടർ ചെയ്യുക"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> ഉപയോഗിക്കണോ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> എന്നതിന് ഇവ ആവശ്യമാണ്:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"അനുമതി അഭ്യർത്ഥനയെ ഒരു അപ്ലിക്കേഷൻ മറയ്‌ക്കുന്നതിനാൽ, ക്രമീകരണത്തിന് നിങ്ങളുടെ പ്രതികരണം പരിശോധിച്ചുറപ്പിക്കാനാകില്ല."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ഈ ഓപ്‌ഷനുകളുടെ മുകളിൽ മറ്റൊരു ആപ്പ് ദൃശ്യമാകുന്നതിനാൽ, ക്രമീകരണത്തിന് നിങ്ങളുടെ നടപടിയോട് പ്രതികരിക്കാനാവില്ല."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> ഓണാക്കുന്നത് ഡാറ്റ എൻക്രിപ്‌ഷനെ ബാധിക്കുന്നതിനാൽ, നിങ്ങളുടെ പാറ്റേൺ സ്ഥിരീകരിക്കേണ്ടതുണ്ട്."</string>
@@ -2170,8 +2177,8 @@
     <string name="backup_configure_account_default_summary" msgid="2436933224764745553">"നിലവിൽ അക്കൗണ്ടുകളൊന്നും ബാക്കപ്പ് ചെയ്ത ഡാറ്റ സംഭരിക്കുന്നില്ല"</string>
     <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
     <string name="backup_erase_dialog_message" msgid="5221011285568343155">"Google സെർവറുകളിൽ നിങ്ങളുടെ വൈഫൈ പാസ്‌വേഡുകൾ, ബുക്ക്‌മാർക്കുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ, അപ്ലിക്കേഷൻ ഡാറ്റ എന്നിവ ബാക്കപ്പുചെയ്യുന്നത് അവസാനിപ്പിക്കുകയും അതിലെ എല്ലാ പകർപ്പുകളും മായ്‌ക്കുകയും ചെയ്യണോ?"</string>
-    <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ഉപകരണ വിവരവും (വൈഫൈ പാസ്‌വേഡുകളും കോൾ ചരിത്രവും പോലുള്ളവ) ആപ്പ് വിവരവും (ആപ്പ്‌സ് സംഭരിച്ച ക്രമീകരണവും ഫയലുകളും പോലുള്ളവ) ബാക്കപ്പുചെയ്യുന്നത് നിർത്തുകയും വിദൂര സെർവറുകളിലെ എല്ലാ പകർപ്പുകളും മായ്‌ക്കുകയും ചെയ്യണോ?"</string>
-    <string name="fullbackup_data_summary" msgid="960850365007767734">"ഉപകരണ വിവരവും (വൈഫൈ പാസ്‌വേഡുകളും കോൾ ചരിത്രവും പോലുള്ളവ) ആപ്പ് വിവരവും (ക്രമീകരണവും ആപ്പ്‌സ് സംഭരിച്ച ഫയലുകളും പോലുള്ളവ) വിദൂരമായി സ്വയമേവ ബാക്കപ്പെടുക്കുന്നു.\n\nനിങ്ങൾ സ്വയമേയുള്ള ബാക്കപ്പ് ഓണാക്കുമ്പോൾ, ഉപകരണ, ആപ്പ് വിവരം ഇടയ്‌ക്കിടെ വിദൂരമായി സംരക്ഷിക്കും. ആപ്പ് വിവരം എന്നത് കോൺടാക്റ്റുകൾ, സന്ദേശങ്ങൾ, ഫോട്ടോകൾ എന്നിവ പോലുള്ള രഹസ്യസ്വഭാവമുള്ളവ ഉൾപ്പെടെ ആപ്പ് സംരക്ഷിച്ചിട്ടുള്ള ഏതൊരു വിവരവും (ഡെവലപ്പർ ക്രമീകരണം അടിസ്ഥാനമാക്കി) ആകാം."</string>
+    <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"ഉപകരണ വിവരവും (വൈഫൈ പാസ്‌വേഡുകളും കോൾ ചരിത്രവും പോലുള്ളവ) ആപ്പ് വിവരവും (ആപ്പുകൾ സംഭരിച്ച ക്രമീകരണവും ഫയലുകളും പോലുള്ളവ) ബാക്കപ്പുചെയ്യുന്നത് നിർത്തുകയും വിദൂര സെർവറുകളിലെ എല്ലാ പകർപ്പുകളും മായ്‌ക്കുകയും ചെയ്യണോ?"</string>
+    <string name="fullbackup_data_summary" msgid="960850365007767734">"ഉപകരണ വിവരവും (വൈഫൈ പാസ്‌വേഡുകളും കോൾ ചരിത്രവും പോലുള്ളവ) ആപ്പ് വിവരവും (ക്രമീകരണവും ആപ്പുകൾ സംഭരിച്ച ഫയലുകളും പോലുള്ളവ) വിദൂരമായി സ്വയമേവ ബാക്കപ്പെടുക്കുന്നു.\n\nനിങ്ങൾ സ്വയമേയുള്ള ബാക്കപ്പ് ഓണാക്കുമ്പോൾ, ഉപകരണ, ആപ്പ് വിവരം ഇടയ്‌ക്കിടെ വിദൂരമായി സംരക്ഷിക്കും. ആപ്പ് വിവരം എന്നത് കോൺടാക്റ്റുകൾ, സന്ദേശങ്ങൾ, ഫോട്ടോകൾ എന്നിവ പോലുള്ള രഹസ്യസ്വഭാവമുള്ളവ ഉൾപ്പെടെ ആപ്പ് സംരക്ഷിച്ചിട്ടുള്ള ഏതൊരു വിവരവും (ഡെവലപ്പർ ക്രമീകരണം അടിസ്ഥാനമാക്കി) ആകാം."</string>
     <string name="device_admin_settings_title" msgid="4960761799560705902">"ഉപകരണ അഡ്‌മിൻ ക്രമീകരണം"</string>
     <string name="active_device_admin_msg" msgid="578748451637360192">"ഉപകരണ അഡ്‌മിൻ ആപ്പ്"</string>
     <string name="remove_device_admin" msgid="9207368982033308173">"ഈ ഉപകരണ അഡ്‌മിൻ ആപ്പ് നിർജീവമാക്കുക"</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"അറിയിപ്പുകൾ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"വിപുലമായത്"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ഔദ്യോഗിക അറിയിപ്പുകൾ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ഐക്കൺ ബാഡ്‌ജുകൾ അനുവദിക്കുക"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ലൈറ്റ് മിന്നുക"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ലോക്ക് സ്ക്രീനിൽ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"എല്ലാ അറിയിപ്പുകളും കാണിക്കുക"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"ഇടത്തരം"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ഉയർന്ന പ്രാധാന്യം"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"അടിയന്തിരാവശ്യം"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ശ‌ബ്‌ദം അനുവദിക്കുക"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ശ‌ബ്‌ദം അനുവദിക്കുക"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ഈ അറിയിപ്പുകൾ ശബ്ദമുണ്ടാക്കുകയോ വൈബ്രേറ്റുചെയ്യുകയോ നിലവിലെ സ്ക്രീനിലെ കാഴ്ചയിൽ കാണിക്കുകയോ അരുത്."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"അറിയിപ്പ് സഹായി"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"അറിയിപ്പ് ക്രമീകരണം"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ചിത്രത്തിനുള്ളിൽ ചിത്രം"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ചിത്രത്തിനുള്ളിൽ ചിത്രം അനുവദിക്കുക"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ഈ ആപ്പ് തുറന്നിരിക്കുന്ന സമയത്തോ നിങ്ങളത് വിട്ടുകഴിഞ്ഞാലോ (ഉദാഹരണത്തിന്, ഒരു വീഡിയോ കാണുന്നത് തുടരുന്നതിന്) ഒരു ചിത്രത്തിനുള്ളിൽ ചിത്ര വിൻഡോ സൃഷ്ടിക്കാൻ ഈ ആപ്പിനെ അനുവദിക്കുക. നിങ്ങൾ ഉപയോഗിക്കുന്ന മറ്റ് ആപ്‌സിന്റെ മുകളിൽ ഈ വിൻഡോ പ്രദർശിപ്പിക്കുന്നു."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"അതെ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ഇല്ല"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\'ശല്യപ്പെടുത്തരുത്\' ആക്‌സസ്സ്"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ഇൻസ്റ്റാളുചെയ്‌തവയൊന്നും \'ശല്യപ്പെടുത്തരുത്\' മോഡിൽ പ്രവേശിക്കാൻ അഭ്യർത്ഥിച്ചിട്ടില്ല"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"അപ്ലിക്കേഷനുകൾ ലോഡുചെയ്യുന്നു..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ഈ അറിയിപ്പുകൾ ഒരിക്കലും കാണിക്കരുത്"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"അറിയിപ്പുകൾ കാണിക്കുക"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ഷെയ്‌ഡിലോ പെരിഫെറൽ ഉപകരണങ്ങളിലോ ഒരിക്കലും അറിയിപ്പുകൾ കാണിക്കരുത്"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ബാഡ്‌ജ് ആപ്പ് ഐക്കൺ"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"പിന്തുണയുണ്ടെങ്കിൽ, ഹോം ആപ്പിൽ ബാഡ്‌ജുകളായി അറിയിപ്പുകൾ കാണിക്കുക."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ഐക്കൺ ബാഡ്‌ജ് അനുവദിക്കുക"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\'ശല്യപ്പെടുത്തരുത്\' അസാധുവാക്കുക"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"\'മുൻഗണനയുള്ളവ മാത്രം\' എന്നതിലേക്ക് \'ശല്യപ്പെടുത്തരുത്\' സജ്ജമാക്കിയിട്ടുള്ളപ്പോൾ തടസ്സപ്പെടുത്തുന്നത് തുടരാൻ ഈ അറിയിപ്പുകളെ അനുവദിക്കുക"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ലോക്ക് സ്ക്രീനിൽ"</string>
@@ -3165,7 +3170,7 @@
     <string name="total_memory" msgid="2017287600738630165">"ആകെ മെമ്മറി"</string>
     <string name="average_used" msgid="5338339266517245782">"ശരാശരി ഉപയോഗിച്ചത് (%)"</string>
     <string name="free_memory" msgid="4003936141603549746">"ശേഷിക്കുന്നത്"</string>
-    <string name="memory_usage_apps" msgid="5650192998273294098">"ആപ്പ്‌സ് ഉപയോഗിച്ച മെമ്മറി"</string>
+    <string name="memory_usage_apps" msgid="5650192998273294098">"ആപ്പുകൾ ഉപയോഗിച്ച മെമ്മറി"</string>
     <plurals name="memory_usage_apps_summary" formatted="false" msgid="6089210945574265774">
       <item quantity="other">കഴിഞ്ഞ <xliff:g id="DURATION_1">%2$s</xliff:g> സമയത്തിനുള്ളിൽ <xliff:g id="COUNT">%1$d</xliff:g> ആപ്പുകൾ മെമ്മറി ഉപയോഗിച്ചു</item>
       <item quantity="one">കഴിഞ്ഞ <xliff:g id="DURATION_0">%2$s</xliff:g> സമയത്തിനുള്ളിൽ ഒരു ആപ്പ് മെമ്മറി ഉപയോഗിച്ചു</item>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"മറ്റ് ആപ്‌സിന് മുകളിൽ പ്രദർശിപ്പിക്കുക"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"മറ്റ് ആപ്‌സിന് മുകളിൽ പ്രദർശിപ്പിക്കാൻ <xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g> ആപ്‌സിനെ അനുവദിച്ചു"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"അനുമതിയുള്ള ആപ്സ്"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ഉണ്ട്"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ഇല്ല"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"അറിഞ്ഞുകൂടാത്ത ആപ്‌സ് ഇൻസ്റ്റാളുചെയ്യുക"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"തിരിച്ചറിയാനാകാത്ത ഉറവിടങ്ങളിൽ നിന്നുള്ള ആപ്‌സ് ഇൻസ്റ്റാൾ ചെയ്യുക"</string>
     <string name="write_settings" msgid="4797457275727195681">"സിസ്റ്റം ക്രമീകരണങ്ങൾ പരിഷ്‌ക്കരിക്കുക"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"സിസ്റ്റം ക്രമീകരണ അനുമതിയെ ആപ്പ് പരിഷ്കരിക്കുന്നു"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"സിസ്റ്റം ക്രമീകരണം പരിഷ്കരിക്കുന്നത് അനുവദിക്കുക"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"സിസ്റ്റം ക്രമീകരണം പരിഷ്കരിക്കുന്നതിന് ഒരു ആപ്പിനെ ഈ അനുമതി അനുവദിക്കുന്നു."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"അതെ"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ഇല്ല"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"അനുവദനീയം"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"അനുവദിച്ചിട്ടില്ല"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ഈ ഉറവിടത്തിൽ നിന്ന് അനുവദിക്കുക"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ക്യാമറയ്ക്കായി രണ്ടുതവണ തിരിക്കുക"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"നിങ്ങളുടെ കൈത്തണ്ട രണ്ടുപ്രാവശ്യം തിരിച്ചുകൊണ്ട് ക്യാമറാ ആപ്പ് തുറക്കുക"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"എല്ലാ മാസവും <xliff:g id="ID_1">%1$s</xliff:g>-മത്തെ ദിവസം"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"നെറ്റ്‌വർക്ക് നിയന്ത്രണം"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> നിയന്ത്രണങ്ങൾ</item>
diff --git a/res/values-mn-nokeys/strings.xml b/res/values-mn-nokeys/strings.xml
index e86703e..48daf22 100644
--- a/res/values-mn-nokeys/strings.xml
+++ b/res/values-mn-nokeys/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applications_settings_summary" msgid="6616938758022986257">"Аппликешн удирдах"</string>
+    <string name="applications_settings_summary" msgid="6616938758022986257">"Аппликейшн удирдах"</string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 32550f5..039d16a 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Сайн"</item>
     <item msgid="8986346415847956850">"Маш сайн"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Байнга"</item>
-    <item msgid="844721238536786870">"Зөвхөн залгасан үед"</item>
-    <item msgid="1986753720941888596">"Хэзээ ч үгүй"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Байнга"</item>
-    <item msgid="7433294150916905997">"Зөвхөн залгасан үед"</item>
-    <item msgid="1390404486722375028">"Хэзээ ч үгүй"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Сүүлийн 30 өдөр"</item>
     <item msgid="6600989128423965319">"Ашиглалтын циклийг тохируулах..."</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 6da9e26..7dce22d 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Та одоо хөгжүүлэгч боллоо!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Шаардлагагүй, та аль хэдийн хөгжүүлэгч болсон."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Утасгүй &amp; сүлжээ"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Холболтууд"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Төхөөрөмж"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Салгах уу?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Энэ таныг дараах холболтоос салгах болно:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Танд Bluetooth тохиргоог өөрчлөх зөвшөөрөл байхгүй байна."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> нь Bluetooth асаалттай үед ойрхон байгаа бусад төхөөрөмжүүдэд харагдана."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC хаяг: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>-г салгах уу?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Цацалт"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Профайлыг идэвхгүйжүүлэх үү?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s таны зурвасуудад хандалт хийх хүсэлтэй байна. %2$s-д хандалт хийхийг зөвшөөрөх үү?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"СИМ хандалтын хүсэлт"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> нь таны СИМ картанд хандах хүсэлтэй байна. СИМ картанд хандалтыг нээж өгснөөр холболтын хугацааны туршид төхөөрөмжийн дата холболтыг идэвхгүй болгоно. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>-д хандалтыг нээх"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Бусад төхөөрөмжид <xliff:g id="DEVICE_NAME">^1</xliff:g>-р харагдана"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Огноо &amp; цаг"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Цагийн бүсийг сонгоно уу"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Сэрээхийн тулд өргөх"</string>
     <string name="doze_title" msgid="2259176504273878294">"Орчинтой тохирсон дэлгэц"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Дэлгэцийг мэдэгдэл авсан үедээ сэрээх"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Байнга асаалттай"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Цаг, мэдэгдлийн дүрс тэмдэг, бусад мэдээллийг харуулах"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Фонтын хэмжээ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Текстийг том эсвэл жижиг болгох"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM картын түгжээний тохиргоо"</string>
@@ -1351,7 +1359,7 @@
     <string name="manage_mobile_plan_title" msgid="7630170375010107744">"Мобайл төлбөрийн багц"</string>
     <string name="sms_application_title" msgid="4903928270533250448">"SMS апп"</string>
     <string name="sms_change_default_dialog_title" msgid="1958688831875804286">"SMS апп-г өөрчлөх үү?"</string>
-    <string name="sms_change_default_dialog_text" msgid="1522783933230274787">"Таны үндсэн SMS аппликешнээр <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд <xliff:g id="NEW_APP">%1$s</xliff:g>-г ашиглах уу?"</string>
+    <string name="sms_change_default_dialog_text" msgid="1522783933230274787">"Таны үндсэн SMS аппликейшнээр <xliff:g id="CURRENT_APP">%2$s</xliff:g>-н оронд <xliff:g id="NEW_APP">%1$s</xliff:g>-г ашиглах уу?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="602683880284921998">"<xliff:g id="NEW_APP">%s</xliff:g>-г таны SMS апп-р ашиглах уу?"</string>
     <string name="network_scorer_picker_title" msgid="6383879578279046456">"Сүлжээний үнэлгээ харуулагч"</string>
     <string name="network_scorer_picker_none_preference" msgid="9028375117241790936">"Аль нь ч биш"</string>
@@ -1475,7 +1483,7 @@
     <string name="lockpattern_settings_change_lock_pattern" msgid="1123908306116495545">"Тайлах хээг өөрчлөх"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="2614673439060830433">"Тайлах загварыг хэрхэн зурах вэ"</string>
     <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="6909161623701848863">"Хэт олон удаа буруу оруулсан байна. <xliff:g id="NUMBER">%d</xliff:g> секундын дараа дахин оролдоно уу."</string>
-    <string name="activity_not_found" msgid="5551664692991605325">"Таны утсан дээр аппликешн суугаагүй байна."</string>
+    <string name="activity_not_found" msgid="5551664692991605325">"Таны утсан дээр аппликейшн суугаагүй байна."</string>
     <string name="lock_settings_profile_title" msgid="2121876391814535295">"Ажлын профайлын аюулгүй байдал"</string>
     <string name="lock_settings_profile_screen_lock_title" msgid="3334747927367115256">"Ажлын профайлын дэлгэцийн түгжээ"</string>
     <string name="lock_settings_profile_unification_title" msgid="4973102698492659123">"Нэг түгжээ ашиглах"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g>-г ашиглах уу?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> шаардлага:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Апп нь зөвшөөрөл авах хүсэлтийг танихгүй байгаа тул Тохиргооноос таны хариултыг баталгаажуулж чадахгүй байна."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Өөр апп эдгээр сонголтын дээр гарч ирж байгаа тул таны тохиргоог хийх боломжгүй байна."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>-г асаах нь дата шифрлэлтэд нөлөөлөх учир та хээгээ баталгаажуулах шаардлагатай."</string>
@@ -2092,7 +2099,7 @@
     <string name="voice_service_preference_section_title" msgid="3778706644257601021">"Дуун оруулгын үйлчилгээ"</string>
     <string name="voice_interactor_preference_summary" msgid="1801414022026937190">"Бүрэн хотворд болон харилцан үйлчлэл"</string>
     <string name="voice_recognizer_preference_summary" msgid="669880813593690527">"Энгийн яриаг текст болголт"</string>
-    <string name="voice_interaction_security_warning" msgid="6378608263983737325">"Энэ дуун оруулгын үйлчилгээ нь дуун хяналтыг байнга ажиллуулах болон дуугаар ажиллах апп-уудыг таны өмнөөс хянах боломжтой болно.Үүнийг <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> аппликешн нийлүүлдэг. Энэ үйлчилгээг идэвхжүүлэх үү?"</string>
+    <string name="voice_interaction_security_warning" msgid="6378608263983737325">"Энэ дуун оруулгын үйлчилгээ нь дуун хяналтыг байнга ажиллуулах болон дуугаар ажиллах апп-уудыг таны өмнөөс хянах боломжтой болно.Үүнийг <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> аппликейшн нийлүүлдэг. Энэ үйлчилгээг идэвхжүүлэх үү?"</string>
     <string name="tts_engine_preference_title" msgid="1578826947311494239">"Давуу хөдөлгүүр"</string>
     <string name="tts_engine_settings_title" msgid="6886964122861384818">"Хөдөлгүүрийн тохиргоо"</string>
     <string name="tts_sliders_title" msgid="992059150784095263">"Ярианы түвшин, өнгө"</string>
@@ -2548,7 +2555,7 @@
     <string name="emergency_info_summary" msgid="5062945162967838521">"<xliff:g id="USER_NAME">%1$s</xliff:g>-н мэдээлэл, харилцагч"</string>
     <string name="application_restrictions" msgid="8207332020898004394">"Апп болон агуулгыг зөвшөөрөх"</string>
     <string name="apps_with_restrictions_header" msgid="3660449891478534440">"Хязгаарлалттай аппликешнүүд"</string>
-    <string name="apps_with_restrictions_settings_button" msgid="3841347287916635821">"Аппликешний тохиргоог дэлгэх"</string>
+    <string name="apps_with_restrictions_settings_button" msgid="3841347287916635821">"Аппликейшний тохиргоог дэлгэх"</string>
     <string name="global_change_warning" product="tablet" msgid="8045013389464294039">"Энэ тохиргоо энэ таблетын бүх хэрэглэгчид хамаарна."</string>
     <string name="global_change_warning" product="default" msgid="2461264421590324675">"Энэ тохиргоо энэ утасны бүх хэрэглэгчид хамаарна."</string>
     <string name="global_locale_change_title" msgid="5956281361384221451">"Хэл солих"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Мэдэгдэл"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Нарийвчилсан"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Ажлын мэдэгдэл"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Дүрс тэмдгийг зөвшөөрөх"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Анивчих гэрэл"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Түгжигдсэн дэлгэц дээр"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Бүх мэдэгдлийн агуулгыг харуулах"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Дунд"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Их"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Яаралтай"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дууг зөвшөөрөх"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дууг зөвшөөрөх"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Эдгээр мэдэгдлүүдийг одоогийн дэлгэцэд харахдаа дуугүй, чичиргээгүй болон яаралтай гаргаж ирэхгүй болгож тохируулна уу."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Мэдэгдлийн туслагч"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Мэдэгдлийн хандалт"</string>
@@ -2840,8 +2848,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Зураг доторх зураг"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Зураг доторх зургийг зөвшөөрөх"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Апп нээлттэй эсвэл таныг энэ апп-с гарсны дараа (жишээ нь видео үргэлжлүүлэн үзэхийн тулд) зураг доторх зургийн цонх үүсгэхийг энэ аппад зөвшөөрнө үү. Энэ цонх нь таны ашиглаж буй бусад аппын дээр харагдана."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Тийм"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Үгүй"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"Бүү саад бол\" хандалт"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Суулгасан апп-аас \"Бүү саад бол\" хандалтыг хүссэн апп байхгүй байна."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Апп-уудыг ачаалж байна..."</string>
@@ -2867,8 +2873,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Эдгээр мэдэгдлийг хэзээ ч харуулахгүй"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Мэдэгдэл харуулах"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Мэдэгдлийг сүүдэрт, эсвэл захын төхөөрөмжид хэзээ ч харуулахгүй"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Тэмдгийн аппын дүрс тэмдэг"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Мэдэгдлийг дэмжсэн үед Нүүр апп-д тэмдэг болгон харуулах."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Дүрс тэмдгийг зөвшөөрөх"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\"Бүү саад бол\"-г дарах"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"\"Бүү саад бол\" горимыг \"Зөвхөн Тэргүүлэх ач холбогдолтой\" болгон тохируулсан үед эдгээр мэдэгдэл үргэлжлэн саад болохыг зөвшөөрнө үү."</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Түгжигдсэн дэлгэц дээр"</string>
@@ -3195,8 +3200,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Бусад апп дээр харуулах"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> аппын <xliff:g id="COUNT_0">%1$d</xliff:g>-г бусад апп дээр харуулахыг зөвшөөрсөн"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Зөвшөөрөлтэй Апп"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Тийм"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Үгүй"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Тодорхойгүй апп суулгах"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"тодорхойгүй эх сурвалжаас апп суулгах"</string>
     <string name="write_settings" msgid="4797457275727195681">"Системийн тохиргоо өөрчлөх"</string>
@@ -3209,10 +3216,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Апп-ын системийн тохиргоо өөрчлөх зөвшөөрөл"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Системийн тохиргоо өөрчлөхийг зөвшөөрөх"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Энэ нь апп-д системийн тохиргоог өөрчлөхийг зөвшөөрдөг."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Тийм"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Үгүй"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Зөвшөөрсөн"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Зөвшөөрөөгүй"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Энэ эх сурвалжаас зөвшөөрөх"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Камер нээхийн тулд бугуйгаа 2 удаа эргүүлэх"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Бугуйгаа 2 удаа эргүүлэн камерын аппыг нээгээрэй"</string>
@@ -3307,8 +3310,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Сар бүрийн <xliff:g id="ID_1">%1$s</xliff:g>-д"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Сүлжээний хязгаарлалт"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> хязгаарлалт</item>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index d7d49c0..3940dab 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"उत्तम"</item>
     <item msgid="8986346415847956850">"उत्कृष्ट"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"नेहमी"</item>
-    <item msgid="844721238536786870">"फक्त प्लग इन केलेले असते तेव्हा"</item>
-    <item msgid="1986753720941888596">"कधीही नाही"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"नेहमी"</item>
-    <item msgid="7433294150916905997">"फक्त प्लग इन केलेले असते तेव्हा"</item>
-    <item msgid="1390404486722375028">"कधीही नाही"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"अंतिम 30 दिवस"</item>
     <item msgid="6600989128423965319">"वापर चक्र सेट करा..."</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 4000741..71f13a1 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"आता आपण एक विकासक आहात!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"आवश्यकता नाही, आपण आधीपासून एक विकासक आहात."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"‍डिस्कनेक्ट करायचे?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"हे यासह आपले कनेक्शन समाप्त करेल:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"आपल्‍याकडे ब्लूटुथ सेटिंग्‍ज बदलण्‍याची परवानगी नाही."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ब्लूटुथ सेटिंग्ज उघड्या असताना जवळपासच्या डिव्हाइसेसवर <xliff:g id="DEVICE_NAME">%1$s</xliff:g> दृश्यमान असते."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ब्लूटूथ MAC अॅड्रेस: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> डिस्कनेक्ट करायचे?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"प्रसारण"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"प्रोफाईल अक्षम करायचे?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ला आपल्या संदेशामध्ये प्रवेश करण्याची आवश्यकता आहे. %2$s ला प्रवेश करण्याची अनुमती द्यायची?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"सिम प्रवेश विनंती"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपल्या सिम कार्डवर प्रवेश करू इच्छित आहे. सिम कार्डवर प्रवेश मंजूर केल्यामुळे कनेक्शनच्या कालावधीसाठी आपल्या डिव्हाइसवरील डेटा कनेक्टिव्हिटी अक्षम होईल. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> वर प्रवेश द्या"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"अन्‍य डिव्‍हाइसवर <xliff:g id="DEVICE_NAME">^1</xliff:g> म्‍हणून दृश्‍यमान"</string>
     <string name="date_and_time" msgid="9062980487860757694">"तारीख आणि वेळ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"टाइम झोन निवडा"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"सक्रिय करण्‍यासाठी लिफ्‍ट"</string>
     <string name="doze_title" msgid="2259176504273878294">"अँबियन्ट प्रदर्शन"</string>
     <string name="doze_summary" msgid="3846219936142814032">"सूचना प्राप्त केल्यावर स्क्रीन सक्रिय करा"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"नेहमी चालू"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"वेळ, सूचना चिन्‍हे आणि इतर माहिती दाखवा"</string>
     <string name="title_font_size" msgid="4405544325522105222">"फॉन्ट आकार"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"मजकूर आणखी मोठा किंवा आणखी लहान करा"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"सिम कार्ड लॉक सेटिंग्ज"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> वापरायचे?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"यासाठी <xliff:g id="SERVICE">%1$s</xliff:g> आवश्यक आहे:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"अ‍ॅप परवानगी विनंती अस्पष्‍ट करीत असल्‍याने, सेटिंग्ज आपला प्रतिसाद सत्यापित करू शकत नाहीत."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"या पर्यायांच्‍यावर दुसरे अॅप प्रदर्शित होत असल्याने, सेटिंग्ज आपल्या क्रियेला प्रतिसाद देऊ शकत नाहीत."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्यामुळे डेटा कूटबद्धीकरण प्रभावित होते, आपल्याला आपल्या नमुन्याची पुष्टी करण्याची आवश्यकता आहे."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"सूचना"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"प्रगत"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"कार्य सूचना"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"चिन्‍ह बॅजना अनुमती द्या"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"लुकलुकता प्रकाश"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"लॉक स्क्रीनवर"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सर्व सूचना सामग्री दर्शवा"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"मध्‍यम"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"जास्त"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"तातडीचे"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ध्वनीला अनुमती द्या"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ध्वनीला अनुमती द्या"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ध्वनी, कंपन करू नका किंवा वर्तमान स्क्रीनवर दृश्यामध्ये या सूचना दर्शवू नका."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"सूचना सहाय्यक"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"सूचना प्रवेश"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"चित्रा मध्‍ये चित्र"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"चित्रामध्‍ये चित्राची अनुमती द्या"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"अ‍ॅप खुले असताना किंवा आपण ते सोडल्यानंतर या अ‍ॅपला चित्रामध्ये चित्र विंडो तयार करण्याची अनुमती द्या (उदाहरणार्थ, व्हिडिओ पाहणे सुरू ठेवणे). ही विंडो आपण वापरत असलेल्या इतर अ‍ॅप्सच्या वर प्रदर्शित होते."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"होय"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"नाही"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"व्यत्यय आणू नका प्रवेश"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"कोणत्याही स्थापित केलेल्या अॅप्सने व्यत्यय आणू नका प्रवेशाची विनंती केली नाही"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"अॅप्स लोड करीत आहे..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"या सूचना कधीही दर्शवू नका"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"सूचना दर्शवा"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"सूचना कधीही रंगछटांंमध्ये किंवा डिव्हाइसच्या किनारीवर दर्शवू नका"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"बॅज अॅप चिन्ह"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"समर्थित असल्यास, मुख्यपृष्ठ अॅपवर सूचना बॅज म्हणून दर्शवा."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"चिन्ह बॅजला अनुमती द्या"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"व्यत्यय आणू नका अधिशून्य करा"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"व्यत्यय आणू नका केवळ प्राधान्यावर सेट केले असते तेव्‍हा या सूचनांना व्यत्यय आणणे सुरु ठेवू द्या"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"लॉक स्क्रीनवर"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"इतर अ‍ॅप्सच्या वर प्रदर्शित करा"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> पैकी <xliff:g id="COUNT_0">%1$d</xliff:g> अ‍ॅप्सना इतर अ‍ॅप्सच्या वर प्रदर्शित होण्याची अनुमती"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"परवानगी असलेले अ‍ॅप्स"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"होय"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"नाही"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"अज्ञात अ‍ॅप्स स्थापित करा"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"अज्ञात स्रोत अ‍ॅप्स स्थापित करा"</string>
     <string name="write_settings" msgid="4797457275727195681">"सिस्टम सेटिंग्ज सुधारित करा"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"अॅप सिस्‍टीम सेटिंग्ज परवानगी सुधारित करतो"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"सिस्‍टीम सेटिंग्ज सुधारित करण्‍याची अनुमती द्या"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ही परवानगी अॅपला सिस्टीम सेटिंग्ज सुधारित करण्‍याची अनुमती देते."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"होय"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"नाही"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"अनुमती आहे"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"अनुमती नाही"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"या स्त्रोतातून अनुमती द्या"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"कॅमेर्‍यासाठी दोनदा वळवा"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"आपले मनगट दोनदा वळवून कॅमेरा अॅप उघडा"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"दरमहा <xliff:g id="ID_1">%1$s</xliff:g> रोजी"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"नेटवर्क प्रतिबंध"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> निर्बंध</item>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 45beac6..cca58e6 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bagus"</item>
     <item msgid="8986346415847956850">"Sangat baik"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sentiasa"</item>
-    <item msgid="844721238536786870">"Hanya apabila dipalamkan"</item>
-    <item msgid="1986753720941888596">"Jangan sekali-kali"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sentiasa"</item>
-    <item msgid="7433294150916905997">"Hanya apabila dipasang"</item>
-    <item msgid="1390404486722375028">"Jangan sekali-kali"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 hari terakhir"</item>
     <item msgid="6600989128423965319">"Ttpkn kitar penggunaan..."</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 251b7c6..aa1bc08 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Anda kini pemaju!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Tidak perlu, anda sudah pun menjadi pembangun."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wayarles &amp; rangkaian"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Sambungan"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Peranti"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Putuskan sambungan?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tindakan ini akan menamatkan sambungan anda dengan:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Anda tidak mempunyai kebenaran untuk menukar tetapan Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kelihatan kepada peranti yang berhampiran semasa tetapan Bluetooth dibuka."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Alamat MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Putuskan sambungan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Penyiaran"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Lumpuhkan profil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ingin mengakses mesej anda. Berikan akses kepada %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Permintaan akses SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> mahu mengakses kad SIM anda. Pemberian akses kepada kad SIM akan melumpuhkan sambungan data pada peranti anda untuk tempoh sambungan itu. Berikan akses kepada <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Kelihatan kepada peranti lain sebagai <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Tarikh &amp; masa"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Pilih zon masa"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Angkat untuk bangunkan"</string>
     <string name="doze_title" msgid="2259176504273878294">"Paparan ambien"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Aktifkan skrin apabila anda menerima pemberitahuan"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sentiasa hidup"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Tunjukkan masa, ikon pemberitahuan dan maklumat lain"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Saiz fon"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Besarkan atau kecilkan teks"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Tetapan kunci kad SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Gunakan <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> perlu:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Oleh sebab apl melindungi permintaan kebenaran, Tetapan tidak dapat mengesahkan jawapan anda."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Tetapan tidak dapat bertindak balas terhadap tindakan anda kerana apl lain sedang dipaparkan di atas pilihan ini."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Jika anda menghidupkan <xliff:g id="SERVICE">%1$s</xliff:g>, peranti anda tidak akan menggunakan kunci skrin anda untuk meningkatkan penyulitan data."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Oleh sebab anda telah menghidupkan perkhidmatan kebolehaksesan, peranti anda tidak akan menggunakan kunci skrin anda untuk meningkatkan penyulitan data."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Oleh kerana menghidupkan <xliff:g id="SERVICE">%1$s</xliff:g> mempengaruhi penyulitan data, anda perlu mengesahkan corak anda."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Pemberitahuan"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Terperinci"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Pemberitahuan kerja"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Benarkan lencana ikon"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Lampu berkelip"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Pada skrin kunci"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Tunjukkan semua kandungan pemberitahuan"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Sederhana"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Tinggi"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Segera"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Benarkan Bunyi"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Benarkan bunyi"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Jangan berbunyi, bergetar atau mengintai pemberitahuan ini sehingga kelihatan pada skrin semasa."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Pembantu pemberitahuan"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Akses pemberitahuan"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Gambar dalam gambar"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Benarkan gambar dalam gambar"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Benarkan apl ini membuat tetingkap gambar dalam gambar semasa apl ini dibuka atau setelah anda meninggalkan apl (contohnya, untuk meneruskan tontonan video). Tetingkap ini dipaparkan di sebelah atas apl lain yang anda gunakan."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ya"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Tidak"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Akses Jangan Ganggu"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Tiada sebarang apl yang terpasang meminta akses Jangan Ganggu"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Memuatkan apl..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Jangan sekali-kali tunjukkan pemberitahuan ini"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Tunjukkan pemberitahuan"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Jangan sekali-kali tunjukkan pemberitahuan dalam bidai atau pada peranti persisian"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ikon apl lencana"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Tunjukkan pemberitahuan sebagai lencana pada apl Skrin Utama, jika disokong."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Benarkan lencana ikon"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Atasi Jangan Ganggu"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Benarkan pemberitahuan ini terus mengganggu apabila tetapan Jangan Ganggu ditetapkan kepada Keutamaan Sahaja"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Pada skrin kunci"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Paparkan di atas apl lain"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> daripada <xliff:g id="COUNT_1">%2$d</xliff:g> apl dibenarkan untuk dipaparkan di atas apl lain"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apl dengan kebenaran"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ya"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Tidak"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Pasang apl yang tidak diketahui"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"pasang apl sumber tidak diketahui"</string>
     <string name="write_settings" msgid="4797457275727195681">"Ubah suai tetapan sistem"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Kebenaran apl mengubah suai tetapan sistem"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Benarkan pengubahsuaian tetapan sistem"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Kebenaran ini membolehkan apl mengubah suai tetapan sistem."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ya"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Tidak"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dibenarkan"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Tidak dibenarkan"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Benarkan daripada sumber ini"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Pusing dua kali untuk membuka kamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Buka apl kamera dengan memusingkan pergelangan tangan anda dua kali"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Amaran data <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Amaran data <xliff:g id="ID_1">%1$s</xliff:g>/Had data <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Kitaran pengebilan"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Setiap bulan pada hari ke-<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Sekatan rangkaian"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> sekatan</item>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index 6afd139..7a8f67a 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ကောင်းသည်"</item>
     <item msgid="8986346415847956850">"အလွန်ကောင်းသည်"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"အမြဲတမ်း"</item>
-    <item msgid="844721238536786870">"ကြိုးဖြင့်ဆက်ထားသည့်အခါသာ"</item>
-    <item msgid="1986753720941888596">"ဘယ်တော့မှ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"အမြဲတမ်း"</item>
-    <item msgid="7433294150916905997">"ကြိုးဖြင့်ဆက်ထားသည့်အခါသာ"</item>
-    <item msgid="1390404486722375028">"ဘယ်တော့မှ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"နောက်ဆုံး ရက် ၃၀"</item>
     <item msgid="6600989128423965319">"သုံးစွဲမှု စက်ဝန်း သတ်မှတ်ရန်..."</item>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index ea86001..8d23f57 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"သင်ဟာ ယခု တည်ဆောက်သူတစ်ယောက် ဖြစ်နေပါပြီ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"မလိုတော့ပါ။ သင်သည် တည်ဆောက်သူတစ်ယောက် ဖြစ်နေပြီ ဖြစ်သည်။"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"ကြိုးမဲ့ &amp; ကွန်ရက်များ"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"အဆက်အသွယ်များ"</string>
     <string name="header_category_device" msgid="4544026001618307754">"ကိရိယာ"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ချိတ်ဆက်ခြင်းရပ်တန့်မလား?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">":&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;နှင့်ချိတ်ဆက်မှုများကို ပြီးဆုံးစေပါမည်"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ဘလူးတုသ် ဆက်တင်များကို ပြောင်းလဲရန် သင့်ဆီမှာ ခွင့်ပြုချက် မရှိပါ။"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ဘလူးတုသ် ဖွင့်ထားလျှင် <xliff:g id="DEVICE_NAME">%1$s</xliff:g> အား အနီးရှိ စက်ကိရိယာများမှ မြင်နိုင်၏။"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ဘလူးတုသ် MAC လိပ်စာ - <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ကို အဆက်ဖြတ်ရမလား?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ထုတ်လွှင့်ခြင်း"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ကိုယ်ရေးအချက်အလက်အား ဖျောက်မည်လား"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s သည် သင်၏ စာများကို ရယူအသုံးပြုလိုသည်။ %2$s ကို အသုံးပြုခွင့် ပေးမည်လား?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM ကဒ် သုံးခွင့် တောင်းဆိုမှု"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> သည် သင့် SIM ကဒ်အား ဝင်ရောက်သုံးလို၏။ SIM ကဒ်အား ဝင်ရောက်သုံးခွင့်ပြုပါက ချိတ်ဆက်နေစဉ်ကာလအတွင်း သင့် စက်ကိရိယာ၏ ဒေတာချိတ်ဆက်မှုအား ပိတ်ထားလိမ့်မည်။ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> အား ဝင်ရောက်သုံးခွင့်ပြုရန်"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"အခြားစက်ပစ္စည်းများက <xliff:g id="DEVICE_NAME">^1</xliff:g> အဖြစ် တွေ့နိုင်ပါမည်"</string>
     <string name="date_and_time" msgid="9062980487860757694">"ရက်စွဲနှင့် အချိန်"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"အချိန်ဇုန်အား ရွေးချယ်ခြင်း"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"နှိုးပေးဖို့ မ’ယူရန်"</string>
     <string name="doze_title" msgid="2259176504273878294">"ဝန်းကျင်ကို ပြကွက်"</string>
     <string name="doze_summary" msgid="3846219936142814032">"အကြောင်းကြားချက်များ သင်လက်ခံရရှိချိန်တွင် ဖန်သားပြင်ကို ဖွင့်ခိုင်းပါ"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"အမြဲတမ်း ဖွင့်ထားရန်"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"အချိန်၊ အကြောင်းကြားချက်သင်္ကေတများနှင့် အခြားအချက်အလက်များကို ပြသပါ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"စာလုံးအရွယ်အစား"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"စာလုံးကို ပိုကြီးအောင် သို့မဟုတ် ပိုသေးအောင်ပြုလုပ်ပါ"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"ဆင်းမ်ကဒ် လော့ခ်ဆက်တင်များ"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> ကို သုံးမလား။"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ကလုပ်ဆောင်ရန်များ-"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"အပလီကေးရှင်းသည် ခွင့်ပြုချက်တောင်းခံမှုကို ပိတ်လိုက်ခြင်းကြောင့်၊ သင့်တုန့်ပြန်မှုကို အချိန်ညှိချက်များ အတည်မပြုနိုင်ပါ။"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"အခြားအက်ပ်တစ်ခုက ဤအကြောင်းအရာများထိပ်မှာ ပေါ်နေသောကြောင့် ဆက်တင်များက သင်၏ လုပ်ဆောင်ကို တုံ့ပြန်နိုင်ခြင်းမရှိပါ။"</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>အား ဖွင့်ခြင်းသည် ဒေတာများ လျှို့ဝှက်ကုဒ်အသွင်​​ပြောင်းခြင်းအား အကျိုးသက်ရောက်စေသော​ကြောင့်၊ သင့် ရေးဆွဲပုံစံဖြင့် အတည်ပြုရန် လိုသည်။"</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"အကြောင်းကြားချက်များ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"အဆင့်မြင့်"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"အလုပ်သတိပေးချက်များ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"သင်္ကေတတံဆိပ်များကို ခွင့်ပြုရန်"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"မီး မှိတ်တုတ်မှိတ်တုတ်လုပ်ရန်"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"လော့ခ်ချထားသည့်မျက်နှာပြင်ပေါ်တွင်"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"အကြောင်းကြားချက်ပါ အကြောင်းအရာအားလုံးကို ပြမည်"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"အတော်အသင့်"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"အရေးကြီး"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"အရေးပေါ်"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"အသံကို ခွင့်ပြုရန်"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"အသံကို ခွင့်ပြုရန်"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"အသံပြုခြင်း၊ တုန်ခါခြင်း၊ သို့မဟုတ် လက်ရှိမျက်နှာပြင်တွင် ဤသတိပေးချက်များကို ပြခြင်းများ မပြုလုပ်ပါနှင့်။"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"သတိပေးချက် အကူအညီ"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"အကြောင်းကြားချက် ရယူခြင်း"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"တစ်ခုပေါ်တစ်ခု ထပ်၍ ဖွင့်ခြင်း"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"တစ်ခုပေါ်တစ်ခု ထပ်၍ ခွင့်ပြုရန်"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"အက်ပ်ပွင့်နေစဉ် သို့မဟုတ် သင်ထွက်လိုက်ချိန်တွင် ဤအက်ပ်အား တစ်ခုပေါ် တစ်ခုထပ်၍ဖွင့်ခွင့်ပြုပါ (ဥပမာ၊  ဗီဒီယိုဆက်ကြည့်ရန်)။ ဤဝင်းဒိုးသည် သင်သုံးနေသော အခြားအက်များ၏ အပေါ်တွင် ပြသပါလိမ့်မည်။"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Yes"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"No"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"မနှောင့်ယှက်ရ\" ကိုအသုံးပြုခြင်း"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"မနှောက်ယှက်ရန် အသုံးပြုခြင်းအတွက် မည်သည့်ထည့်သွင်းထားသည့် အပ်ဖ်မှ တောင်းဆိုမှုမရှိပါ"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"အက်ပ်များကို တင်နေ..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ဤအကြောင်းကြားချက်များကို ဘယ်တော့မှ မပြပါနှင့်"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"အကြောင်းကြားချက်များ ပြပါ"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"အရိပ်ထဲ သို့မဟုတ် တွဲချိတ်ထားသည့် စက်ပစ္စည်းများပေါ်တွင် အကြောင်းကြားချက်များကို ဘယ်တော့မှ မပြပါနှင့်"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"အက်ပ်သင်္ကေတ တံဆိပ်"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ပံ့ပိုးထားလျှင် Home အက်ပ်ပေါ်တွင် အကြောင်းကြားချက်များကို တံဆိပ်များအဖြစ် ပြသပါမည်။"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"သင်္ကေတတံဆိပ်ကို ခွင့်ပြုရန်"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"မနှောင်ယှက်ပါနှင့် ကို အပေါ်မှဖျက်ရေးပါ"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"မနှောင်ယှက်ပါနှင့် ကို ဦးစားပေးမှု အတွက်သာ ဆိုပြီး သတ်မှတ်ထားလျှင် ဤသတိပေးချက်များအား ဆက်လက်ပြီး စွက်ဖက်ခွင့် ပြုပါ"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"လော့ခ်ချထားသည့်မျက်နှာပြင်ပေါ်တွင်"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"အခြားအက်ပ်များပေါ်မှ ပြသခြင်း"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"အက်ပ် <xliff:g id="COUNT_1">%2$d</xliff:g> ခုအနက်မှ <xliff:g id="COUNT_0">%1$d</xliff:g> ခုသည် အခြားအက်ပ်များပေါ်တွင် ပြသခွင့်ပြုသည်"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ခွင့်ပြုချက်များဖြင့် အပ်ဖ်များ"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Yes"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"No"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"အမျိုးအမည်မသိအက်ပ် ထည့်သွင်းနိုင်ခြင်း"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"မူရင်းမသိ အရင်းအမြစ် အက်ပ်များ ထည့်သွင်း"</string>
     <string name="write_settings" msgid="4797457275727195681">"စနစ်ဆက်တင်များ ပြန်ပြင်ခြင်း"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"စနစ်ချိန်ညှိချက်များပြန်ပြင်ခြင်း အပ်ဖ်ခွင့်ပြုချက်"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"စနစ်ချိန်ညှိချက်များကို ပြန်ပြင်ရန် ခွင့်ပြုမည်"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ဤခွင့်ပြုချက်သည် အပ်ဖ်ကို စနစ်ချိန်ညှိချက်များအား ပြန်ပြင်ခွင့်ပေးသည်။"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Yes"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"No"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ခွင့်ပြုထားသည်"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ခွင့်ပြုမထားပါ"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ဤထုတ်လုပ်သူကို ခွင့်ပြုရန်"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ကင်မရာအတွက် နှစ်ကြိမ် လှည့်ပါ"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"သင့်လက်ကိုနှစ်ကြိမ်လှည့်ခြင်းဖြင့် ကင်မရာအပ်ဖ်ကို ဖွင့်ပါ"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"လစဉ် <xliff:g id="ID_1">%1$s</xliff:g> နေ့တွင်"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ကွန်ရက် ကန့်သတ်ချက်များ"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other">ကန့်သတ်ချက် <xliff:g id="COUNT">%1$d</xliff:g> ခု</item>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 1dab99f..b92038b 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bra"</item>
     <item msgid="8986346415847956850">"Utmerket"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Alltid"</item>
-    <item msgid="844721238536786870">"Bare når tilkoblet strøm"</item>
-    <item msgid="1986753720941888596">"Aldri"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Alltid"</item>
-    <item msgid="7433294150916905997">"Bare når tilkoblet strøm"</item>
-    <item msgid="1390404486722375028">"Aldri"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"De siste 30 dagene"</item>
     <item msgid="6600989128423965319">"Angi brukssyklus"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 4db17a8..78e6bbb 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Du er nå utvikler!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Det trengs ikke, du er allerede utvikler."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Trådløst og nettverk"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Tilkoblinger"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Enhet"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Vil du koble fra?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Dette vil avslutte tilkoblingen til:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Du har ikke tillatelse til å endre Bluetooth-innstillingene."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> er synlig for enheter i nærheten mens Bluetooth-innstillingene er åpne."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC-adresse for Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Vil du koble fra <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Kringkasting"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vil du deaktivere profilen?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ønsker adgang til meldingene dine. Vil du gi %2$s tilgang?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Forespørsel om tilgang til SIM-kort"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vil ha tilgang til SIM-kortet ditt. Hvis du gir tilgang til SIM-kortet, slås datatilkoblingen på enheten av så lenge tillatelsen varer. Gi tilgang til <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Synlig som <xliff:g id="DEVICE_NAME">^1</xliff:g> for andre enheter"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Dato og klokkeslett"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Velg tidssone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Aktiver enheten med løftebevegelser"</string>
     <string name="doze_title" msgid="2259176504273878294">"Omgivelsesskjerm"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Skjermen slås på når du mottar varsler"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Alltid på"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Vis klokkeslett, varselikoner og annen informasjon"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Skriftstørrelse"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Gjør teksten større eller mindre"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Innstillinger for SIM-kort-lås"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Vil du bruke <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> må"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Fordi en app skjuler tillatelsesforespørselen, kan ikke Innstillinger bekrefte svaret ditt."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Fordi en annen app vises oppå disse alternativene, kan ikke Innstillinger svare på handlingen din."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Hvis du slår på <xliff:g id="SERVICE">%1$s</xliff:g>, bruker ikke enheten skjermlåsen til å forbedre datakryptering."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Fordi du har slått på en tilgjengelighetstjeneste, bruker ikke enheten skjermlåsen til å forbedre datakryptering."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Du må bekrefte mønsteret ditt for å slå på <xliff:g id="SERVICE">%1$s</xliff:g>, fordi den påvirker datakryptering."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Varsler"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avansert"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Jobbvarsler"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Tillat ikonmerker"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blinkende lys"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"På låseskjermen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Vis alt innhold i varsler"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Middels"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Høy"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Haster"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Tillat lyd"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Tillat lyd"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Disse varslene vises ikke kjapt på skjermen – verken med vibrering eller lyd."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Varselassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Varseltilgang"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Bilde-i-bilde"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Tillat bilde-i-bilde"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"La denne appen opprette et bilde-i-bilde-vindu mens appen er åpen eller etter at du har gått ut av den (for eksempel for å fortsette å se en video). Dette vinduet vises over andre apper du bruker."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nei"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"«Ikke forstyrr»-tilgang"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ingen installerte apper har bedt om «Ikke forstyrr»-tilgang"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Laster inn apper …"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Vis aldri disse varslene"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Vis varsler"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Vis aldri varlser i panelet eller på eksterne enheter"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"App-ikonmerke"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Vis varsler som merker i Home-appen, hvis det støttes."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Tillat ikonmerke"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Overstyr Ikke forstyrr"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"La disse varslene fortsette å forstyrre når Ikke forstyrr er angitt til Bare prioriterte"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"På låseskjermen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Vis over andre apper"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> av <xliff:g id="COUNT_1">%2$d</xliff:g> apper kan vises over andre apper"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apper med tillatelse"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nei"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installer ukjente apper"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installer apper fra ukjente kilder"</string>
     <string name="write_settings" msgid="4797457275727195681">"Endre systeminnstillingene"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Apptillatelse til å endre systeminnstillingene"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Tillat endring av systeminnstillingene"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Med denne tillatelsen kan apper endre systeminnstillingene."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nei"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Tillatt"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ikke tillatt"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Tillat fra denne kilden"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Vri to ganger for å åpne kameraet"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Åpne kameraappen ved å vri to ganger på håndleddet"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Advarsel for databruk: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Advarsel for databruk: <xliff:g id="ID_1">%1$s</xliff:g> / datagrense: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Faktureringssyklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Månedlig den <xliff:g id="ID_1">%1$s</xliff:g>."</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Nettverksbegrensninger"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> begrensninger</item>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index bc56170..a234d9f 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"राम्रो"</item>
     <item msgid="8986346415847956850">"उत्कृष्ट"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"सधैं"</item>
-    <item msgid="844721238536786870">"प्लग इन भएपछि मात्र"</item>
-    <item msgid="1986753720941888596">"कहिल्यै पनि होइन"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"सधैँ"</item>
-    <item msgid="7433294150916905997">"केवल प्लग गरेको बेलामा मात्र"</item>
-    <item msgid="1390404486722375028">"कहिल्यै पनि होइन"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"अन्तिम ३० दिन"</item>
     <item msgid="6600989128423965319">"प्रयोग चक्र सेट..."</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 95b03f8..e9ba786 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"तपाईं अब एउटा विकासकर्ता हुनुहुन्छ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"आवश्यक छैन, तपाईं आफैँ नै एउटा विकासकर्ता हुनुहुन्छ।"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"विच्छेदन गर्ने हो?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"&lt;br&gt; &lt;b&gt;: <xliff:g id="DEVICE_NAME">%1$s</xliff:g>का साथ जडान समाप्त गर्दछ &lt;/ b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"तपाईं सँग ब्लुटुथ सेटिङ्हरू परिवर्तन गर्न अनुमति छैन।"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"ब्लुटुथ सेटिङहरू खुला हुँदा <xliff:g id="DEVICE_NAME">%1$s</xliff:g> लाई नजिकैका उपकरणहरू देख्न सक्नेछन्।"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ब्लुटुथ MAC ठेगाना: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>विच्छेद गर्नुहुन्छ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"प्रसारण"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"प्रोफाइल असक्षम पार्ने हो?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s तपाईँको सन्देशमा पहुँच चाहन्छ। %2$s मा पहुँच दिने हो?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM पहुँच अनुरोध"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ले तपाईँको SIM कार्ड पहुँच गर्न चाहन्छ। यन्त्रमा SIM कार्ड पहुँच प्रदान गर्दा जडान अवधिको समयमा तपाईँको डेटा जडान निष्क्रिय हुनेछ। <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> लाई पहुँच प्रदान गर्नुहोस्"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"अन्य यन्त्रहरूमा <xliff:g id="DEVICE_NAME">^1</xliff:g> को रूपमा देख्न सकिन्छ"</string>
     <string name="date_and_time" msgid="9062980487860757694">"मिति र समय"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"समय क्षेत्र चयन गर्नुहोस्"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"चालु गर्न उठाउनुहोस्"</string>
     <string name="doze_title" msgid="2259176504273878294">"परिवेश प्रदर्शन"</string>
     <string name="doze_summary" msgid="3846219936142814032">"सूचनाहरू प्राप्त हुँदा स्क्रिनलाई सक्रिय गर्नुहोस्"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"सधैँ सक्रिय"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"समय, सूचनाका आइकनहरू र अन्य जानकारीहरू देखाउनुहोस्"</string>
     <string name="title_font_size" msgid="4405544325522105222">"फन्ट आकार"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"पाठ सन्देश अझ ठूलो वा सानो पार्नुहोस्"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM कार्ड लक सेटिङहरू"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> प्रयोग गर्नुहुन्छ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई आवश्यक:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"एपले अनुमति अनुरोधलाई अस्पष्ट मानिरहेको हुनाले, सेटिङहरूलले तपाईंको प्रतिक्रियालाई प्रमाणित गर्न सक्दैनन्।"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"यी विकल्पहरूको शीर्ष भागमा अर्को अनुप्रयोग देखिइरहेको हुनाले सेटिङहरूले तपाईंको कारबाहीको प्रतिक्रिया दिन सक्दैनन्।"</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="enable_service_pattern_reason" msgid="777577618063306751">"किनभने <xliff:g id="SERVICE">%1$s</xliff:g> सेवा प्रयोग गर्दा डेटा गुप्तिकरणमा असर गर्छ, तपाईंले आफ्नो प्याटर्न पुष्टि गर्न आवश्यक छ।"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"सूचनाहरू"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"उन्‍नत"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"कार्यका सूचनाहरू"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"आइकनका ब्याजहरूलाई अनुमति दिनुहोस्"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"झिम झिम गर्ने बत्ती"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"लक स्क्रिनमा"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"सबै सूचना सामग्री देखाउनुहोस्"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"सामान्य"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"उच्च"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"जरुरी"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"आवाजलाई अनुमति दिनुहोस्"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ध्वनिलाई अनुमति दिनुहोस्"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ध्वनि, कम्पन नगर्नुहोस् वा हालको स्क्रिनमा यी सूचनाहरूलाई दृश्यमा नचियाउनुहोस्।"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"सूचना सहायक"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"सूचना पहुँच"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"तस्बिरमा तस्बिर"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"तस्बिरभित्रको तस्बिरलाई अनुमति दिनुहोस्"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"यो अनुप्रयोग खुला रहेको बेलामा वा तपाईंले यसलाई छाड्नुभएपछि (उदाहरणका लागि, भिडियो हेर्ने कार्य जारी राख्नको लागि) यस अनुप्रयोगलाई कुनै तस्बिरभित्रको तस्बिर विन्डो सिर्जना गर्न अनुमति दिनुहोस्। यो विन्डो तपाईंले प्रयोग गरिरहनुभएका अन्य अनुप्रयोगहरूको माथिपट्टि देखिन्छ।"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"हो"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"होइन"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"पहुँचमा बाधा नपुर्‍यानुहोस्"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"कुनै पनि स्थापित अनुप्रयोगहरू द्वारा पहुँचमा बाधा नपुर्‍यानुहोस् को माग गरेका छैनन्"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"अनुप्रयोगहरू लोड हुँदै..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"यी सूचनाहरू कहिल्यै नदेखाउनुहोस्"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"सूचनाहरू देखाउनुहोस्"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ओझेलमा वा पेरिफेरल यन्त्रहरूमा कहिल्यै सूचनाहरू नदेखाउनुहोस्"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"पदक अनुप्रयोगको आइकन"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"समर्थन गरिएमा गृहपृष्ठको अनुप्रयोगमा सूचना र पदकहरू देखाउनुहोस्।"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"आइकनको ब्याजलाई अनुमति दिनुहोस्"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"बाधा नपुर्याउनुहोस् मा ओभरराइड गर्नुहोस्"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"बाधा नपुर्याउनुहोस् प्राथमिकतामा मात्र सेट भएको बेला यी सूचनाहरूबाट हुने अवरोधका लागि अनुमति दिनुहोस्।"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"लक स्क्रिनमा"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"अन्य एपहरूको माथिपट्टि देखाउनु"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> मध्ये <xliff:g id="COUNT_0">%1$d</xliff:g> एपहरूलाई अन्य एपको माथिपट्टि देखिने अनुमति दिइएको छ"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"अनुमतिसहित अनुप्रयोगहरू"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"हो"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"होइन"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"अज्ञात अनुप्रयोगहरू स्थापना गर्नुहोस्"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"अज्ञात स्रोतहरूबाट प्राप्त हुने अनुप्रयोगहरू स्थापना गर्नुहोस्‌"</string>
     <string name="write_settings" msgid="4797457275727195681">"प्रणाली सेटिङहरू परिमार्जन"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"अनुप्रयोगद्वारा प्रणाली सेटिङहरू अनुमति परिवर्तन"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"प्रणाली सेटिङहरू परिमार्जन गर्न अनुमति"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"यस अनुमतिले अनुप्रयोगलाई प्रणाली सेटिङहरू परिमार्जन गर्न दिन्छ।"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"हो"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"होइन"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"अनुमति छ"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"अनुमति छैन"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"यो स्रोतबाट अनुमति दिनुहोस्‌"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"क्यामेराका लागि दुई पटक बटार्नुहोस्"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"दुई पटक आफ्नो नारी बटारेर क्यामेरा अनुप्रयोग खोल्नुहोस्"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"प्रत्येक महिनाको <xliff:g id="ID_1">%1$s</xliff:g> गते"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"नेटवर्कका सीमाहरू"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> वटा बन्देजहरू</item>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 133809b..f71a6ad 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Goed"</item>
     <item msgid="8986346415847956850">"Uitstekend"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Altijd"</item>
-    <item msgid="844721238536786870">"Alleen tijdens laden"</item>
-    <item msgid="1986753720941888596">"Nooit"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Altijd"</item>
-    <item msgid="7433294150916905997">"Alleen tijdens laden"</item>
-    <item msgid="1390404486722375028">"Nooit"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Afgelopen 30 dagen"</item>
     <item msgid="6600989128423965319">"Gebruikscyclus instellen…"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 0e9b0ba..55f8369 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Je bent nu ontwikkelaar!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Niet nodig, je bent al ontwikkelaar."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Draadloos en netwerken"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Verbindingen"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Apparaat"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ontkoppelen?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Hierdoor wordt je verbinding met:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt; verbroken"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Je hebt geen toestemming om de Bluetooth-instellingen te wijzigen."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> is zichtbaar voor apparaten in de buurt wanneer het venster \'Bluetooth-instellingen\' is geopend."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC-adres: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ontkoppelen?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Uitzending"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profiel uitschakelen?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s wil toegang tot je berichten. Toegang geven aan %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Toegangsverzoek voor simkaart"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> wil toegang tot je simkaart. Als je toegang tot de simkaart verleent, wordt de gegevensverbinding op je apparaat uitgeschakeld voor de duur van de verbinding. Toegang verlenen aan <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Zichtbaar als <xliff:g id="DEVICE_NAME">^1</xliff:g> voor andere apparaten"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum en tijd"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Een tijdzone kiezen"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Optillen om te activeren"</string>
     <string name="doze_title" msgid="2259176504273878294">"Actieve display"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Scherm activeren wanneer je meldingen ontvangt"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Altijd aan"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Tijd, meldingspictogrammen en andere informatie weergeven"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Lettergrootte"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Tekst groter of kleiner maken"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Instellingen simkaartvergrendeling"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> gebruiken?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> moet het volgende kunnen:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Aangezien een app een toestemmingsverzoek afdekt, kan Instellingen je reactie niet verifiëren."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Omdat een andere app deze opties afdekt, kan Instellingen niet reageren op je actie."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Als je <xliff:g id="SERVICE">%1$s</xliff:g> inschakelt, maakt je apparaat geen gebruik van schermvergrendeling om de gegevensversleuteling te verbeteren."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Omdat je een toegankelijkheidsservice hebt ingeschakeld, maakt je apparaat geen gebruik van schermvergrendeling om de gegevensversleuteling te verbeteren."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Aangezien het inschakelen van <xliff:g id="SERVICE">%1$s</xliff:g> van invloed is op de gegevensversleuteling, moet je je patroon bevestigen."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Meldingen"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Geavanceerd"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Werkmeldingen"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Pictogrambadges toestaan"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Knipperlicht"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Op het vergrendelingsscherm"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Content van alle meldingen weergeven"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Gemiddeld"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Hoog"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgent"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Geluid toestaan"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Geluid toestaan"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Geen geluid laten horen, niet trillen en deze meldingen niet weergeven op het huidige scherm."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Meldingsassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Toegang tot meldingen"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Beeld-in-beeld"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Beeld-in-beeld toestaan"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Geef deze app toestemming om een beeld-in-beeldvenster te maken als de app open is of als je de app verlaat (bijvoorbeeld om een video te blijven kijken). Dit venster wordt weergegeven vóór andere apps die je gebruikt."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nee"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Toegang tot \'Niet storen\'"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Er zijn geen geïnstalleerde apps die toegang tot \'Niet storen\' hebben aangevraagd"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Apps laden..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Deze meldingen nooit weergeven"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Meldingen weergeven"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nooit meldingen weergeven in het meldingenpaneel of op randapparaten"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Pictogram van badge-app"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Meldingen weergeven als badges op het startscherm (indien ondersteund)."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Pictogrambadge toestaan"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"\'Niet storen\' overschrijven"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Deze meldingen nog steeds laten onderbreken wanneer \'Niet storen\' is ingesteld op \'Alleen prioriteit\'"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Op het vergrendelingsscherm"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Weergeven vóór andere apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> van <xliff:g id="COUNT_1">%2$d</xliff:g> apps mogen worden weergegeven vóór andere apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps met toestemming"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nee"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Onbekende apps installeren"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"apps installeren via onbekende bronnen"</string>
     <string name="write_settings" msgid="4797457275727195681">"Systeeminstellingen aanpassen"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"App-machtigingen voor aanpassen van systeeminstellingen"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Aanpassen van systeeminstellingen toestaan"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Met deze rechten kan een app de systeeminstellingen aanpassen."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nee"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Toegestaan"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Niet toegestaan"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Toestaan van deze bron"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Twee keer draaien voor camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Open de camera-app door je pols twee keer te draaien"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> datawaarschuwing"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> datawaarschuwing / <xliff:g id="ID_2">%2$s</xliff:g> datalimiet"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Betalingscyclus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Maandelijks op dag <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Netwerkbeperkingen"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> beperkingen</item>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 9764754..bc69218 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ਵਧੀਆ"</item>
     <item msgid="8986346415847956850">"ਸ਼ਾਨਦਾਰ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ਹਮੇਸ਼ਾਂ"</item>
-    <item msgid="844721238536786870">"ਕੇਵਲ ਉਦੋਂ ਜਦੋਂ ਪਲਗ ਇਨ ਕੀਤਾ ਹੋਵੇ"</item>
-    <item msgid="1986753720941888596">"ਕਦੇ ਵੀ ਨਹੀਂ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ਹਮੇਸ਼ਾਂ"</item>
-    <item msgid="7433294150916905997">"ਕੇਵਲ ਉਦੋਂ ਜਦੋਂ ਪਲਗ ਇਨ ਕੀਤਾ ਹੋਵੇ"</item>
-    <item msgid="1390404486722375028">"ਕਦੇ ਵੀ ਨਹੀਂ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"ਪਿਛਲੇ 30 ਦਿਨ"</item>
     <item msgid="6600989128423965319">"ਵਰਤੋਂ ਸਾਈਕਲ ਸੈੱਟ ਕਰੋ..."</item>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 695f311..2766ad1 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ਹੁਣ ਤੁਸੀਂ ਇੱਕ ਵਿਕਾਸਕਾਰ ਹੋ!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"ਕੋਈ ਲੋੜ ਨਹੀਂ, ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਇੱਕ ਵਿਕਾਸਕਾਰ ਹੋ।"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ਕੀ ਡਿਸਕਨੈਕਟ ਕਰਨਾ ਹੈ?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ਇਹ ਇਸ ਨਾਲ ਤੁਹਾਡੇ ਕਨੈਕਸ਼ਨ ਨੂੰ ਖ਼ਤਮ ਕਰ ਦੇਵੇਗਾ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"ਤੁਹਾਨੂੰ Bluetooth ਸੈਟਿੰਗਾਂ ਬਦਲਣ ਦੀ ਅਨੁਮਤੀ ਨਹੀਂ ਹੈ।"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਨੇੜਲੀਆਂ ਡਿਵਾਈਸਾਂ ਲਈ ਦਿਖਣਯੋਗ ਹੁੰਦਾ ਹੈ ਜਦੋਂ Bluetooth ਸੈਟਿੰਗਾਂ ਖੁੱਲ੍ਹੀਆਂ ਹੁੰਦੀਆਂ ਹਨ।"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ਬਲੂਟੁੱਥ MAC ਪਤਾ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"ਕੀ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਨੂੰ ਡਿਸਕਨੈਕਟ ਕਰਨਾ ਹੈ?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ਪ੍ਰਸਾਰਨ"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ਕੀ ਪ੍ਰੋਫਾਈਲ ਅਸਮਰੱਥ ਬਣਾਉਣੀ ਹੈ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ਤੁਹਾਡੇ ਸੁਨੇਹਿਆਂ ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦਾ ਹੈ। ਕੀ %2$s ਤੱਕ ਪਹੁੰਚ ਪ੍ਰਾਪਤ ਕਰਨੀ ਹੈ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"ਸਿਮ ਐਕਸੈਸ ਬੇਨਤੀ"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ਤੁਹਾਡੇ ਸਿਮ ਕਾਰਡ ਦੀ ਐਕਸੈਸ ਕਰਨਾ ਚਾਹੁੰਦਾ/ਚਾਹੁੰਦੀ ਹੈ। ਸਿਮ ਕਾਰਡ ਦੀ ਐਕਸੈਸ ਦੇਣਾ ਕਨੈਕਸ਼ਨ ਦੀ ਸਮਾਂ ਮਿਆਦ ਦੇ ਲਈ ਤੁਹਾਡੀ ਡੀਵਾਈਸ \'ਤੇ ਕਨੈਕਟਿਵਿਟੀ ਨੂੰ ਅਸਮਰਥਿਤ ਕਰ ਦੇਵੇਗਾ। <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> ਨੂੰ ਐਕਸੈਸ ਦਿਓ"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ਹੋਰਾਂ ਡੀਵਾਈਸਾਂ ਲਈ <xliff:g id="DEVICE_NAME">^1</xliff:g> ਵਜੋਂ ਦਿਖਣਯੋਗ"</string>
     <string name="date_and_time" msgid="9062980487860757694">"ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"ਸਮਾਂ ਜ਼ੋਨ ਚੁਣੋ"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"ਸਕਿਰਿਆ ਕਰਨ ਲਈ ਚੁੱਕੋ"</string>
     <string name="doze_title" msgid="2259176504273878294">"ਤੱਕਣੀਯੋਗ ਡਿਸਪਲੇ"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ਜਦ ਤੁਹਾਨੂੰ ਸੂਚਨਾਵਾਂ ਪ੍ਰਾਪਤ ਹੋਣ ਤਾਂ ਸਕ੍ਰੀਨ ਨੂੰ ਸਜੀਵ ਕਰੋ"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ਹਮੇਸ਼ਾ ਚਾਲੂ"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"ਸਮਾਂ, ਸੂਚਨਾ ਪ੍ਰਤੀਕ, ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦਿਖਾਓ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ਫੌਂਟ ਦਾ ਆਕਾਰ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ਲਿਖਤ ਨੂੰ ਵੱਡਾ ਜਾਂ ਛੋਟਾ ਕਰੋ"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM ਕਾਰਡ ਲੌਕ ਸੈਟਿੰਗਾਂ"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"ਕੀ <xliff:g id="SERVICE">%1$s</xliff:g> ਵਰਤਣੀ ਹੈ?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਇਹ ਕਰਨ ਦੀ ਲੋੜ ਹੈ:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"ਕਿਉਂਕਿ ਇੱਕ ਐਪ ਇੱਕ ਅਨੁਮਤੀ ਬੇਨਤੀ ਨੂੰ ਅਸਪਸ਼ਟ ਬਣਾ ਰਿਹਾ ਹੈ, ਸੈਟਿੰਗਾਂ ਤੁਹਾਡੇ ਜਵਾਬ ਦੀ ਜਾਂਚ ਨਹੀਂ ਕਰ ਸਕਦੀਆਂ।"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ਕਿਉਂਕਿ ਕੋਈ ਹੋਰ ਐਪ ਇਹਨਾਂ ਵਿਕਲਪਾਂ ਦੇ ਉੱਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਕੀਤੀ ਜਾ ਰਹੀ ਹੈ, ਇਸ ਲਈ ਸੈਟਿੰਗਾਂ ਤੁਹਾਡੀ ਕਾਰਵਾਈ \'ਤੇ ਪ੍ਰਤਿਕਿਰਿਆ ਨਹੀਂ ਦੇ ਸਕਦੀਆਂ ਹਨ।"</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="enable_service_pattern_reason" msgid="777577618063306751">"ਕਿਉਂਕਿ <xliff:g id="SERVICE">%1$s</xliff:g> ਨੂੰ ਚਾਲੂ ਕਰਨ ਨਾਲ ਡੈਟਾ ਇਨਕ੍ਰਿਪਸ਼ਨ ਤੇ ਅਸਰ ਪੈਂਦਾ ਹੈ, ਤੁਹਾਨੂੰ ਆਪਣੇ ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।"</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"ਸੂਚਨਾਵਾਂ"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ਉੱਨਤ"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"ਕੰਮ ਸਬੰਧੀ ਸੂਚਨਾਵਾਂ"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ਪ੍ਰਤੀਕ ਬੈਜਾਂ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ਲਾਈਟ ਨੂੰ ਟਿਮ-ਟਿਮਾਓ"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"ਲੌਕ ਸਕ੍ਰੀਨ \'ਤੇ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"ਸਾਰੀ ਸੂਚਨਾ ਸਮੱਗਰੀ ਦਿਖਾਓ"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"ਔਸਤ"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ਉੱਚ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"ਜ਼ਰੂਰੀ"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ਧੁਨੀ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ਧੁਨੀ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ਵਰਤਮਾਨ ਸਕ੍ਰੀਨ \'ਤੇ ਦ੍ਰਿਸ਼ ਵਿੱਚ ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਧੁਨੀ ਨਾ ਵਜਾਉਣ ਦਿਓ, ਥਰਥਰਾਹਟ ਨਾ ਕਰਨ ਦਿਓ ਜਾਂ ਝਲਕ ਨਾ ਵਿਖਾਉਣ ਦਿਓ।"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"ਸੂਚਨਾ ਸਹਾਇਕ"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"ਸੂਚਨਾ ਪਹੁੰਚ"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਮੋਡ"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ਇਸ ਐਪ ਨੂੰ ਤਸਵੀਰ-ਵਿੱਚ-ਤਸਵੀਰ ਵਿੰਡੋ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿਓ ਜਦੋਂ ਐਪ ਖੁੱਲ੍ਹੀ ਹੋਵੇ ਜਾਂ ਜਦੋਂ ਤੁਸੀਂ ਇਸ ਨੂੰ ਛੱਡ ਦਿਓ (ਉਦਾਹਰਨ ਲਈ, ਵੀਡੀਓ ਦੇਖਣਾ ਜਾਰੀ ਰੱਖਣ ਲਈ)। ਇਹ ਵਿੰਡੋ ਤੁਹਾਡੇ ਦੁਆਰਾ ਵਰਤੀਆਂ ਜਾ ਰਹੀਆਂ ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦੀ ਹੈ।"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ਹਾਂ"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ਨਹੀਂ"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"\"ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\" ਤੱਕ ਪਹੁੰਚ"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ਕਿਸੇ ਵੀ ਸਥਾਪਿਤ ਐਪਸ ਨੇ ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਐਕਸੈਸ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਹੈ"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"ਐਪਸ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਕਦੇ ਨਾ ਵਿਖਾਓ"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"ਸੂਚਨਾਵਾਂ ਵਿਖਾਓ"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ਸੂਚਨਾਵਾਂ ਕਦੇ ਵੀ ਪਰਛਾਵੇਂ ਵਿੱਚ ਜਾਂ ਪੈਰੀਫਿਰਲ ਡੀਵਾਈਸਾਂ \'ਤੇ ਨਾ ਵਿਖਾਓ"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ਬੈਜ ਐਪ ਪ੍ਰਤੀਕ"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ਹੋਮ ਐਪ \'ਤੇ ਬੈਜਾਂ ਵਜੋਂ ਸੂਚਨਾਵਾਂ ਵਿਖਾਓ, ਜੇਕਰ ਸਮਰਥਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ਪ੍ਰਤੀਕ ਬੈਜ ਨੂੰ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ਮੈਨੂੰ ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਓਵਰਰਾਈਡ ਕਰੋ"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"ਇਹਨਾਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਰੋਕੇ ਰਹਿਣਾ ਜਾਰੀ ਰਹਿਣ ਦਿਓ ਜਦੋਂ ਮੈਨੂੰ ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਸਿਰਫ਼ ਤਰਜੀਹ \'ਤੇ ਸੈੱਟ ਕੀਤਾ ਹੋਵੇ।"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"ਲੌਕ ਸਕ੍ਰੀਨ \'ਤੇ"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"ਦੂਜੀਆਂ ਐਪਾਂ ਦੇ ਉੱਪਰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰੋ"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> ਵਿੱਚੋਂ <xliff:g id="COUNT_0">%1$d</xliff:g> ਐਪਾਂ ਨੂੰ ਹੋਰ ਐਪਾਂ ਉੱਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਹੋਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੱਤੀ"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"ਅਨੁਮਤੀ ਵਾਲੀਆਂ ਐਪਸ"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ਹਾਂ"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ਨਹੀਂ"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ਅਗਿਆਤ ਐਪਾਂ ਸਥਾਪਿਤ ਕਰੋ"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ਅਗਿਆਤ ਸਰੋਤ ਐਪਾਂ ਸਥਾਪਿਤ ਕਰੋ"</string>
     <string name="write_settings" msgid="4797457275727195681">"ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ਐਪ ਨੂੰ ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਅਨੁਮਤੀ"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿਓ"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ਇਹ ਅਨੁਮਤੀ ਇੱਕ ਐਪ ਨੂੰ ਸਿਸਟਮ ਸੈਟਿੰਗਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਲਈ ਆਗਿਆ ਦਿੰਦੀ ਹੈ।"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"ਹਾਂ"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ਨਹੀਂ"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ਇਜਾਜ਼ਤ ਹੈ"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ਇਜਾਜ਼ਤ ਨਹੀਂ"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ਇਸ ਸਰੋਤ ਤੋਂ ਇਜਾਜ਼ਤ ਦਿਓ"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"ਕੈਮਰੇ ਲਈ ਦੋ ਵਾਰ ਮੋੜੋ"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"ਆਪਣੇ ਗੁੱਟ ਨੂੰ ਦੋ ਵਾਰ ਮੋੜਕੇ ਕੈਮਰਾ ਐਪ ਖੋਲ੍ਹੋ"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ਮਹੀਨਾਵਾਰ <xliff:g id="ID_1">%1$s</xliff:g> ਤਾਰੀਖ ਨੂੰ"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ਨੈੱਟਵਰਕ ਪਾਬੰਦੀਆਂ"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ਪ੍ਰਤਿਬੰਧ</item>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index db6284c..ad48481 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobra"</item>
     <item msgid="8986346415847956850">"Doskonała"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Zawsze"</item>
-    <item msgid="844721238536786870">"Tylko, gdy podłączony"</item>
-    <item msgid="1986753720941888596">"Nigdy"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Zawsze"</item>
-    <item msgid="7433294150916905997">"Tylko, gdy podłączony"</item>
-    <item msgid="1390404486722375028">"Nigdy"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Ostatnie 30 dni"</item>
     <item msgid="6600989128423965319">"Ustaw cykl danych..."</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index da7d6b2..fcaa014 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Jesteś teraz programistą!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"W porządku, już jesteś programistą."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Sieci zwykłe i bezprzewodowe"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Połączenia"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Urządzenie"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Rozłączyć?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Spowoduje to zakończenie połączenia z urządzeniem:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nie masz uprawnień, by zmienić ustawienia Bluetootha."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> jest widoczne dla urządzeń w pobliżu, gdy ustawienia Bluetooth są otwarte."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adres MAC urządzenia Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Odłączyć urządzenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmisja"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Wyłączyć profil?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s chce uzyskać dostęp do Twoich wiadomości. Zezwolić na dostęp?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Prośba o dostęp do karty SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce uzyskać dostęp do Twojej karty SIM. Jeśli na to zezwolisz, na czas tego połączenia na urządzeniu zostanie wyłączone połączenie transmisji danych. Przyznaj dostęp do urządzenia <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Widoczne dla innych urządzeń jako <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data i czas"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Wybierz strefę czasową"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Podnieś, by wybudzić"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ekran dostosowany do otoczenia"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Włącz ekran po otrzymaniu powiadomień"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Zawsze włączony"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Pokazuj godzinę, ikony powiadomień i inne informacje"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Rozmiar czcionki"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Powiększ lub pomniejsz tekst"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Ustawienia blokady karty SIM"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Włączyć <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Wymagania <xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Aplikacja Ustawienia nie może zweryfikować Twojej odpowiedzi, ponieważ inna aplikacja zasłania prośbę o udzielenie uprawnień."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Ustawienia nie reagują na działania, ponieważ inna aplikacja jest wyświetlana nad tymi opcjami."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Jeśli włączysz usługę <xliff:g id="SERVICE">%1$s</xliff:g>, Twoje urządzenie nie będzie korzystać z blokady ekranu, by usprawnić szyfrowanie danych."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Włączyłeś usługę ułatwień dostępu, więc Twoje urządzenie nie będzie korzystać z blokady ekranu, by usprawnić szyfrowanie danych."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Ponieważ włączenie <xliff:g id="SERVICE">%1$s</xliff:g> wpływa na szyfrowanie danych, musisz potwierdzić swój wzór."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Powiadomienia"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Zaawansowane"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Powiadomienia związane z pracą"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Zezwól na ikony z plakietkami"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Migająca dioda"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na ekranie blokady"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Pokazuj wszystkie powiadomienia"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Średnia"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Wysoka"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Pilne"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Pozwalaj na dźwięk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Zezwól na dźwięk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Nie sygnalizuj tych powiadomień dźwiękiem ani wibracjami ani nie wyświetlaj ich na bieżącym ekranie."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asystent powiadomień"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Dostęp do powiadomień"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Obraz w obrazie"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Pozwól na tryb obraz w obrazie"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Pozwala tej aplikacji na tworzenie okna typu obraz w obrazie, gdy jest ona otwarta lub gdy ją opuścisz (np. aby kontynuować oglądanie filmu). To okno wyświetla się nad innymi używanymi aplikacjami."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Tak"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nie"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Dostęp do „Nie przeszkadzać”"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Żadne zainstalowane aplikacje nie prosiły o dostęp do funkcji „Nie przeszkadzać”."</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Wczytuję aplikacje..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nigdy nie pokazuj tych powiadomień"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Pokazuj powiadomienia"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nigdy nie pokazuj powiadomień w obszarze powiadomień ani na urządzeniach peryferyjnych"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Plakietka na ikonie aplikacji"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Pokazuj powiadomienia jako plakietki w aplikacji Google Home, jeśli są obsługiwane."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Zezwól na plakietkę z ikoną"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Zastąp Nie przeszkadzać"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Zezwól na działanie tych powiadomień, gdy Nie przeszkadzać ma ustawienie Tylko priorytetowe"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na ekranie blokady"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Wyświetlanie nad innymi"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Aplikacje, które mogą wyświetlać się nad innymi: <xliff:g id="COUNT_0">%1$d</xliff:g> z <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacje z uprawnieniami"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Tak"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nie"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalowanie nieznanych aplikacji"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalowanie aplikacji nieznane źródła"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modyfikowanie ustawień systemu"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Uprawnienie aplikacji do modyfikowania ust. systemu"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Zezwól na modyfikowanie ustawień systemu"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"To uprawnienie umożliwia aplikacji modyfikowanie ustawień systemu."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Tak"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nie"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dozwolone"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Niedozwolone"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Zezwól z tego źródła"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dwukrotny obrót otwiera aparat"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Otwórz aplikację aparatu, obracając dwukrotnie nadgarstkiem"</string>
@@ -3389,8 +3392,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Próg ostrzegawczy: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Próg ostrzegawczy: <xliff:g id="ID_1">%1$s</xliff:g> / Limit danych: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Cykl rozliczeniowy"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"<xliff:g id="ID_1">%1$s</xliff:g>. każdego miesiąca"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Ograniczenia sieci"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> ograniczenia</item>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index 5619fb9..b5d9790 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Boa"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Somente quando conectado"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Somente quando conectado"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 dias"</item>
     <item msgid="6600989128423965319">"Definir ciclo de uso..."</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 8cd889a..2dd7411 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Você agora é um desenvolvedor!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Não é necessário. Você já é um desenvolvedor."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Redes sem fio e outras"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexões"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Desconectar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Isso encerrará sua conexão com:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Você não tem permissão para alterar as configurações de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> está visível para dispositivos próximos enquanto as configurações de Bluetooth estão abertas."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Endereço MAC do Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Desconectar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmissão"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Desativar perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s deseja acessar suas mensagens. Conceder acesso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitação de acesso ao cartão SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seu cartão SIM. A concessão de acesso ao cartão SIM desativará a conectividade de dados no seu dispositivo durante a conexão. Conceda acesso ao <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visível como <xliff:g id="DEVICE_NAME">^1</xliff:g> para outros dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Selecione o fuso horário"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Levantar para ativar"</string>
     <string name="doze_title" msgid="2259176504273878294">"Exibição de ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ativar a tela ao receber notificações"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre ativado"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostrar horário, ícones de notificação e outras informações"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamanho da fonte"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Tornar o texto maior ou menor"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Bloqueio do SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Usar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Como outro app está sendo exibido sobre essas opções, as configurações não podem responder à sua ação."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Se <xliff:g id="SERVICE">%1$s</xliff:g> for ativado, o dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Uma vez que o serviço de acessibilidade foi ativado, seu dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"A ativação do <xliff:g id="SERVICE">%1$s</xliff:g> afeta a criptografia de dados. Confirme seu padrão."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificações"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avançadas"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificações de trabalho"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir selos de ícone"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Piscar a luz"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na tela de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todo o conteúdo de notificações"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Média"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permitir som"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir som"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Não emitir som, vibrar ou mostrar parcialmente essas notificações na tela atual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistente de notificação"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acesso a notificações"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esse app crie uma janela picture-in-picture enquanto o app é aberto ou depois que você sai dele (por exemplo, para continuar a assistir um vídeo). Essa janela é sobreposta a outros apps que você está usando."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sim"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Não"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acesso \"Não perturbe\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nenhum app instalado solicitou o acesso \"Não perturbe\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Carregando apps…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nunca mostrar essas notificações"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificações"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nunca mostrar notificações na aba ou em dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Selo de ícone do app"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostrar notificações como selos no app Google Home, se compatível."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir selo de ícone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Modificar \"Não perturbe\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permitir que essas notificações continuem a interromper quando \"Não perturbe\" estiver definido para \"Somente prioridade\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na tela de bloqueio"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Sobrepor a outros apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> apps têm permissão para serem sobrepostos a outros apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps com permissão"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sim"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Não"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar apps desconhecidos"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar apps fontes desconhecidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Mudar configurações do sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permissão p/ app modificar configurações do sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir modificação de config. do sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Esta permissão permite que um app modifique configurações do sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sim"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Não"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permitido"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Não permitido"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permitir desta fonte"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Girar duas vezes para abrir a câmera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Abrir o app Câmera girando o pulso duas vezes"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Aviso de dados em <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Aviso de dados em <xliff:g id="ID_1">%1$s</xliff:g> / Limite de dados em <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de faturamento"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Todos os meses, no dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrições de rede"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrição</item>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index c69a2e1..d79abab 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Boa"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Apenas quando estiver ligado"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Apenas quando estiver ligado"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 dias"</item>
     <item msgid="6600989128423965319">"Def. ciclo utilização..."</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 6b17d6d..9a5cc3b 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Agora é um programador!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Não é necessário, já é um programador."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Redes sem fios e outras"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Ligações"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Desligar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Isto terminará a sua ligação com:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Não tem autorização para alterar as definições de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> é visível para dispositivos próximos enquanto as definições de Bluetooth estiverem abertas."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Endereço MAC de Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Desligar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Difusão"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Desativar perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s pretende aceder às suas mensagens. Conceder acesso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Pedido de acesso ao SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> pretende aceder ao seu cartão SIM. Ao conceder acesso ao cartão SIM, desativa a conetividade de dados no seu dispositivo durante a ligação. Fornecer acesso a <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visível como <xliff:g id="DEVICE_NAME">^1</xliff:g> para outros dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Escolher o fuso horário"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ativar ao levantar"</string>
     <string name="doze_title" msgid="2259176504273878294">"Visualização de ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ativar o ecrã quando recebe notificações"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre ativado"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostrar as horas, os ícones das notificações e outras informações"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamanho do tipo de letra"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Aumentar ou diminuir o texto"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Definições de bloqueio do cartão SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Utilizar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> necessita de:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Uma vez que uma aplicação está a ocultar um pedido de autorização, as Definições não conseguem validar a sua resposta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Uma vez que outra aplicação está a ser apresentada por cima destas opções, as Definições não podem responder à sua ação."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Se ativar o <xliff:g id="SERVICE">%1$s</xliff:g>, o dispositivo não utilizará o bloqueio de ecrã para otimizar a encriptação de dados."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Uma vez que ativou um serviço de acessibilidade, o dispositivo não utilizará o bloqueio de ecrã para otimizar a encriptação de dados."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Uma vez que ligar <xliff:g id="SERVICE">%1$s</xliff:g> afeta a encriptação de dados, o utilizador tem de confirmar o seu padrão."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificações"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avançadas"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificações de trabalho"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir emblemas de ícones"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Emitir luz intermitente"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"No ecrã de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todas as notificações"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Média"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permitir som"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir som"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Não emitir som, vibrar, nem mostrar estas notificações no ecrã atual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistente de notificações"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acesso a notificações"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Imagem na imagem"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir imagem na imagem"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permita que esta aplicação crie uma janela de imagem na imagem enquanto a aplicação está aberta ou depois de sair da mesma (por exemplo, para continuar a ver um vídeo). Esta janela é apresentada sobre as outras aplicações que estiver a utilizar."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sim"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Não"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acesso Não incomodar"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nenhuma aplicação instalada solicitou acesso Não incomodar"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"A carregar aplicações..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nunca mostrar estas notificações"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificações"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nunca mostrar notificações no painel ou nos dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Balão do ícone da aplicação"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostrar notificações como emblemas na aplicação Google Home, se tal for suportado."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir emblema de ícone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Substituir o modo Não incomodar"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permitir que estas notificações continuem a interrompê-lo quando o modo Não incomodar estiver definido como Apenas prioridade"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"No ecrã de bloqueio"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Sobrepor a outras aplicações"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> aplicações autorizadas a sobreporem-se a outras aplicações"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicações com autorização"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sim"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Não"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar aplicações desconhecidas"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar aplicações fontes desconhecidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modificar definições sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Autorização da aplicação para mod. def. do sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir modificar as definições do sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Esta autorização permite que uma aplicação modifique as definições do sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sim"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Não"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Autorizada"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Não autorizada"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permitir desta fonte"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Torção dupla para a câmara"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Abrir a aplicação de câmara ao torcer o dispositivo no seu pulso"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Aviso de dados de <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Aviso de dados de <xliff:g id="ID_1">%1$s</xliff:g>/limite de dados de <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de faturação"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mensalmente no dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrições de rede"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> restrições</item>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 5619fb9..b5d9790 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Boa"</item>
     <item msgid="8986346415847956850">"Excelente"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Sempre"</item>
-    <item msgid="844721238536786870">"Somente quando conectado"</item>
-    <item msgid="1986753720941888596">"Nunca"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Sempre"</item>
-    <item msgid="7433294150916905997">"Somente quando conectado"</item>
-    <item msgid="1390404486722375028">"Nunca"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Últimos 30 dias"</item>
     <item msgid="6600989128423965319">"Definir ciclo de uso..."</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 8cd889a..2dd7411 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Você agora é um desenvolvedor!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Não é necessário. Você já é um desenvolvedor."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Redes sem fio e outras"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexões"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispositivo"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Desconectar?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Isso encerrará sua conexão com:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Você não tem permissão para alterar as configurações de Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> está visível para dispositivos próximos enquanto as configurações de Bluetooth estão abertas."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Endereço MAC do Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Desconectar <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmissão"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Desativar perfil?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s deseja acessar suas mensagens. Conceder acesso a %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitação de acesso ao cartão SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"O <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> deseja acessar seu cartão SIM. A concessão de acesso ao cartão SIM desativará a conectividade de dados no seu dispositivo durante a conexão. Conceda acesso ao <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Visível como <xliff:g id="DEVICE_NAME">^1</xliff:g> para outros dispositivos"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data e hora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Selecione o fuso horário"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Levantar para ativar"</string>
     <string name="doze_title" msgid="2259176504273878294">"Exibição de ambiente"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Ativar a tela ao receber notificações"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Sempre ativado"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Mostrar horário, ícones de notificação e outras informações"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Tamanho da fonte"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Tornar o texto maior ou menor"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Bloqueio do SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Usar <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> precisa:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Como um app está ocultando uma solicitação de permissão, as configurações não podem confirmar sua resposta."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Como outro app está sendo exibido sobre essas opções, as configurações não podem responder à sua ação."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Se <xliff:g id="SERVICE">%1$s</xliff:g> for ativado, o dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Uma vez que o serviço de acessibilidade foi ativado, seu dispositivo não usará o bloqueio de tela para melhorar a criptografia de dados."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"A ativação do <xliff:g id="SERVICE">%1$s</xliff:g> afeta a criptografia de dados. Confirme seu padrão."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificações"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avançadas"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificações de trabalho"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permitir selos de ícone"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Piscar a luz"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na tela de bloqueio"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Mostrar todo o conteúdo de notificações"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Média"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Alta"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permitir som"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permitir som"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Não emitir som, vibrar ou mostrar parcialmente essas notificações na tela atual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistente de notificação"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acesso a notificações"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permitir picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permite que esse app crie uma janela picture-in-picture enquanto o app é aberto ou depois que você sai dele (por exemplo, para continuar a assistir um vídeo). Essa janela é sobreposta a outros apps que você está usando."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Sim"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Não"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acesso \"Não perturbe\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nenhum app instalado solicitou o acesso \"Não perturbe\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Carregando apps…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nunca mostrar essas notificações"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Mostrar notificações"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nunca mostrar notificações na aba ou em dispositivos periféricos"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Selo de ícone do app"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Mostrar notificações como selos no app Google Home, se compatível."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permitir selo de ícone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Modificar \"Não perturbe\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permitir que essas notificações continuem a interromper quando \"Não perturbe\" estiver definido para \"Somente prioridade\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na tela de bloqueio"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Sobrepor a outros apps"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> apps têm permissão para serem sobrepostos a outros apps"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Apps com permissão"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Sim"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Não"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalar apps desconhecidos"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalar apps fontes desconhecidas"</string>
     <string name="write_settings" msgid="4797457275727195681">"Mudar configurações do sistema"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permissão p/ app modificar configurações do sistema"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permitir modificação de config. do sistema"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Esta permissão permite que um app modifique configurações do sistema."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Sim"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Não"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permitido"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Não permitido"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permitir desta fonte"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Girar duas vezes para abrir a câmera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Abrir o app Câmera girando o pulso duas vezes"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Aviso de dados em <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Aviso de dados em <xliff:g id="ID_1">%1$s</xliff:g> / Limite de dados em <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclo de faturamento"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Todos os meses, no dia <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restrições de rede"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> restrição</item>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index b42fe5e..61604fd 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bun"</item>
     <item msgid="8986346415847956850">"Excelent"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Întotdeauna"</item>
-    <item msgid="844721238536786870">"Doar atunci când este conectat"</item>
-    <item msgid="1986753720941888596">"Niciodată"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Întotdeauna"</item>
-    <item msgid="7433294150916905997">"Doar atunci când este conectat"</item>
-    <item msgid="1390404486722375028">"Niciodată"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Ultimele 30 de zile"</item>
     <item msgid="6600989128423965319">"Setați ciclu utilizare..."</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 86ba6b2..b6ddb9e 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -31,6 +31,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Ați devenit dezvoltator!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nu mai este nevoie, sunteți deja dezvoltator."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless și rețele"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Conexiuni"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Dispozitiv"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Deconectați?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Astfel se va încheia conexiunea cu:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nu aveți permisiunea de a modifica setările Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> este vizibil pentru dispozitivele din apropiere când conexiunea Bluetooth este deschisă."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresa MAC pentru Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Deconectați <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmitere"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Dezactivați profilul?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s dorește să acceseze mesajele dvs. Oferiți acces pentru %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Solicitare de acces la SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> dorește să acceseze cardul SIM. Dacă acordați accesul la cardul SIM, conexiunea de date de pe dispozitiv va fi dezactivată pe durata conectării. Acordați accesul pentru <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Vizibil ca <xliff:g id="DEVICE_NAME">^1</xliff:g> pentru alte dispozitive"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data și ora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Selectați fusul orar"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1033,6 +1039,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ridicați pentru a reactiva"</string>
     <string name="doze_title" msgid="2259176504273878294">"Afișare Ambient"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Activează ecranul când primiți notificări"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Activat permanent"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Afișați ora, pictogramele pentru notificări și alte informații"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Dimensiunea fontului"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Măriți sau micșorați textul"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Setări de blocare a cardului SIM"</string>
@@ -1879,8 +1887,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Utilizați <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> are funcțiile:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Deoarece o aplicație acoperă o solicitare de permisiune, Setările nu vă pot verifica răspunsul."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Deoarece o altă aplicație se afișează deasupra acestor opțiuni, Setările nu pot răspunde la acțiunea dvs."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Dacă activați <xliff:g id="SERVICE">%1$s</xliff:g>, dispozitivul nu va utiliza blocarea ecranului pentru a îmbunătăți criptarea datelor."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Pentru că ați activat un serviciu de accesibilitate, dispozitivul nu va utiliza blocarea ecranului pentru a îmbunătăți criptarea datelor."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Deoarece activarea serviciului <xliff:g id="SERVICE">%1$s</xliff:g> afectează criptarea datelor, trebuie să confirmați modelul."</string>
@@ -1971,7 +1978,7 @@
     <string name="details_subtitle" msgid="32593908269911734">"Detalii despre utilizare"</string>
     <string name="controls_subtitle" msgid="390468421138288702">"Ajustați utilizarea de energie"</string>
     <string name="packages_subtitle" msgid="4736416171658062768">"Pachete incluse"</string>
-    <string name="battery_abnormal_details_title" msgid="7803612642167433678">"Comportament anormal al aplicației"</string>
+    <string name="battery_abnormal_details_title" msgid="7803612642167433678">"Comportament anormal al aplicațiilor"</string>
     <string name="power_screen" msgid="3023346080675904613">"Ecran"</string>
     <string name="power_flashlight" msgid="7794409781003567614">"Lanternă"</string>
     <string name="power_camera" msgid="4976286950934622605">"Cameră foto"</string>
@@ -2816,6 +2823,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Notificări"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avansate"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Notificări profil de serviciu"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Permiteți insigne pictogramă"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Lumină intermitentă"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Pe ecranul de blocare"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Afișează integral conținutul notificărilor"</string>
@@ -2841,7 +2849,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Medie"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Ridicată"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgentă"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Permiteți sunetul"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Permiteți sunetul"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Sunetul și vibrațiile sunt dezactivate, iar aceste notificări nu se afișează pentru o scurtă durată pe ecranul actual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistent pentru notificări"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Acces la notificări"</string>
@@ -2871,8 +2879,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Permiteți modul picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Permiteți acestei aplicații să creeze o fereastră picture-in-picture în timp ce aplicația este deschisă sau după ce ieșiți (de exemplu, pentru a continua vizionarea unui videoclip). Această fereastră se afișează peste alte aplicații pe care le folosiți."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Da"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nu"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Acces la funcția Nu deranja"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nicio aplicație instalată nu a solicitat accesul Nu deranja"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Se încarcă aplicațiile..."</string>
@@ -2900,8 +2906,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Aceste notificări nu se afișează niciodată"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Afișați notificările"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nu afișați niciodată notificările în umbră sau pe dispozitive periferice"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Pictograma aplicației de insigne"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Afișați notificările ca insigne pe aplicația de pe ecranul de pornire, dacă sunt acceptate."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Permiteți insigne pictogramă"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ignoră Nu deranja"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Permiteți acestor notificări să vă întrerupă când modul Nu deranja este setat la Numai cu prioritate"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Pe ecranul de blocare"</string>
@@ -3236,8 +3241,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Afișare peste alte aplicații"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> din <xliff:g id="COUNT_1">%2$d</xliff:g> aplicații au voie să afișeze peste alte aplicații"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplicații cu permisiune"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nu"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalare apl. necunoscute"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalare aplicații din surse necunoscute"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modifică setările de sistem"</string>
@@ -3250,10 +3257,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Permisiune aplicație modificare setări de sistem"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Permiteți modificarea setărilor de sistem"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Având această permisiune, o aplicație poate să modifice setările de sistem."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Da"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nu"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Permise"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nepermise"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Permiteți din această sursă"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Două răsuciri pentru camera foto"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Deschideți aplicația Cameră foto răsucind din încheietura mâinii de două ori"</string>
@@ -3349,8 +3352,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Avertisment pentru date: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Avertisment pentru date: <xliff:g id="ID_1">%1$s</xliff:g>/Limită pentru date: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Ciclu de facturare"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"În fiecare lună pe data de <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Restricții de rețea"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> restricții</item>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 1f47436..621dd40 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Хороший"</item>
     <item msgid="8986346415847956850">"Отличный"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Не выключать"</item>
-    <item msgid="844721238536786870">"Только при питании от сети"</item>
-    <item msgid="1986753720941888596">"Всегда выключать"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Не выключать"</item>
-    <item msgid="7433294150916905997">"Только при питании от сети"</item>
-    <item msgid="1390404486722375028">"Всегда выключать"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"За последние 30 дней"</item>
     <item msgid="6600989128423965319">"Цикл использования данных"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 189bc05..39ec29e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Вы стали разработчиком!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Не нужно, вы уже разработчик"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Отключиться?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Произойдет разъединение с устройством &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"У вас нет разрешения на смену настроек Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Устройства поблизости могут обнаружить <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, пока открыты настройки Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC-адрес Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Отключить <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Передача данных"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Отключить профиль?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s хочет получить доступ к вашим сообщениям. Предоставить доступ %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Запрос на доступ к SIM-карте"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Устройство \"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>\" запрашивает доступ к вашей SIM-карте. Если вы его предоставите, будет установлено соединение, на время которого будут отключены все сервисы передачи данных. Открыть доступ устройству \"<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>\""</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Имя в списке устройств: <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Дата и время"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Выбрать часовой пояс"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Активация в вертикальном положении"</string>
     <string name="doze_title" msgid="2259176504273878294">"Автоматическое включение экрана"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Включать экран, когда приходит уведомление"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Всегда включено"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Показывать время, значки уведомлений и другую информацию"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Размер шрифта"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Увеличение или уменьшение размера шрифта"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Настройки блокировки SIM-карты"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Включить <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> будет:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Невозможно принять ваше согласие, поскольку запрос скрыт другим приложением."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Приложение \"Настройки\" не может ответить на ваше действие, поскольку его закрывает другое приложение."</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="enable_service_pattern_reason" msgid="777577618063306751">"Включение сервиса <xliff:g id="SERVICE">%1$s</xliff:g> затронет шифрование данных, поэтому необходимо ввести графический ключ."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Уведомления"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Расширенные настройки"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Рабочие уведомления"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Показывать наклейки на значках"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Световая индикация"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"На заблокированном экране"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Показывать уведомления полностью"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Средний"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Высокий"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Крайняя важность"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Со звуком"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Разрешить звуковой сигнал"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Отключить звуковой сигнал и вибрацию, не показывать оповещения поверх других приложений."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Настройка уведомлений"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Доступ к уведомлениям"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Картинка в картинке"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Поддержка режима \"Картинка в картинке\""</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Когда приложение открыто или когда вы выходите из него, оно может создавать окно \"Картинка в картинке\". Так вы можете, например, продолжить просмотр видео. Это окно отображается поверх остальных приложений."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Да"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Нет"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Доступ к функции \"Не беспокоить\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Установленные приложения не запрашивали доступ к функции \"Не беспокоить\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Загрузка..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Не показывать эти уведомления"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Включить уведомления"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Не показывать уведомления на фоне или на периферийных устройствах"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Наклейка на значке"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Показывать уведомления в виде значков в приложении Home (если функция поддерживается)"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Показывать наклейку на значке"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Переопределить \"Не беспокоить\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Разрешить эти уведомления, когда в режиме \"Не беспокоить\" выбрано \"Только важные\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"На заблокированном экране"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Поверх других приложений"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> из <xliff:g id="COUNT_1">%2$d</xliff:g> приложений отображаются поверх других окон"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Авторизованные приложения"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Да"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Нет"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Установка неизвестных приложений"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"установка приложений неизвестные источники"</string>
     <string name="write_settings" msgid="4797457275727195681">"Изменение системных настроек"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Разрешение на изменение системных настроек"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Разрешить изменять системные настройки"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Приложение сможет изменять системные настройки."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Да"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Нет"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Разрешено"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Запрещено"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Разрешить установку из этого источника"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Включать камеру движением запястья"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Чтобы открыть приложение \"Камера\", дважды поверните запястье."</string>
@@ -3389,8 +3392,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Ежемесячно, <xliff:g id="ID_1">%1$s</xliff:g> числа"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Ограничения трафика"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ограничение</item>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 3745655..aa1a012 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"හොඳ"</item>
     <item msgid="8986346415847956850">"ඉතා හොඳ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"සැමවිටම"</item>
-    <item msgid="844721238536786870">"පේනුව ගත කළ විට පමණක්"</item>
-    <item msgid="1986753720941888596">"කවදාවත් නොවේ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"සැමවිටම"</item>
-    <item msgid="7433294150916905997">"පේනුව සක්‍රිය කලවිට පමණක්"</item>
-    <item msgid="1390404486722375028">"කවදාවත් නොවේ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"අවසන් දින 30"</item>
     <item msgid="6600989128423965319">"භාවිත කිරීමේ කවය සකසන්න..."</item>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index b73058c..3de7d39 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ඔබ දැන් වර්ධකයෙකි"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"අවශ්‍ය නැත, ඔබ දැනටමත් වර්ධකයෙකි."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"විසන්ධි කරන්නද?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"මෙය &lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt; සමඟ ඔබගේ සම්බන්ධය අවසන් කරනු ඇත"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"බ්ලූටූත් සැකසීම් වෙනස් කිරීමට ඔබට අවසර නැත."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"බ්ලූටූත් සැකසීම් විවෘත කරන අතරතුර ආසන්න උපකරණ වලට <xliff:g id="DEVICE_NAME">%1$s</xliff:g> දර්ශනය වේ."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"බ්ලූටූත් MAC ලිපිනය: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> විසන්ධි කරද?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"විකාශනය කරමින්"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"අක්‍රිය පැතිකඩක්ද?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s හට ඔබගේ පණිවිඩ වෙත ප්‍රවේශ විමට අවශ්‍යයි. %2$s හට ප්‍රවේශය දෙන්නද?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM කාඩ්පත් ප්‍රවේශය ඉල්ලීම"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> හට ඔබේ SIM කාඩ්පත වෙත පිවිසීමට අවශ්‍යයි. SIM කාඩ්පතට ප්‍රවේශය ලබා දිම ඔබේ උපාංගයට සබැඳුම් කාල සීමාව සඳහා දත්ත සබැඳුම් හැකියාව අබල කරනු ඇත. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> වෙත ප්‍රවේශය ලබා දෙන්න"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"වෙනත් උපාංගවලට <xliff:g id="DEVICE_NAME">^1</xliff:g> ලෙස දෘශ්‍යමානයි"</string>
     <string name="date_and_time" msgid="9062980487860757694">"දිනය සහ වේලාව"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"වේලා කලාපය තෝරන්න"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"අවදි කිරීමට ඔසවන්න"</string>
     <string name="doze_title" msgid="2259176504273878294">"ස්ථානික දර්ශනය"</string>
     <string name="doze_summary" msgid="3846219936142814032">"ඔබට දැනුම්දීම් ලැබුණ විට තිරය අවදි කරන්න"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"සැමවිට ක්‍රියාත්මක"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"වේලාව, දැනුම්දීම් තොරතුරු, සහ වෙනත් තොරතුරු පෙන්වන්න"</string>
     <string name="title_font_size" msgid="4405544325522105222">"අකුරු ප්‍රමාණය"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"පෙළ වඩාත් විශාල හෝ කුඩා කරන්න"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM කාඩ් පතෙහි අඟුළු සැකසුම්"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> භාවිත කරන්න ද?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> හට අවශ්‍යයි:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"යෙදුම අවසර ඉල්ලීමක් කරන නිසා, සැකසීම් හට ඔබගේ ප්‍රතිචාරය සත්‍යාපනය කළ නොහැක."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"වෙනත් යෙදුමක් මෙම විකල්පවල ඉහළින්ම සංදර්ශනය වන නිසා, සැකසීම්වලට ඔබේ ක්‍රියාවට ප්‍රතිචාර දැක්විය නොහැකිය."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> බලපාන දත්ත සංකේතනය ක්‍රියාත්මක කරන නිසා, ඔබගේ රටාව ඔබට සහතික කිරීමට අවශ්‍යය."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"දැනුම්දීම්"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"උසස්"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"වැඩ දැනුම්දීම්"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"නිරූපක ලාංඡනයට ඉඩ දෙන්න"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"නිවී නිවී දැල්වෙන එළිය"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"අගුලු තිරය මත"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"සියලුම දැනුම්දීමේ අන්තර්ගත පෙන්වන්න"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"මධ්‍යම"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"ඉහළ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"හදිසි"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ශබ්දයට ඉඩ දීම"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ශබ්දයට ඉඩ දෙන්න"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ශබ්ද කිරීම, කම්පනය කිරීම, හෝ මෙම දැනුම්දීම් වත්මන් තිරයේ දසුන මතට එබිකම් කිරීම නොකරන්න."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"දැනුම්දීම් සහායක"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"දැනුම්දීම් ප්‍රවේශනය"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"පින්තූරය-තුළ-පින්තූරය"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"පින්තූරය-තුළ-පින්තූරය වෙත ඉඩ දෙන්න"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"මෙම යෙදුම විවෘතව තිබෙන අතරතුර හෝ එයින් ඉවත් වන විට පින්තූරය-තුළ-පින්තූරය කවුළුවක් සැදීමට ඉඩ දෙන්න (උදාහරණයකට, වීඩියෝව දිගටම බැලීමට). මෙම කවුළුව ඔබ භාවිතා කරන අනෙක් යෙදුම් උඩින් පෙන්වයි."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ඔව්"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"නැත"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"ප්‍රවේශය බාධා නොකරන්න"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ස්ථාපිත යෙදුම් කිසිවක් ප්‍රවේශය බාධා නොකරන්න ඉල්ලා නැත"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"යෙදුම් පූරණය වේ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"මෙම දැනුම්දීම් කිසිදා නොපෙන්වන්න"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"දැනුම්දීම් පෙන්වන්න"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"සෙවන තුළ හෝ පර්යන්ත උපාංග මත දැනුම්දීම් කිසිදා නොපෙන්වන්න"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"බැජ් යෙදුම් නිරූපකය"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"සහාය දක්වන්නේ නම්, මුල් පිටු යෙදුම මත ලාංඡන ලෙස දැනුම්දීම් පෙන්වන්න."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"නිරූපක ලාංඡනයට ඉඩ දෙන්න"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"බාධා නොකරන්න ඉක්මවන්න"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"බාධා නොකරන්න, ප්‍රමුඛතා පමණි වෙත සකසා ඇති විට මෙම දැනුම්දීම්වලට බාධා කිරීමට දිගටම ඉඩ දෙන්න"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"අගුලු තිරය මත"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"වෙනත් යෙදුම් උඩින් පෙන්වන්න"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"යෙදුම් <xliff:g id="COUNT_1">%2$d</xliff:g>කින් <xliff:g id="COUNT_0">%1$d</xliff:g> කට වෙනත් යෙදුම් උඩින් පෙන්වන්න අවසර ඇත"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"අවසරය ඇති යෙදුම්"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ඔව්"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"නැත"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"නොදන්නා යෙදුම් ස්ථාපනය කරන්න"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"යෙදුම් ස්ථාපනය නොදන්නා මුලාශ්‍ර"</string>
     <string name="write_settings" msgid="4797457275727195681">"පද්ධති සැකසීම් විකරණය කරන්න"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"යෙදුම් පද්ධති සැකසීම් විකරණය කිරීමේ අවසරය"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"පද්ධති සැකසීම් විකරණය කිරීමට ඉඩ දෙන්න"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"මෙම අවසරය යෙදුමකට පද්ධති සැකසීම් විකරණය කිරීමට ඉඩ දෙයි."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"ඔව්"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"නැත"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"ඉඩ දුන්"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ඉඩ නොදෙන"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"මෙම මූලාශ්‍රයෙන් ඉඩ දෙන්න"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"කැමරාව සඳහා දෙවරක් කරකවන්න"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"ඔබේ මැණික් කටුව දෙවරක් කරකවා කැමරා යෙදුම විවෘත කරන්න"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"<xliff:g id="ID_1">%1$s</xliff:g> දින මාසිකව"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ජාලය සීමා කිරීම්"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one">සීමා <xliff:g id="COUNT">%1$d</xliff:g>ක්</item>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index cd29ee5..90cc3ec 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobré"</item>
     <item msgid="8986346415847956850">"Vynikajúce"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Vždy"</item>
-    <item msgid="844721238536786870">"Iba počas napájania"</item>
-    <item msgid="1986753720941888596">"Nikdy"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Vždy"</item>
-    <item msgid="7433294150916905997">"Iba počas napájania"</item>
-    <item msgid="1390404486722375028">"Nikdy"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Posledných 30 dní"</item>
     <item msgid="6600989128423965319">"Nastaviť cyklus využitia"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 41d9ba4..7266b27 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Teraz ste vývojár!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nie je to potrebné, už ste vývojár."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Bezdrôtové pripojenia a siete"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Pripojenia"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Zariadenie"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Odpojiť?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Táto akcia ukončí vaše pripojenie so zariadením:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nemáte povolenie na zmenu nastavení Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Pri otvorených nastaveniach Bluetooth je zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g> viditeľné pre zariadenia v okolí."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresa MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Odpojiť zariadenie <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Vysielanie"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Zakázať profil?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"Zariadenie %1$s chce získať prístup k vašim správam. Chcete zariadeniu %2$s tento prístup umožniť?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Žiadosť o prístup k SIM karte"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Zariadenie <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> chce pristupovať k vašej SIM karte. Udelenie prístupu k SIM karte zakáže na vašom zariadení dátové pripojenie po dobu jeho trvania. Udeliť prístup zariadeniu <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Viditeľné pre ostatné zariadenia ako <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Dátum a čas"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Zvoľte časové pásmo"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Prebudiť zdvihnutím"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambientné zobrazenie"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Prebudiť obrazovku, keď dostanete upozornenie"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Vždy zapnuté"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Zobrazovať čas, ikony upozornení a ďalšie informácie"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Veľkosť písma"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Zväčšite alebo zmenšite text"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Nastavenia zámky SIM karty"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Používať službu <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> potrebuje:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Nastavenia nemôžu overiť vašu odpoveď, pretože určitá aplikácia blokuje žiadosť o povolenie."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Nastavenia nemôžu reagovať na vašu akciu, pretože sa nad týmito možnosťami zobrazuje iná aplikácia."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ak zapnete službu <xliff:g id="SERVICE">%1$s</xliff:g>, vaše zariadenie nepoužije zámku obrazovky na zvýšenie miery šifrovania údajov."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Keďže ste zapli služby dostupnosti, vaše zariadenie nepoužije zámku obrazovky na zvýšenie miery šifrovania údajov."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Keďže zapnutie služby <xliff:g id="SERVICE">%1$s</xliff:g> ovplyvňuje šifrovanie údajov, musíte potvrdiť svoj vzor."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Upozornenia"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Rozšírené"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Pracovné upozornenia"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Povoliť odznaky na ikonách"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blikanie"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na uzamknutej obrazovke"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Zobrazovať všetok obsah upozornení"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Stredná"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Vysoká"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Neodkladná"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Povoliť zvuk"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Povoliť zvuk"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Bez zvukov, vibrovania alebo posunutia do zobrazenia na aktuálnej obrazovke"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistent upozornení"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Prístup k upozorneniam"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Obraz v obraze"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Povoliť obraz v obraze"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Povoliť tejto aplikácii vytvoriť okno obrazu v obraze, kým je otvorená alebo keď ju opustíte (napríklad pokračovanie v pozeraní videa). Toto okno sa zobrazuje cez ďalšie aplikácie, ktoré používate."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Áno"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nie"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Prístup k režimu Nerušiť"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Prístup k nastaveniu Nerušiť si nevyžiadali žiadne nainštalované aplikácie"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Načítavajú sa aplikácie..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Tieto upozornenia nikdy nezobrazovať"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Zobrazovať upozornenia"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nikdy nezobrazovať upozornenia na paneli ani v periférnych zariadeniach"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ikona odznaku na aplikácii"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Zobrazovať upozornenia ako odznaky v aplikácii Home, ak je táto funkcia podporovaná."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Povoliť odznak na ikone"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Prepísať možnosť Nerušiť"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Umožniť týmto upozorneniam vyrušiť ma, ak je možnosť Nerušiť nastavená na možnosť Iba prioritné"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na uzamknutej obrazovke"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Zobrazenie cez iné aplikácie"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> z <xliff:g id="COUNT_1">%2$d</xliff:g> aplikácií má povolené zobrazovanie cez iné aplikácie"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikácie s povolením"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Áno"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nie"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Inštalácia neznámych aplikácií"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"inštalácia aplikácie neznáme zdroje"</string>
     <string name="write_settings" msgid="4797457275727195681">"Úpravy nastavení systému"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Povolenie pre aplikáciu na úpravy nastavení systému"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Povoliť úpravy nastavení systému"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Toto povolenie umožňuje aplikácii upravovať nastavenia systému."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Áno"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nie"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Povolené"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nie je povolené"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Povoliť z tohto zdroja"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Fotoaparát – dvakrát pokrúťte zápästím"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Otvorte aplikáciu fotoaparátu tak, že dvakrát pokrútite zápästím"</string>
@@ -3389,8 +3392,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Dátové upozornenie <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Dátové upozornenie <xliff:g id="ID_1">%1$s</xliff:g> / dátový limit <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Fakturačný cyklus"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Každý mesiac v <xliff:g id="ID_1">%1$s</xliff:g>. deň"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Obmedzenia siete"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> obmedzenia</item>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index a07385c..4e034f3 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Dobro"</item>
     <item msgid="8986346415847956850">"Odlično"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Vedno"</item>
-    <item msgid="844721238536786870">"Samo, ko je priključen"</item>
-    <item msgid="1986753720941888596">"Nikoli"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Vedno"</item>
-    <item msgid="7433294150916905997">"Samo, ko je priključen"</item>
-    <item msgid="1390404486722375028">"Nikoli"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Zadnjih 30 dni"</item>
     <item msgid="6600989128423965319">"Nastav. cikla porabe ..."</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 4a909ff..cd0da30 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Zdaj ste razvijalec."</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Ni treba, ker ste že razvijalec."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Brezžično in omrežja"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Povezave"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Naprava"</string>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Želite prekiniti povezavo?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"S tem bo prekinjena povezava z napravo:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nimate dovoljenja za spreminjanje nastavitev za Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Naprava <xliff:g id="DEVICE_NAME">%1$s</xliff:g> je vidna napravam v bližini, ko so odprte nastavitve za Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Naslov MAC za Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Ali želite prekiniti povezavo z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Oddajanje"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Želite onemogočiti profil?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s želi dostopati do vaših sporočil. Želite omogočiti dostop za %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Zahteva za dostop do kartice SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> želi dostopati do vaše kartice SIM. Z omogočanjem dostopa do kartice SIM bodo v napravi za čas trajanja povezave onemogočene podatkovne povezave. Omogočite dostop za <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Drugim napravam vidno kot <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum in ura"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Izberite časovni pas"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Preklop iz stanja pripravlj. z dviganjem"</string>
     <string name="doze_title" msgid="2259176504273878294">"Prikaz na podlagi okolja"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Preklop zaslona iz stanja pripravljenosti, ko prejmete obvestila"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Vedno vklopljeno"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Pokaži čas, ikone obvestil in druge informacije"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Velikost pisave"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Pomanjšava ali povečava besedila"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Nastavitve zaklepanja kartice SIM"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Želite uporabiti storitev <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> mora:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Ker aplikacija zakriva zahtevo za dovoljenje, z nastavitvami ni mogoče preveriti vašega odziva."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Ker te možnosti prekriva druga aplikacija, se aplikacija Nastavitve ne more odzvati na vaše dejanje."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Če vklopite storitev <xliff:g id="SERVICE">%1$s</xliff:g>, vaša naprava ne bo uporabljala zaklepanja zaslona za izboljšanje šifriranja podatkov."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Vaša naprava ne bo uporabljala zaklepanja zaslona za izboljšanje šifriranja podatkov, ker ste vklopili storitev za ljudi s posebnimi potrebami."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Ker vklop storitve <xliff:g id="SERVICE">%1$s</xliff:g> vpliva na šifriranje podatkov, morate potrditi vzorec."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Obvestila"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Dodatno"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Obvestila za delovni profil"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Omogoči značko na ikonah"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Utripajoča lučka"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Na zaklenjenem zaslonu"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Pokaži vso vsebino obvestil"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Srednja pomembnost"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Visoka pomembnost"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Nujno"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Omogoči zvok"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Omogoči zvok"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Na trenutnem zaslonu ne predvajaj zvoka, vibriraj ali na hitro prikazuj teh obvestil."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Pomočnik za obvestila"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Dostop do obvestil"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Slika v sliki"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Dovoli sliko v sliki"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Dovoli tej aplikaciji, da ustvari okno s sliko v sliki, medtem ko je aplikacija odprta ali potem ko jo zapustite (na primer, da nadaljujete z ogledom videoposnetka). To okno prekrije druge aplikacije, ki jih uporabljate."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Da"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ne"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Dostop do načina »ne moti«"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Nobena nameščena aplikacija ni zahtevala dostopa do načina »ne moti«"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Nalaganje aplikacij ..."</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Nikoli ne prikaži teh obvestil"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Pokaži obvestila"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Nikoli ne pokaži obvestil na zaslonu z obvestili ali v zunanjih napravah."</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Značka na ikoni aplikacije"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Pokaži obvestila kot značke v aplikaciji Home, če je to podprto."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Omogoči značko na ikoni"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Preglasitev načina »Ne moti«"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Naj se ta obvestila prikazujejo tudi, ko je način »Ne moti« nastavljen na »Samo prednostno«"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Na zaklenjenem zaslonu"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Prekrivanje drugih aplikacij"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g> aplikacij, ki lahko prekrivajo druge aplikacije"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacije z dovoljenjem"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Da"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ne"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Nameščanje neznanih aplikacij"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"nameščanje aplikacij neznani viri"</string>
     <string name="write_settings" msgid="4797457275727195681">"Spreminjanje sist. nastavitev"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Dovoljenje aplikacijam za sprem. sistem. nastavitev"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Dovoli spreminjanje sistemskih nastavitev"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"To dovoljenje aplikaciji dovoljuje spreminjanje sistemskih nastavitev."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Da"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ne"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Dovoljene"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nedovoljene"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Dovoli aplikacije iz tega vira"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dvakratno sukanje za fotoaparat"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Odprite aplikacijo za fotografiranje, tako da dvakrat zasukate zapestje"</string>
@@ -3389,8 +3392,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Opozorilo za prenos podatkov: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Opozorilo za prenos podatkov: <xliff:g id="ID_1">%1$s</xliff:g>/omejitev prenosa podatkov: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Obračunsko obdobje"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Mesečno na dan <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Omejitve omrežja"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> omejitev</item>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 2340b34..7324054 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"I mirë"</item>
     <item msgid="8986346415847956850">"I shkëlqyer"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Gjithmonë!"</item>
-    <item msgid="844721238536786870">"Vetëm kur është i futur në prizë"</item>
-    <item msgid="1986753720941888596">"Asnjëherë!"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Gjithmonë"</item>
-    <item msgid="7433294150916905997">"Vetëm kur është në prizë"</item>
-    <item msgid="1390404486722375028">"Asnjëherë!"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 ditët e fundit"</item>
     <item msgid="6600989128423965319">"Cakto ciklin e përdorimit..."</item>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 2743cc5..68042b3 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Tani je zhvillues!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Nuk ka nevojë, ti je programues tashmë!"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Rrjetet me valë"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Lidhjet"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Pajisja"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Të shkëputet?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Kjo do të mbyllë lidhjen tënde me:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Nuk ke leje për të ndryshuar cilësimet e \"Bluetooth-it\"."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> është e dukshme për pajisjet në afërsi kur Cilësimet e Bluetooth-it janë të hapura."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Adresa MAC për Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Të shkëputet <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Transmetimi"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Të çaktivizohet profili?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s kërkon të ketë qasje te mesazhet e tua. Të lejohet qasja për %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Kërkesa për qasje në kartën SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Pajisja <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> dëshiron të ketë qasje në kartën tënde SIM. Dhënia e të drejtës për qasje në kartën SIM do të çaktivizojë lidhjen e të dhënave në pajisjen tënde gjatë kohëzgjatjes së lidhjes. Jepi qasje pajisjes <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"E dukshme si <xliff:g id="DEVICE_NAME">^1</xliff:g> për pajisjet e tjera"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Data dhe ora"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Zgjidh brezin orar"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ngrije për ta zgjuar"</string>
     <string name="doze_title" msgid="2259176504273878294">"Shfaqja e ambientit"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Zgjoje ekranin kur të merren njoftime"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Gjithmonë aktiv"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Shfaq orën, ikonat e njoftimeve dhe informacione të tjera"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Madhësa e shkrimit"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Bëje tekstin më të madh ose më të vogël"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Kyçja e kartës SIM"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Të përdoret \"<xliff:g id="SERVICE">%1$s</xliff:g>\"?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"\"<xliff:g id="SERVICE">%1$s</xliff:g>\" ka nevojë të:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Duke qenë se një aplikacion po bllokon një kërkesë për leje, \"Cilësimet\" nuk mund të verifikojnë përgjigjen tënde."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Cilësimet nuk mund t\'i përgjigjen veprimit tënd pasi një aplikacion tjetër po shfaqet mbi këto opsione."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Nëse aktivizon <xliff:g id="SERVICE">%1$s</xliff:g>, pajisja nuk do të përdorë kyçjen e ekranit për të rritur enkriptimin e të dhënave."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Për shkak se ke aktivizuar shërbimin e qasshmërisë, pajisja jote nuk do të përdorë kyçen e ekranit për përmirësimin e enkriptimit të të dhënave."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Meqenëse aktivizimi i <xliff:g id="SERVICE">%1$s</xliff:g> ndikon në enkriptimin e të dhënave, duhet të konfirmosh motivin tënd."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Njoftime"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Të përparuara"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Njoftimet e punës"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Lejo simbolet e ikonave"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Drita me pulsim"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Në ekranin e kyçjes"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Shfaq të gjithë përmbajtjen e njoftimit"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Mesatare"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"E lartë"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Urgjente"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Lejo tingullin"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Lejo tingullin"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Mos lësho tingull, dridhje apo t\'i shfaqësh me shpejtësi në pamje këto njoftime në ekranin aktual."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Asistenti i njoftimeve"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Qasja te njoftimet"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Figurë brenda figurës"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Lejo figurë brenda figurës"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Lejoje këtë aplikacion të krijojë dritare figurë brenda figure ndërkohë që aplikacioni është i hapur ose pasi të dalësh prej tij (për shembull, për të vazhduar shikimin e një videoje). Kjo dritare shfaqet mbi aplikacionet e tjera që po përdor."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Po"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Jo"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Qasja te \"Mos shqetëso\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Asnjë aplikacion i instaluar nuk ka kërkuar qasje te \"Mos shqetëso\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Po ngarkon aplikacionet..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Mos i shfaq asnjëherë këto njoftime"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Shfaq njoftimet"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Mos shfaq asnjëherë njoftime në hije ose në pajisje periferike"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ikona e aplikacionit me simbolin dallues"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Shfaq njoftimet si simbole dalluese në aplikacionin bazë, nëse mbështetet."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Simboli dallues i ikonës së lejimit"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Anulo \"Mos shqetëso\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Lejo që këto njoftime të vazhdojnë të ndërpresin kur \"Mos shqetëso\" është vendosur në \"Vetëm prioritare\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Në ekranin e kyçjes"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Shfaq mbi aplikacionet e tjera"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> nga <xliff:g id="COUNT_1">%2$d</xliff:g> gjithsej lejohen të shfaqen mbi aplikacionet e tjera"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Aplikacionet me leje"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Po"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Jo"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Instalo aplikacione të panjohura"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"instalo aplikacione nga burime të panjohura"</string>
     <string name="write_settings" msgid="4797457275727195681">"Modifiko cilësimet e sistemit"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Leje për aplikacionin që të modifikojë cilësimet e sistemit"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Lejo modifikimin e cilësimeve të sistemit"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Kjo leje e lejon një aplikacion të modifikojë cilësimet e sistemit."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Po"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Jo"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Lejohet"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Nuk lejohet"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Lejo nga ky burim"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Rrotullo dy herë për kamerën"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Hap aplikacionin e kamerës duke rrotulluar kyçin e dorës dy herë"</string>
@@ -3310,8 +3313,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Paralajmërimi i të dhënave <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Paralajmërimi i të dhënave <xliff:g id="ID_1">%1$s</xliff:g> / Kufiri i të dhënave <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Cikli i faturimit"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Çdo muaj në ditën <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Kufizimet e rrjetit"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> kufizime</item>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 6212910..3085397 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Добра"</item>
     <item msgid="8986346415847956850">"Одлична"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Увек"</item>
-    <item msgid="844721238536786870">"Само кад се пуни"</item>
-    <item msgid="1986753720941888596">"Никад"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Увек"</item>
-    <item msgid="7433294150916905997">"Само кад се пуни"</item>
-    <item msgid="1390404486722375028">"Никада"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Последњих 30 дана"</item>
     <item msgid="6600989128423965319">"Подеси циклус потрошње..."</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5849f1d..4e603db 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -31,10 +31,12 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Постали сте програмер!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Нема потребе, већ сте програмер."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Бежична веза и мреже"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Везе"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Уређај"</string>
-    <string name="header_category_personal" msgid="3310195187905720823">"Лично"</string>
+    <string name="header_category_personal" msgid="3310195187905720823">"Лични"</string>
     <string name="header_category_access" msgid="7580499097416970962">"Приступ"</string>
     <string name="header_category_system" msgid="2816866961183068977">"Систем"</string>
     <string name="radio_info_data_connection_enable" msgid="8656750679353982712">"Омогући везу за пренос података"</string>
@@ -111,7 +113,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Желите ли да прекинете везу?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Овим ћете прекинути везу са уређајем:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Немате дозволу за промену подешавања Bluetooth-а."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> је видљив уређајима у близини док су Bluetooth подешавања отворена."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC адреса Bluetooth-а: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Желите ли да прекинете везу са уређајем <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Емитовање"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Желите ли да онемогућите профил?"</string>
@@ -159,6 +164,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s жели да приступи порукама. Желите ли да одобрите приступ за %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Захтев за приступ SIM картици"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> жели да приступа SIM картици. Одобравање приступа SIM картици ће онемогућити везу за пренос података на уређају док траје повезивање. Дајте приступ уређају <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Другим уређајима видљив као <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Датум и време"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Избор временске зоне"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -585,7 +591,7 @@
       <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> активне апликације</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> активних апликација</item>
     </plurals>
-    <string name="manage_trust_agents" msgid="4629279457536987768">"Trust agents"</string>
+    <string name="manage_trust_agents" msgid="4629279457536987768">"Поуздани агенти"</string>
     <string name="disabled_because_no_backup_security" msgid="6877660253409580377">"Да бисте га користили, прво подесите закључавање екрана"</string>
     <string name="manage_trust_agents_summary" msgid="1475819820389620546">"Ништа"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="3935182396726101824">
@@ -962,7 +968,7 @@
     <string name="search_settings" msgid="1910951467596035063">"Претрага"</string>
     <string name="search_settings_summary" msgid="9205656546570654169">"Управљање подешавањима претраге и историјом"</string>
     <string name="search_settings_no_results" msgid="8799027492641230999">"Нема резултата"</string>
-    <string name="display_settings" msgid="7965901687241669598">"Приказ"</string>
+    <string name="display_settings" msgid="7965901687241669598">"Екран"</string>
     <string name="accelerometer_title" msgid="7854608399547349157">"Аутоматско ротирање екрана"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="429982132339828942">"Промени положај аутоматски приликом ротирања таблета"</string>
     <string name="accelerometer_summary_on" product="default" msgid="1133737282813048021">"Аутоматска промена положаја приликом ротације телефона"</string>
@@ -1033,6 +1039,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Подигни за активацију"</string>
     <string name="doze_title" msgid="2259176504273878294">"Амбијентални екран"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Пробудите екран када примите обавештења"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Увек укључено"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Приказује време, иконе обавештења и друге информације"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Величина фонта"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Омогућава да текст буде већи или мањи"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Закључавање SIM картице"</string>
@@ -1879,8 +1887,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Желите ли да користите <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> треба:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Пошто апликација скрива захтев за дозволу, Подешавања не могу да верификују одговор."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Подешавања не могу да одговоре на радњу јер се нека друга апликација приказује преко ових опција."</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="enable_service_pattern_reason" msgid="777577618063306751">"Пошто укључивање услуге <xliff:g id="SERVICE">%1$s</xliff:g> утиче на шифровање података, треба да потврдите шаблон."</string>
@@ -2202,7 +2209,7 @@
     <string name="no_device_admins" msgid="4846602835339095768">"Нема доступних апликација за администратора уређаја"</string>
     <string name="personal_device_admin_title" msgid="2849617316347669861">"Лични"</string>
     <string name="managed_device_admin_title" msgid="7853955652864478435">"Посао"</string>
-    <string name="no_trust_agents" msgid="7450273545568977523">"Trust agents - Недоступно"</string>
+    <string name="no_trust_agents" msgid="7450273545568977523">"Нема доступних поузданих агената"</string>
     <string name="add_device_admin_msg" msgid="1501847129819382149">"Активирај апликацију за администраторе?"</string>
     <string name="add_device_admin" msgid="4192055385312215731">"Активирај ову апликацију за администраторе уређаја"</string>
     <string name="device_admin_add_title" msgid="3140663753671809044">"Администратор уређаја"</string>
@@ -2816,6 +2823,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Обавештења"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Напредна"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Обавештења за Work"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Дозволи значке на иконама"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Укључи треперење лампице"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"На закључаном екрану"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Прикажи сав садржај обавештења"</string>
@@ -2841,7 +2849,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Средњи"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Висок"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Хитан"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дозволи звук"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дозволи звук"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Нема никаквог звука ни вибрације нити се ова обавештења накратко приказују на актуелном екрану."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Помоћник за обавештења"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Приступ обавештењима"</string>
@@ -2871,8 +2879,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Слика у слици"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Дозволи слику у слици"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Дозволите овој апликацији да прави прозор слике у слици док је отворена или када изађете из ње (на пример, да бисте наставили да гледате неки видео). Овај прозор се приказује преко других апликација које користите."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Да"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Не"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Приступ опцији Не узнемиравај"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Ниједна инсталирана апликација није захтевала приступ опцији Не узнемиравај"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Учитавају се апликације..."</string>
@@ -2900,8 +2906,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Никада не приказуј ова обавештења"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Приказуј обавештења"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Обавештења се никада не приказују на траци или периферијским уређајима"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Икона значке за апликацију"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Приказује обавештења као значке у апликацији Home ако је то подржано."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Дозволи значку на икони"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Замени режим Не узнемиравај"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Омогућава да ова обавештења наставе да се приказују када је режим Не узнемиравај подешен на опцију Само приоритетни прекиди"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"На закључаном екрану"</string>
@@ -3042,7 +3047,7 @@
     <string name="storage_used" msgid="7128074132917008743">"Меморијски простор у употреби"</string>
     <string name="change" msgid="6657848623929839991">"Промени"</string>
     <string name="change_storage" msgid="600475265207060436">"Промените меморију"</string>
-    <string name="notifications_label" msgid="8543457911148619898">"Обавештења апликације"</string>
+    <string name="notifications_label" msgid="8543457911148619898">"Обавештења о апликацији"</string>
     <string name="notifications_enabled" msgid="6983396130566021385">"Укључена"</string>
     <string name="notifications_disabled" msgid="334416731283131597">"Све је искључено"</string>
     <string name="notifications_partly_blocked" msgid="592071133950126656">"Укључених категорија: <xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3168,12 +3173,12 @@
     <string name="usb_use_power_only" msgid="6426550616883919530">"Напајање"</string>
     <string name="usb_use_power_only_desc" msgid="3461232831015575152">"Пуните повезани уређај. Ради само са уређајима који подржавају пуњење преко USB-а."</string>
     <string name="usb_use_file_transfers" msgid="7409600791007250137">"Пренос датотека"</string>
-    <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преноси датотеке на други уређај"</string>
+    <string name="usb_use_file_transfers_desc" msgid="4235764784331804488">"Преносите датотеке на други уређај"</string>
     <string name="usb_use_photo_transfers" msgid="7794775645350330454">"Пренос слика (PTP)"</string>
-    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преноси слике или датотеке ако MTP није подржан (PTP)"</string>
+    <string name="usb_use_photo_transfers_desc" msgid="2963034811151325996">"Преносите слике или датотеке ако MTP није подржан (PTP)"</string>
     <string name="usb_use_MIDI" msgid="870922185938298263">"Коришћење уређаја у MIDI режиму"</string>
-    <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користи овај уређај као MIDI"</string>
-    <string name="usb_use" msgid="3256040963685055320">"Употребите USB за:"</string>
+    <string name="usb_use_MIDI_desc" msgid="8473936990076693175">"Користите овај уређај као MIDI"</string>
+    <string name="usb_use" msgid="3256040963685055320">"Користите USB за:"</string>
     <string name="usb_pref" msgid="1400617804525116158">"USB"</string>
     <string name="usb_summary_charging_only" msgid="7544327009143659751">"Пуњење уређаја"</string>
     <string name="usb_summary_power_only" msgid="3629517713817003738">"Напајање"</string>
@@ -3236,8 +3241,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Приказ преко других апликација"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Апликације са дозволом за приказ преко других: <xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Апликације са дозволом"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Да"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Не"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Инсталирајте непозн. апл."</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"инсталирање апликације непознати извори"</string>
     <string name="write_settings" msgid="4797457275727195681">"Мењање подешавања система"</string>
@@ -3250,10 +3257,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Дозвола за мењање подешавања система за апликацију"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Дозволи мењање подешавања система"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Ова дозвола дозвољава апликацији да мења подешавања система."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Да"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Не"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Дозвољено"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Није дозвољено"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Дозволи из овог извора"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Двапут заокрените за камеру"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Отворите апликацију Камера тако што ћете двапут заокренути ручни зглоб"</string>
@@ -3277,7 +3280,7 @@
     <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"Уто 18:02"</string>
     <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"Уто 18:03"</string>
     <string name="disconnected" msgid="4836600637485526329">"Није повезано"</string>
-    <string name="data_usage_summary_format" msgid="7507047900192160585">"Користи се <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
+    <string name="data_usage_summary_format" msgid="7507047900192160585">"Искоришћено је <xliff:g id="AMOUNT">%1$s</xliff:g> података"</string>
     <plurals name="notification_summary" formatted="false" msgid="3941492005316143599">
       <item quantity="one">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликацију</item>
       <item quantity="few">Искључено за <xliff:g id="COUNT">%d</xliff:g> апликације</item>
@@ -3349,8 +3352,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Сваког <xliff:g id="ID_1">%1$s</xliff:g>. у месецу"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Мрежна ограничења"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ограничење</item>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 26e17f8..7f3847c 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Bra"</item>
     <item msgid="8986346415847956850">"Utmärkt"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Alltid"</item>
-    <item msgid="844721238536786870">"Endast när den är inkopplad"</item>
-    <item msgid="1986753720941888596">"Aldrig"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Alltid"</item>
-    <item msgid="7433294150916905997">"Endast när den är inkopplad"</item>
-    <item msgid="1390404486722375028">"Aldrig"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Senaste 30 dagarna"</item>
     <item msgid="6600989128423965319">"Ange användningscykel ..."</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index dd93d06..e03a922 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Nu är du en utvecklare!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Det behövs inte. Du är redan utvecklare."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Trådlöst och nätverk"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Anslutningar"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Enhet"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Vill du koppla från?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Detta avslutar din anslutning till:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Du saknar behörighet att ändra Bluetooth-inställningarna."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Enheter i närheten kan se <xliff:g id="DEVICE_NAME">%1$s</xliff:g> när Bluetooth är på."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC-adress för Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Vill du koppla från <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Bluetooth-sändning"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vill du inaktivera profilen?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s vill ha åtkomst till dina meddelanden. Vill du ge %2$s åtkomst?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Begäran om åtkomst till SIM-kort"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> vill ha åtkomst till ditt SIM-kort. Om du ger den åtkomst till SIM-kortet inaktiveras dataanslutningen på enheten under tiden som anslutningen är upprättad. Ge <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> åtkomst"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Synlig för andra enheter som <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Datum och tid"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Välj tidszon"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Gå ur viloläget vid lyft"</string>
     <string name="doze_title" msgid="2259176504273878294">"Aktiv låsskärm"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Aktivera skärmen när du får aviseringar"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Alltid på"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Visa tid, aviseringsikoner och annan information"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Teckenstorlek"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Gör texten större eller mindre."</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Låsinställningar för SIM-kort"</string>
@@ -1314,7 +1322,7 @@
     <string name="master_clear_progress_title" msgid="5194793778701994634">"Rensar"</string>
     <string name="master_clear_progress_text" msgid="6559096229480527510">"Vänta ..."</string>
     <string name="call_settings_title" msgid="5188713413939232801">"Samtalsinställningar"</string>
-    <string name="call_settings_summary" msgid="7291195704801002886">"Ställ in röstbrevlåda, vidarebefordra samtal, samtal väntar, nummerpres."</string>
+    <string name="call_settings_summary" msgid="7291195704801002886">"Ställ in röstbrevlåda, vidarekoppla samtal, samtal väntar, nummerpres."</string>
     <string name="tether_settings_title_usb" msgid="6688416425801386511">"Internetdelning via USB"</string>
     <string name="tether_settings_title_wifi" msgid="3277144155960302049">"Mobil surfpunkt"</string>
     <string name="tether_settings_title_bluetooth" msgid="355855408317564420">"Delning via Bluetooth"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Vill du använda <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> behöver:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Svaret kan inte verifieras av Inställningar, eftersom en app skymmer en begäran om behörighet."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Det går inte att använda Inställningar eftersom en annan app visas ovanpå alternativen."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Om du aktiverar <xliff:g id="SERVICE">%1$s</xliff:g> används inte skärmlåset för att förbättra datakryptering på enheten."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Eftersom du har aktiverat en tillgänglighetstjänst används inte skärmlåset för att förbättra datakryptering på enheten."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Eftersom datakrypteringen påverkas om du aktiverar <xliff:g id="SERVICE">%1$s</xliff:g> måste du bekräfta ditt grafiska lösenord."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Meddelanden"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Avancerat"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Jobbaviseringar"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Tillåt ikonmärken"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Blinkande ljus"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"På låsskärmen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Visa allt aviseringsinnehåll"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Medelhög"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Hög"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Brådskande"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Tillåt ljud"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Tillåt ljud"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Inga ljud, ingen vibration och inga aviseringar som visas som snabbtitt på skärmen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Aviseringsassistent"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Åtkomst till aviseringar"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Bild-i-bild"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Tillåt bild-i-bild"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Tillåt att ett bild-i-bild-fönster skapas av appen medan den är öppen eller när du har slutat att använda den (till exempel när du fortsätter att titta på en video). Detta fönster visas ovanpå andra appar du använder."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ja"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Nej"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Stör ej-åtkomst"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Inga installerade appar har begärt Stör ej-åtkomst"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Läser in appar ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Visa aldrig de här aviseringarna"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Visa aviseringar"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Visa aldrig aviseringar i panelen eller på perifera enheter"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Märkesikon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Visa aviseringar som märken i appen Home om detta stöds"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Tillåt ikonmärke"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Åsidosätt Stör ej"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Fortsätt att få dessa aviseringar när Endast prioriterade har angetts för Stör ej"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"På låsskärmen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Visa ovanpå andra appar"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> av <xliff:g id="COUNT_1">%2$d</xliff:g> appar får visas ovanpå andra appar"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Appar med behörighet"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ja"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Nej"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Installera okända appar"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"installera appar okända källor"</string>
     <string name="write_settings" msgid="4797457275727195681">"Ändra systeminställningar"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Behörighet för app att ändra systeminställningar"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Tillåt att appen ändrar systeminställningar"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Med den här behörigheten kan appen ändra systeminställningarna."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ja"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Nej"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Tillåts"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Tillåts inte"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Tillåt från den här källan"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Två handledsvridningar öppnar kameran"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Öppna kameran med två handledsvridningar"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Datavarning vid <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Datavarning vid <xliff:g id="ID_1">%1$s</xliff:g>/datagräns på <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Faktureringsperiod"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Den <xliff:g id="ID_1">%1$s</xliff:g> varje månad"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Nätverksbegränsningar"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> begränsningar</item>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 7d6eba4..3a04de1 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Thabiti"</item>
     <item msgid="8986346415847956850">"Bora zaidi"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Daima"</item>
-    <item msgid="844721238536786870">"Wakati inachaji pekee"</item>
-    <item msgid="1986753720941888596">"Katu"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Daima"</item>
-    <item msgid="7433294150916905997">"Wakati inachaji pekee"</item>
-    <item msgid="1390404486722375028">"kamwe"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Siku 30 zilizopita"</item>
     <item msgid="6600989128423965319">"Weka mzunguko wa matumizi..."</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 22089f7..8ce24b4 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Sasa wewe ni msanidi programu!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Hakuna haja, tayari wewe ni msanidi programu."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wi-Fi na mitandao mingine"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Miunganisho"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Kifaa"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Tenganisha?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Hii ikakata muunganisho wako na:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Huna ruhusa ya kubadilisha mipangilio ya Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> inaonekana kwenye vifaa vya karibu wakati mipangilio ya Bluetooth imewashwa."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Anwani ya Bluetooth MAC: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Ungependa kuondoa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Inasambaza"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Wasifu ulemazwe?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s inataka kufikia ujumbe wako. Ruhusu ufikiaji kwa %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Ombi la idhini ya kufikia SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> inataka idhini ya kufikia kadi yako ya SIM. Ukiipa idhini ya kufikia kadi ya SIM, itazima muunganisho wa data kwenye kifaa chako katika kipindi ambacho imeunganishwa. Ipe <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> idhini ya ufikiaji"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Inaonekana kama <xliff:g id="DEVICE_NAME">^1</xliff:g> kwenye vifaa vingine"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Tarehe na saa"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Chagua saa za eneo"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -409,8 +415,8 @@
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="1060273569887301457">"Simba kompyuta kibao kwa njia fiche"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="1878996487755806122">"Simba simu"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="1868233637888132906">"Imesimbwa"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Unaweza kusimba akaunti zako, mipangilio, programu zilizopakuliwa na data husika, maudhui na faili nyingine kwa njia fiche. Baada ya kusimba kompyuta kibao yako kwa njia fiche, tukichukulia kwamba tayari umechagua njia ya kufunga skrini (yaani kwa mchoro au PIN au nenosiri), itabidi ufungue skrini ili uondoe msimbo wa njia fiche kwenye simu yako kila unapoiwasha. Njia nyingine pekee ya kuondoa msimbo wa njia fiche ni kurejesha mipangilio ya mwanzo ya kompyuta kibao yako, hatua itakayofuta data yako yote. \n\nUsimbaji fiche huchukua saa moja au zaidi. Lazima uanze betri ikiwa imejaa chaji na uweke kompyuta kibao yako kwenye chaji muda wote mchakato utakapokuwa ukiendelea. Ukikatisha, utapoteza baadhi au data yako yote."</string>
-    <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Unaweza kusimba akaunti zako, mipangilio, programu zilizopakuliwa na data husika, maudhui na faili nyingine kwa njia fiche. Baada ya kusimba simu yako kwa njia fiche, tukichukulia kwamba tayari umechagua njia ya kufunga skrini (yaani kwa mchoro au PIN au nenosiri), itabidi ufungue skrini ili uondoe msimbo wa njia fiche kwenye simu yako kila unapoiwasha. Njia nyingine pekee ya kuondoa msimbo wa njia fiche ni kurejesha mipangilio ya mwanzo ya simu yako, hatua itakayofuta data yako yote. \n\nUsimbaji fiche huchukua saa moja au zaidi. Lazima uanze betri ikiwa imejaa chaji na uweke simu yako kwenye chaji muda wote mchakato utakapokuwa ukiendelea. Ukikatisha, utapoteza baadhi au data yako yote."</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="503014594435731275">"Unaweza kusimba akaunti zako, mipangilio, programu zilizopakuliwa na data husika, maudhui na faili nyingine kwa njia fiche. Baada ya kusimba kompyuta kibao yako kwa njia fiche, tukichukulia kwamba tayari umechagua njia ya kufunga skrini (yaani kwa mchoro au PIN au nenosiri), itabidi ufungue skrini ili uondoe msimbo wa njia fiche kwenye kompyuta kibao yako kila unapoiwasha. Njia nyingine pekee ya kuondoa msimbo wa njia fiche ni kurejesha mipangilio ambayo kompyuta yako ilitoka nayo kiwandani, hatua itakayofuta data yako yote.\n\nUsimbaji fiche huchukua saa moja au zaidi. Lazima uanze betri ikiwa imejaa chaji na uweke kompyuta yako kwenye chaji muda wote mchakato utakapokuwa ukiendelea. Ukikatisha, utapoteza baadhi au data yako yote."</string>
+    <string name="crypt_keeper_desc" product="default" msgid="2579929266645543631">"Unaweza kusimba akaunti zako, mipangilio, programu zilizopakuliwa na data husika, maudhui na faili nyingine kwa njia fiche. Baada ya kusimba simu yako kwa njia fiche, tukichukulia kwamba tayari umechagua njia ya kufunga skrini (yaani kwa mchoro au PIN au nenosiri), itabidi ufungue skrini ili uondoe msimbo wa njia fiche kwenye simu yako kila unapoiwasha. Njia nyingine pekee ya kuondoa msimbo wa njia fiche ni kurejesha mipangilio ambayo simu yako ilitoka nayo kiwandani, hatua itakayofuta data yako yote.\n\nUsimbaji fiche huchukua saa moja au zaidi. Lazima uanze betri ikiwa imejaa chaji na uweke simu yako kwenye chaji muda wote mchakato utakapokuwa ukiendelea. Ukikatisha, utapoteza baadhi au data yako yote."</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="1189623490604750854">"Simba kompyuta kibao kwa njia fiche"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Simba fiche simu"</string>
     <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Tafadhali chaji betri yako kisha ujaribu tena."</string>
@@ -431,10 +437,10 @@
     <string name="crypt_keeper_enter_password" msgid="2223340178473871064">"Andika nenosiri yako"</string>
     <string name="crypt_keeper_failed_title" msgid="7133499413023075961">"Usimbaji fiche haujafanikiwa"</string>
     <string name="crypt_keeper_failed_summary" product="tablet" msgid="8219375738445017266">"Usimbaji fiche umekatizwa na hautakamilika. Kutokana na hayo, data kwenye kompyuta yako kibao haiwezi kupatikana. \n\n Ili kuendelee kutumia kompyuta yako kibao, unahitaji kurejesha mipangilio ambayo ilitoka nayo kiwandani. Ukiiwasha kompyuta yako kibao baadaye, utakuwa na fursa ya kuirejesha data yoyote iliyokuwa na nakala rudufu kwenye Akaunti yako ya Google."</string>
-    <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"Usimbaji fiche umekatizwa na haukukamilika. Kutokana na hayo, data kwenye simu yako haiwezi kuonekana. \n\n Ili uendelee kutumia simu yako, utahitaji kurejesha mipangilio ambayo ilitoka nayo kiwandani. Utakapowasha simu yako baadaye, utakuwa na fursa ya kurejesha data yoyote ambayo ina nakala rudufu kwenye Akaunti yako ya Google."</string>
+    <string name="crypt_keeper_failed_summary" product="default" msgid="3270131542549577953">"Usimbaji fiche umekatizwa na haukukamilika. Kutokana na hayo, data kwenye simu yako haiwezi kuonekana. \n\n Ili uendelee kutumia simu yako, utahitaji kurejesha mipangilio ambayo simu ilitoka nayo kiwandani. Utakapowasha simu yako baadaye, utakuwa na nafasi ya kurejesha data yoyote ambayo nakala yake ilikuwa imehifadhiwa katika Akaunti yako ya Google."</string>
     <string name="crypt_keeper_data_corrupt_title" msgid="8759119849089795751">"Msimbo wa njia fiche haukuondolewa"</string>
-    <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"Nenosiri uliloandika ni sahihi, lakini kwa bahati mbaya data yako ina hitilafu. \n\nIli uendelee kutumia kompyuta yako kibao, unahitaji kuirejesha katika hali iliyotoka nayo kiwandani. Unaposanidi kompyuta kibao yako baada ya kuirejesha katika hali iliyotoka nayo kiwandani, utakuwa na nafasi ya kurejesha data yoyote ambayo ilihifadhiwa nakala katika Akaunti yako ya Google."</string>
-    <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"Nenosiri uliloandika ni sahihi, lakini kwa bahati mbaya data yako ina hitilafu. \n\nIli uendelee kutumia simu yako, unahitaji kuirejesha katika hali iliyotoka nayo kiwandani. Unaposanidi simu yako baada ya kuirejesha katika hali iliyotoka nayo kiwandani, utakuwa na nafasi ya kurejesha data yoyote ambayo ilihifadhiwa nakala katika Akaunti yako ya Google."</string>
+    <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="840107296925798402">"Nenosiri uliloandika ni sahihi, lakini kwa bahati mbaya data yako ina hitilafu. \n\nIli uendelee kutumia kompyuta yako kibao, unahitaji kurejesha mipangilio iliyotoka nayo kiwandani. Wakati wa kuweka mipangilio mipya baada ya kurejesha ile ya kiwandani, utakuwa na nafasi ya kurejesha data yoyote ambayo nakala yake ilikuwa imehifadhiwa katika Akaunti yako ya Google."</string>
+    <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="8843311420059663824">"Nenosiri uliloweka ni sahihi, lakini kwa bahati mbaya data yako ina hitilafu. \n\nIli uendelee kutumia simu yako, unahitaji kurejesha mipangilio iliyotoka nayo kiwandani. Wakati wa kuweka mipangilio kwenye simu yako baada ya kurejesha ile ya kiwandani, utakuwa na nafasi ya kurejesha data yoyote ambayo nakala yake ilikuwa imehifadhiwa katika Akaunti yako ya Google."</string>
     <string name="crypt_keeper_switch_input_method" msgid="4168332125223483198">"Kubadili mbinu ya kuingiza data"</string>
     <string name="suggested_lock_settings_title" msgid="8971630898700461034">"Weka mbinu ya kufunga skrini"</string>
     <string name="suggested_lock_settings_summary" msgid="8778462376012231110">"Linda kifaa chako"</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Inua ili uondoe kifaa katika hali tuli"</string>
     <string name="doze_title" msgid="2259176504273878294">"Onyesho la vipengele vyote"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Washa skrini arifa zinapoingia"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Imewashwa kila wakati"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Onyesha saa, aikoni za arifa na maelezo mengine"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Ukubwa wa fonti"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Kuongeza au kupunguza ukubwa wa maandishi"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Mipangilio ya kuzima SIM"</string>
@@ -1284,7 +1292,7 @@
     <string name="reset_network_confirm_title" msgid="1759888886976962773">"Iwekwe upya?"</string>
     <string name="network_reset_not_available" msgid="7188610385577164676">"Kuweka upya mtandao hakupatikani kwa mtumiaji huyu"</string>
     <string name="reset_network_complete_toast" msgid="787829973559541880">"Mipangilio ya mtandao imewekwa upya"</string>
-    <string name="master_clear_title" msgid="5907939616087039756">"Rejesha data ya mwanzo"</string>
+    <string name="master_clear_title" msgid="5907939616087039756">"Kurejesha mipangilio ya kiwandani"</string>
     <plurals name="master_clear_with_account_summary" formatted="false" msgid="5911377203778818712">
       <item quantity="other">Akaunti <xliff:g id="ACCOUNT_COUNT">%1$d</xliff:g> zitarejeshwa kwenye mipangilio zilizotoka nazo kiwandani</item>
       <item quantity="one">Akaunti 1 itarejeshwa kwenye mipangilio iliyotoka nayo kiwandani</item>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Ungependa kutumia <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> inahitaji:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Kwa sababu programu yako inazuia ombi la ruhusa, Mipangilio haiwezi kuthibitisha majibu yako."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Kwa sababu programu nyingine inaonyeshwa juu ya chaguo hizi, Mipangilio haiwezi kutumia hatua uliyochukua."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Ukiwasha <xliff:g id="SERVICE">%1$s</xliff:g>, kifaa chako hakitatumia kufunga skrini yako ili kuboresha usimbaji wa data kwa njia fiche."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Kwa sababu umewasha huduma ya ufikiaji, kifaa chako hakitatumia kufunga skrini yako ili kuboresha usimbaji wa data kwa njia fiche."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Kwa sababu kuwasha <xliff:g id="SERVICE">%1$s</xliff:g> huathiri usimbaji wa data kwa njia fiche, unahitaji kuthibitisha mchoro wako."</string>
@@ -2091,7 +2098,7 @@
     <string name="voice_input_settings_title" msgid="2676028028084981891">"Kuweka data kwa kutamka"</string>
     <string name="voice_service_preference_section_title" msgid="3778706644257601021">"Huduma za kuweka data kwa kutamka"</string>
     <string name="voice_interactor_preference_summary" msgid="1801414022026937190">"Neno tekelezi na mwingiliano kamilifu"</string>
-    <string name="voice_recognizer_preference_summary" msgid="669880813593690527">"Huduma rahisi ya semi kwenda maandishi"</string>
+    <string name="voice_recognizer_preference_summary" msgid="669880813593690527">"Huduma rahisi ya kunakili yanayotamkwa"</string>
     <string name="voice_interaction_security_warning" msgid="6378608263983737325">"Huduma hii ya kuweka data kwa kutamka itakuwa na uwezo wa kutekeleza ufuatiliaji wa hali ya kuwashwa muda wote na kudhibiti programu zinazowashwa kwa sauti kwa niaba yako. Inatoka katika programu ya <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Ungependa kuwasha huduma hii kwa matumizi?"</string>
     <string name="tts_engine_preference_title" msgid="1578826947311494239">"Injini inayopendelewa"</string>
     <string name="tts_engine_settings_title" msgid="6886964122861384818">"Mipangilio ya Injini"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Arifa"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Mipangilio ya kina"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Arifa za kazini"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Ruhusu beji za aikoni"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Mwangaza umemeteke"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Skrini inapofungwa"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Onyesha arifa za maudhui yote"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Wastani"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Juu"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Dharura"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Ruhusu Sauti"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Ruhusu sauti"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Usiruhusu sauti, mtetemo au onyesho la kuchungulia kwenye skrini ya sasa."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Mratibu wa arifa"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Kufikia arifa"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picha ndani ya picha"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Ruhusu picha ndani ya picha"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Ruhusu programu hii iunde kidirisha cha picha ndani ya picha wakati programu imefunguka au baada ya kuiacha (kwa mfano, ukiendelea kutazama video). Kidirisha hiki kitaonekana  juu ya programu zingine unazotumia."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ndiyo"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Hapana"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Kufikia kipengele cha Usinisumbue"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Hakuna programu zilizosakinishwa ambazo zimeomba kufikia kipengele cha Usinisumbue"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Inapakia programu ..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Usionyeshe arifa hizi kamwe"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Onyesha arifa"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Usiwahi kuonyesha arifa kwenye vifaa vya kando au katika kivuli"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Aikoni ya programu ya beji"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Onyesha arifa kama beji kwenye programu ya Mwanzo, kama inatumika."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Ruhusu beji ya aikoni"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Batilisha hali ya \'Usinisumbue\'"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Ruhusu arifa hizi ziendelee kukatiza wakati hali ya Usinisumbue imewekwa katika Kipaumbele Pekee"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Skrini inapofungwa"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Onyesha juu ya programu zingine"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Programu <xliff:g id="COUNT_0">%1$d</xliff:g> kati ya <xliff:g id="COUNT_1">%2$d</xliff:g> zimeruhusiwa kuonekana juu ya programu zingine"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Programu zilizo na ruhusa"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ndiyo"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Hapana"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Sakinisha programu ambazo hazijulikani"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"sakinisha programu kutoka vyanzo visivyojulikana"</string>
     <string name="write_settings" msgid="4797457275727195681">"Badilisha mipangilio ya mfumo"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Ruhusa ya programu ya kubadilisha mipangilio ya mfumo"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Ruhusu ubadilishaji wa mipangilio ya mfumo"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Idhini hii huruhusu programu kubadilisha mipangilio ya mfumo"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ndiyo"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Hapana"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Imeruhusiwa"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Hairuhusiwi"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Ruhusu kutoka chanzo hiki"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kunja mkon mara mbili ili ufungue kamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Fungua programu ya kamera kwa kukunja kifundo cha mkono wako mara mbili"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Onyo la matumizi ya data la <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Onyo la matumizi ya data la <xliff:g id="ID_1">%1$s</xliff:g> / Kikomo cha data cha <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Kipindi cha kutuma bili"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Kila mwezi tarehe <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Vizuizi vya mtandao"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other">Vizuizi <xliff:g id="COUNT">%1$d</xliff:g></item>
@@ -3592,8 +3594,8 @@
     <string name="app_info_storage_title" msgid="5554719444625611987">"Nafasi iliyotumiwa"</string>
     <string name="webview_uninstalled_for_user" msgid="1819903169194420983">"(imeondolewa kwa mtumiaji <xliff:g id="USER">%s</xliff:g>)"</string>
     <string name="webview_disabled_for_user" msgid="1216426047631256825">"(imezimwa kwa mtumiaji <xliff:g id="USER">%s</xliff:g>)"</string>
-    <string name="autofill_app" msgid="7338387238377914374">"Huduma ya kujaza otomatiki"</string>
-    <string name="autofill_keywords" msgid="7485591824120812710">"otomatiki, jaza, kujaza otomatiki"</string>
+    <string name="autofill_app" msgid="7338387238377914374">"Huduma ya kujaza kiotomatiki"</string>
+    <string name="autofill_keywords" msgid="7485591824120812710">"otomatiki, jaza, kujaza kiotomatiki"</string>
     <string name="autofill_confirmation_message" msgid="2784869528908005194">"&lt;b&gt;Hakikisha kuwa unaamini programu hii&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google Autofill&gt;%1$s&lt;/xliff:g&gt; hutumia kilicho kwenye skrini yako kubaini kinachoweza kujazwa kiotomatiki."</string>
     <string name="device_theme" msgid="4571803018917608588">"Mandhari ya kifaa"</string>
     <string name="default_theme" msgid="7085644992078579076">"Chaguo-msingi"</string>
diff --git a/res/values-sw400dp/styles.xml b/res/values-sw400dp/styles.xml
new file mode 100755
index 0000000..f69f7c3
--- /dev/null
+++ b/res/values-sw400dp/styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Copyright (C) 2017 The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<resources>
+
+    <!-- Unhide the icon on bigger screens -->
+    <style name="LockPatternIconStyle" parent="SuwGlifIcon" />
+
+</resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 87a941d..e9fe8f7 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"நன்று"</item>
     <item msgid="8986346415847956850">"பிரமாதம்"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"எப்போதும்"</item>
-    <item msgid="844721238536786870">"செருகப்பட்டிருக்கும்போது மட்டும்"</item>
-    <item msgid="1986753720941888596">"எப்போதும் வேண்டாம்"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"எப்போதும்"</item>
-    <item msgid="7433294150916905997">"செருகப்பட்டிருக்கும்போது மட்டும்"</item>
-    <item msgid="1390404486722375028">"ஒருபோதும் வேண்டாம்"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"கடந்த 30 நாட்கள்"</item>
     <item msgid="6600989128423965319">"பயன்பாட்டு சுழற்சியை அமை..."</item>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 54dcfad..884f28c 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"இப்போது டெவெலப்பராகிவிட்டீர்கள்!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"தேவையில்லை, நீங்கள் ஏற்கனவே ஒரு டெவெலப்பர்."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"வயர்லெஸ் &amp; நெட்வொர்க்குகள்"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"இணைப்புகள்"</string>
     <string name="header_category_device" msgid="4544026001618307754">"சாதனம்"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"துண்டிக்கவா?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"இது, பின்வருவதுடனான உங்கள் இணைப்பைத் துண்டிக்கும்:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"புளுடூத் அமைப்புகளை மாற்ற உங்களுக்கு அனுமதியில்லை."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"புளூடூத் அமைப்புகள் இயக்கப்பட்டிருக்கும்போது, அருகிலுள்ள சாதனங்களுக்கு <xliff:g id="DEVICE_NAME">%1$s</xliff:g> தெரியும்."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"புளூடூத் MAC முகவரி: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ஐ துண்டிக்கவா?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"அலைபரப்புதல்"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"சுயவிவரத்தை முடக்கவா?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"உங்கள் செய்திகளை %1$s அணுக விரும்புகிறது. %2$s க்கு அணுகலை வழங்கவா?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM அணுகல் கோரிக்கை"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> உங்கள் சிம் கார்டை அணுக விரும்புகிறது. சிம் கார்டிற்கு அணுகல் வழங்குவது இணைப்பின் போது, உங்கள் சாதனத்தின் தரவு இணைப்பை முடக்கும். <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>க்கு அணுகல் வழங்கவும்"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"பிற சாதனங்களில் <xliff:g id="DEVICE_NAME">^1</xliff:g> எனத் தெரியும்"</string>
     <string name="date_and_time" msgid="9062980487860757694">"தேதி &amp; நேரம்"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"நேரமண்டலத்தைத் தேர்வுசெய்க"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"விரலை எடுக்கும் போது இயங்கு"</string>
     <string name="doze_title" msgid="2259176504273878294">"சூழல்சார் திரை"</string>
     <string name="doze_summary" msgid="3846219936142814032">"அறிவிப்புகளைப் பெறும் போது திரையை இயக்கு"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"எப்போதும் இயக்கத்தில் வை"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"நேரம், அறிவிப்பு ஐகான்கள் மற்றும் பிற தகவலைக் காட்டும்"</string>
     <string name="title_font_size" msgid="4405544325522105222">"எழுத்துரு அளவு"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"உரையைப் பெரிதாக்கும் அல்லது சிறிதாக்கும்"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"சிம் கார்டின் பூட்டு அமைப்பு"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> சேவையை பயன்படுத்தவா?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> செய்வது:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"அனுமதிக் கோரிக்கையைப் பயன்பாடு மறைப்பதால், அமைப்புகளால் உங்கள் பதிலைச் சரிபார்க்க முடியாது."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"இந்த விருப்பங்களின் மேலே மற்றொரு பயன்பாடு தோன்றுவதால், உங்கள் செயலுக்கு ஏற்ப அமைப்புகளால் செயல்பட முடியவில்லை."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> சேவையை இயக்குவது தரவுக் குறியாக்கத்தைப் பாதிக்கும் என்பதால், வடிவத்தை நீங்கள் உறுதிப்படுத்த வேண்டும்."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"அறிவிப்புகள்"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"மேம்பட்டவை"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"பணி அறிவிப்புகள்"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"ஐகான் பேட்ஜ்களை அனுமதி"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ஒளியைச் சிமிட்டு"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"பூட்டுத் திரையில்"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"எல்லா அறிவிப்பு விவரத்தையும் காட்டு"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"நடுத்தர முக்கியத்துவம்"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"அதிக முக்கியத்துவம்"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"மிக அதிக முக்கியத்துவம்"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ஒலியை அனுமதி"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ஒலியை அனுமதிக்கவும்"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"இந்த அறிவிப்புகளை நடப்புத் திரையில் காட்டும் போது ஒலி, அதிர்வை ஏற்படுத்தாது அல்லது திரையின் மேல் பகுதியில் காட்டாது."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"அறிவிப்பு உதவி"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"அறிவிப்பு அணுகல்"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"பிக்ச்சர் இன் பிக்ச்சர்"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"பிக்ச்சர் இன் பிக்ச்சரை அனுமதி"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"பயன்பாடு திறந்திருக்கும் போது அல்லது அதிலிருந்து வெளியேறும் போது (எடுத்துக்காட்டாக, வீடியோவைத் தொடர்ந்து பார்க்க), பிக்ச்சர் இன் பிக்ச்சர் சாளரத்தை உருவாக்க, இந்தப் பயன்பாட்டை அனுமதிக்கும். இந்தச் சாளரம் நீங்கள் பயன்படுத்தும் பிற பயன்பாடுகளின் மேல் காட்டப்படும்."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ஆம்"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"வேண்டாம்"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"தொந்தரவு செய்ய வேண்டாம் என்பதன் அணுகல்"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"தொந்தரவு செய்ய வேண்டாம் என்பதன் அணுகலை நிறுவப்பட்ட பயன்பாடுகள் எதுவும் கோரவில்லை"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"பயன்பாடுகளை ஏற்றுகிறது..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"இந்த அறிவிப்புகளை ஒருபோதும் காட்டாது"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"அறிவிப்புகளைக் காட்டு"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ஷேட்டில் அல்லது துணைச் சாதனங்களில் அறிவிப்புகளை ஒருபோதும் காட்டாது"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"பேட்ஜ் பயன்பாட்டு ஐகான்"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ஆதரித்தால், முகப்புப் பயன்பாட்டில் அறிவிப்புகளை பேட்ஜ்களாகக் காட்டும்."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"ஐகான் பேட்ஜை அனுமதிக்கவும்"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"தொந்தரவு செய்ய வேண்டாம் அமைப்பை மாற்றவும்"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"தொந்தரவு செய்ய வேண்டாம் என்பது முன்னுரிமை மட்டும் என்பதாக அமைக்கப்படும் போது இந்த அறிவிப்புகளைத் தொடர்ந்து குறுக்கிட அனுமதிக்கவும்"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"பூட்டுத் திரையில்"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"பிற பயன்பாடுகளின் மேலே காட்டு"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"பிற பயன்பாடுகளின் மேலே காட்டுவதற்கு <xliff:g id="COUNT_1">%2$d</xliff:g> இல் <xliff:g id="COUNT_0">%1$d</xliff:g> பயன்பாடுகள் அனுமதிக்கப்பட்டுள்ளன"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"அனுமதி பெற்ற பயன்பாடுகள்"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"அனுமதிக்கப்பட்டது"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"அனுமதிக்கப்படவில்லை"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"அறியப்படாத பயன்பாடுகளை நிறுவு"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"நிறுவு பயன்பாடுகள் அறியப்படாத மூலங்கள்"</string>
     <string name="write_settings" msgid="4797457275727195681">"முறைமை அமைப்புகளை மாற்று"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"பயன்பாடானது முறைமை அமைப்புகளை மாற்றுவதற்கான அனுமதி"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"முறைமை அமைப்புகளை மாற்ற அனுமதி"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"இது முறைமை அமைப்புகளை மாற்ற, பயன்பாட்டை அனுமதிக்கும்."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"அனுமதிக்கப்பட்டது"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"அனுமதிக்கப்படவில்லை"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"அனுமதிக்கப்பட்டது"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"அனுமதிக்கப்படவில்லை"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"இந்த மூலத்திலிருந்து அனுமதி"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"கேமராவைத் திறக்க, இருமுறை திருப்புதல்"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"உங்கள் மணிக்கட்டை இருமுறை திருப்புவதன் மூலம் கேமரா பயன்பாட்டைத் திறக்கலாம்"</string>
@@ -3310,8 +3313,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"மாதந்தோறும், <xliff:g id="ID_1">%1$s</xliff:g>வது நாள்"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"நெட்வொர்க் கட்டுப்பாடுகள்"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> கட்டுப்பாடுகள்</item>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 1dc9f03..d0c965a 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"బాగుంది"</item>
     <item msgid="8986346415847956850">"అద్భుతం"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ఎల్లప్పుడూ"</item>
-    <item msgid="844721238536786870">"ప్లగిన్ చేయబడినప్పుడు మాత్రమే"</item>
-    <item msgid="1986753720941888596">"ఎప్పటికీ వద్దు"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ఎల్లప్పుడూ"</item>
-    <item msgid="7433294150916905997">"ప్లగిన్ చేయబడినప్పుడు మాత్రమే"</item>
-    <item msgid="1390404486722375028">"ఎప్పటికీ వద్దు"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"గత 30 రోజులు"</item>
     <item msgid="6600989128423965319">"విని. పునరా. సెట్ చేయి..."</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 45d812d..894d07f 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"మీరు ఇప్పుడు డెవలపర్!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"అవసరం లేదు, మీరు ఇప్పటికే డెవలపర్‌గా ఉన్నారు."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"వైర్‌లెస్ &amp; నెట్‌వర్క్‌లు"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"కనెక్షన్‌లు"</string>
     <string name="header_category_device" msgid="4544026001618307754">"పరికరం"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"డిస్‌కనెక్ట్ చేయాలా?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"ఇందువలన దీనితో మీరు ఏర్పాటు చేసుకున్న కనెక్షన్ ముగుస్తుంది:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"మీకు బ్లూటూత్ సెట్టింగ్‌లను మార్చడానికి అనుమతి లేదు."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"బ్లూటూత్ సెట్టింగ్‌లను తెరిచి ఉన్నప్పుడు <xliff:g id="DEVICE_NAME">%1$s</xliff:g> సమీప పరికరాలకు కనిపిస్తుంది."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"బ్లూటూత్ MAC చిరునామా: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>ను డిస్‌కనెక్ట్ చేయాలా?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"ప్రసారం"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ప్రొఫైల్‌ను నిలిపివేయాలా?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s మీ సందేశాలను ప్రాప్యత చేయాలనుకుంటోంది. %2$sకు ప్రాప్యత అందించాలా?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM ప్రాప్యత అభ్యర్థన"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> మీ SIM కార్డ్‌ను ప్రాప్యత చేయాలనుకుంటోంది. SIM కార్డ్‌కి ప్రాప్యత మంజూరు చేయడం వలన మీ పరికరంలో కనెక్షన్ కాలంలో డేటా కనెక్టివిటీ నిలిపివేయబడుతుంది. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>కి ప్రాప్యత మంజూరు చేయండి"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ఇతర పరికరాలకు <xliff:g id="DEVICE_NAME">^1</xliff:g>గా కనిపిస్తుంది"</string>
     <string name="date_and_time" msgid="9062980487860757694">"తేదీ &amp; సమయం"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"సమయ మండలిని ఎంచుకోండి"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"సక్రియం చేయడానికి వేళ్లను తీసివేయండి"</string>
     <string name="doze_title" msgid="2259176504273878294">"యాంబియెంట్ డిస్‌ప్లే"</string>
     <string name="doze_summary" msgid="3846219936142814032">"మీరు నోటిఫికేషన్‌లను స్వీకరించినప్పుడు స్క్రీన్‌ను సక్రియం చేస్తుంది"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ఎల్లప్పుడూ ఆన్‌లో ఉంచు"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"ప్రదర్శన సమయం, నోటిఫికేషన్ చిహ్నాలు, మరియు ఇతర సమాచారం"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ఫాంట్ పరిమాణం"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"వచనాన్ని పెద్దదిగా లేదా చిన్నదిగా చేస్తుంది"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"సిమ్ కార్డు లాక్ సెట్టింగ్‌లు"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g>ని ఉపయోగించాలా?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ఇవి చేయాల్సి ఉంటుంది:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"అనుమతి అభ్యర్థనకు ఒక అనువర్తనం అడ్డు తగులుతున్నందున సెట్టింగ్‌లు మీ ప్రతిస్పందనను ధృవీకరించలేకపోయాయి."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"ఈ ఎంపికల పైన మరొక యాప్ ప్రదర్శించబడుతున్నందున, సెట్టింగ్‌లు మీ చర్యకు ప్రతిస్పందించడం లేదు."</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="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g>ని ఆన్‌ చేయడం వలన డేటా గుప్తీకరణ ప్రభావితమవుతుంది, కనుక మీరు మీ నమూనాను నిర్ధారించడం అవసరం."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"నోటిఫికేషన్‌లు"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"అధునాతనం"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"కార్యాలయ నోటిఫికేషన్‌లు"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"చిహ్నం బ్యాడ్జ్‌లను అనుమతించండి"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"కాంతి మిణుకుమిణుకు అనేలా ఉంచు"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"లాక్ స్క్రీన్‌పై"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"మొత్తం నోటిఫికేషన్ కంటెంట్‌ను చూపు"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"మధ్యస్థం"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"అధికం"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"అత్యవసరం"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"ధ్వనిని అనుమతించండి"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"ధ్వనిని అనుమతించండి"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"శబ్దం చేయదు, వైబ్రేట్ చేయదు లేదా ప్రస్తుత స్క్రీన్‌పై కనిపించేలా ఈ నోటిఫికేషన్‌లను శీఘ్రంగా చూపదు."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"నోటిఫికేషన్ సహాయకం"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"నోటిఫికేషన్ ప్రాప్యత"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"చిత్రంలో చిత్రం"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"చిత్రంలో చిత్రాన్ని అనుమతించు"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"అనువర్తనం తెరవబడి ఉన్నప్పుడు లేదా మీరు దాని నుండి నిష్క్రమించినప్పుడు (ఉదాహరణకు, వీడియోని చూడటం కొనసాగించడానికి) చిత్రంలో చిత్రం విండోని సృష్టించడానికి ఈ అనువర్తనాన్ని అనుమతిస్తుంది. మీరు ఉపయోగించే ఇతర అనువర్తనాల ఎగువన ఈ విండో ప్రదర్శితమవుతుంది."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"అనుమతించబడింది"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"అనుమతించలేదు"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"అంతరాయం కలిగించవద్దు ప్రాప్యత"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ఇన్‌స్టాల్ చేసిన అనువర్తనాలేవీ అంతరాయం కలిగించవద్దు ప్రాప్యత అభ్యర్థించలేదు"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"అనువర్తనాలను లోడ్ చేస్తోంది..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ఈ నోటిఫికేషన్‌లను ఎప్పుడూ చూపవద్దు"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"నోటిఫికేషన్‌లను చూపు"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"నోటిఫికేషన్‌లను ఎన్నడూ షేడ్‌లో లేదా అనుబంధ పరికరాల్లో చూపవద్దు"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"బ్యాడ్జ్ అనువర్తన చిహ్నం"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"మద్దతు ఉంటే, నోటిఫికేషన్‌లను Home అనువర్తనంలో బ్యాడ్జ్‌లుగా చూపుతుంది."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"చిహ్నం బ్యాడ్జ్‌ను అనుమతించండి"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"అంతరాయం వద్దుని భర్తీ చేయి"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"అంతరాయం కలిగించవద్దు లక్షణాన్ని ప్రాధాన్యత మాత్రమేకి సెట్ చేసినప్పుడు, అంతరాయం కలిగించడం కొనసాగించడానికి ఈ నోటిఫికేషన్‌లను అనుమతిస్తుంది"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"లాక్ స్క్రీన్‌పై"</string>
@@ -3200,8 +3205,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"ఇతర అనువర్తనాల ఎగువన ప్రదర్శన"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g>లో <xliff:g id="COUNT_0">%1$d</xliff:g> అనువర్తనాలు ఇతర అనువర్తనాల ఎగువన కనిపించడానికి అనుమతించబడ్డాయి"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"అనుమతి ఉన్న అనువర్తనాలు"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"అవును"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"లేదు"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"తెలియని అనువర్తనాలను ఇన్‌స్టాల్ చేయండి"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"తెలియని అనువర్తనాలను ఇన్‌స్టాల్ చేయి"</string>
     <string name="write_settings" msgid="4797457275727195681">"సిస్టమ్ సెట్టింగ్‌ల సవరణ"</string>
@@ -3214,10 +3221,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"అనువర్తనం సిస్టమ్ సెట్టింగ్‌లను సవరించడానికి అనుమతి"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"సిస్టమ్ సెట్టింగ్‌ల సవరణకు అనుమతించు"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"ఈ అనుమతి సిస్టమ్ సెట్టింగ్‌లను సవరించడానికి అనువర్తనాన్ని అనుమతిస్తుంది."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"అవును"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"లేదు"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"అనుమతించినవి"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"అనుమతించబడలేదు"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"ఈ మూలాధారం నుండి అనుమతించండి"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"కెమెరా కోసం రెండు సార్లు తిప్పడం"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"మీ ఫోన్ పట్టుకున్న ముంజేతిని రెండు సార్లు తిప్పితే కెమెరా అనువర్తనం తెరవబడుతుంది"</string>
@@ -3312,8 +3315,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ప్రతి నెల <xliff:g id="ID_1">%1$s</xliff:g>వ తేదీన"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"నెట్‌వర్క్ పరిమితులు"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> పరిమితులు</item>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 3794809..2e88fe9 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"ดี"</item>
     <item msgid="8986346415847956850">"ยอดเยี่ยม"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ทุกครั้ง"</item>
-    <item msgid="844721238536786870">"เมื่อเสียบปลั๊กเท่านั้น"</item>
-    <item msgid="1986753720941888596">"ไม่ต้องเลย"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ทุกครั้ง"</item>
-    <item msgid="7433294150916905997">"เมื่อเสียบปลั๊กเท่านั้น"</item>
-    <item msgid="1390404486722375028">"ไม่เลย"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 วันที่ผ่านมา"</item>
     <item msgid="6600989128423965319">"ตั้งรอบการใช้..."</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 0830080..4e77d79 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"ตอนนี้คุณเป็นนักพัฒนาซอฟต์แวร์แล้ว!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"ไม่จำเป็น คุณเป็นนักพัฒนาซอฟต์แวร์อยู่แล้ว"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"ตัดการเชื่อมต่อหรือไม่"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"การดำเนินการนี้จะจบการเชื่อมต่อของคุณกับ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"คุณไม่มีสิทธิ์ในการเปลี่ยนการตั้งค่าบลูทูธ"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"อุปกรณ์ใกล้เคียงจะสามารถมองเห็น <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ได้เมื่อเปิดการตั้งค่าบลูทูธ"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"ที่อยู่บลูทูธ MAC: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"ยกเลิกการเชื่อมต่อ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ใช่ไหม"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"การแพร่สัญญาณ"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"ปิดใช้งานโปรไฟล์หรือไม่"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s ต้องการเข้าถึงข้อความของคุณ ให้สิทธิ์เข้าถึงแก่ %2$s ไหม"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"ส่งคำขอการเข้าถึงซิม"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ต้องการเข้าถึงซิมการ์ด การให้สิทธิ์เข้าถึงซิมการ์ดจะปิดการเชื่อมต่อข้อมูลบนอุปกรณ์ในระหว่างที่มีการเชื่อมต่อ โปรดให้สิทธิ์เข้าถึงแก่ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"ปรากฏเป็น <xliff:g id="DEVICE_NAME">^1</xliff:g> ในอุปกรณ์อื่นๆ"</string>
     <string name="date_and_time" msgid="9062980487860757694">"วันที่และเวลา"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"เลือกเขตเวลา"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"ยกขึ้นเพื่อเวก"</string>
     <string name="doze_title" msgid="2259176504273878294">"หน้าจอแบบแอมเบียนท์"</string>
     <string name="doze_summary" msgid="3846219936142814032">"เปิดหน้าจอเมื่อได้รับการแจ้งเตือน"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"เปิดใช้เสมอ"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"แสดงเวลา ไอคอนการแจ้งเตือน และข้อมูลอื่นๆ"</string>
     <string name="title_font_size" msgid="4405544325522105222">"ขนาดอักษร"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"ทำให้ข้อความมีขนาดใหญ่ขึ้นหรือเล็กลง"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"การตั้งค่าการล็อกซิมการ์ด"</string>
@@ -1769,7 +1777,7 @@
     <string name="user_installed_services_category_title" msgid="6426376488922158647">"บริการที่ดาวน์โหลด"</string>
     <string name="experimental_category_title" msgid="5272318666666893547">"ทดสอบ"</string>
     <string name="talkback_title" msgid="7912059827205988080">"TalkBack"</string>
-    <string name="talkback_summary" msgid="8331244650729024963">"โปรแกรมอ่านหน้าจอที่ใช้สำหรับคนตาบอดหรือผู้บกพร่องทางการมองเห็นเป็นหลัก"</string>
+    <string name="talkback_summary" msgid="8331244650729024963">"โปรแกรมอ่านหน้าจอที่ใช้สำหรับคนตาบอดหรือผู้มีสายตาบกพร่องเป็นหลัก"</string>
     <string name="select_to_speak_summary" msgid="4282846695497544515">"แตะรายการบนหน้าจอเพื่อฟังการอ่านออกเสียง"</string>
     <string name="accessibility_captioning_title" msgid="7589266662024836291">"คำอธิบายภาพ"</string>
     <string name="accessibility_screen_magnification_title" msgid="6001128808776506021">"การขยาย"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"ใช้ <xliff:g id="SERVICE">%1$s</xliff:g> ใช่ไหม"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> ต้องการที่จะ"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"เนื่องจากแอปหนึ่งได้บดบังคำขอสิทธิ์ ระบบจึงไม่สามารถยืนยันคำตอบของคุณสำหรับการตั้งค่าได้"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"เนื่องจากมีแอปอื่นแสดงทับตัวเลือกเหล่านี้ ระบบจึงไม่สามารถตอบสนองการดำเนินการของคุณได้"</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="enable_service_pattern_reason" msgid="777577618063306751">"คุณต้องยืนยันรูปแบบ เนื่องจากการเปิด <xliff:g id="SERVICE">%1$s</xliff:g> จะส่งผลต่อการเข้ารหัสข้อมูล"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"การแจ้งเตือน"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"ขั้นสูง"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"การแจ้งเตือนงาน"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"อนุญาตให้ใช้ป้ายไอคอน"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"ไฟกะพริบ"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"บนหน้าจอล็อก"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"แสดงเนื้อหาการแจ้งเตือนทั้งหมด"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"ปานกลาง"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"สูง"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"ด่วน"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"อนุญาตให้ส่งเสียง"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"อนุญาตให้ส่งเสียง"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"ไม่ส่งเสียงเตือน สั่น หรือแสดงชั่วครู่ในมุมมองหน้าจอปัจจุบันสำหรับการแจ้งเตือนเหล่านี้"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"ผู้ช่วยการแจ้งเตือน"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"การเข้าถึงการแจ้งเตือน"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"การแสดงผลหลายแหล่งพร้อมกัน"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"อนุญาตการแสดงผลหลายแหล่งพร้อมกัน"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"อนุญาตให้แอปนี้สร้างหน้าต่างการแสดงผลหลายแหล่งพร้อมกันในขณะที่แอปเปิดอยู่หรือหลังจากที่คุณปล่อยทิ้งไว้ (เช่น เพื่อดูวิดีโอต่อ) หน้าต่างนี้จะแสดงทับแอปอื่นๆ ที่คุณกำลังใช้"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ใช่"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"ไม่"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"การเข้าถึง \"ห้ามรบกวน\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"ไม่มีแอปที่ติดตั้งใดๆ ส่งคำขอสิทธิ์เข้าถึง \"ห้ามรบกวน\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"กำลังโหลดแอป..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"ไม่ต้องแสดงการแจ้งเตือน"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"แสดงการแจ้งเตือน"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"ไม่ต้องแสดงการแจ้งเตือนในแว่นตาหรืออุปกรณ์ต่อพ่วง"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"ติดป้ายไอคอนแอป"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"แสดงการแจ้งเตือนเป็นป้ายในแอปหน้าแรก หากอุปกรณ์รองรับ"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"อนุญาตให้ใช้ป้ายไอคอน"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ลบล้างห้ามรบกวน"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"อนุญาตให้แสดงการแจ้งเตือนต่อไปเมื่อตั้งค่าห้ามรบกวนเป็นเฉพาะเรื่องสำคัญเท่านั้น"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"บนหน้าจอล็อก"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"แสดงทับแอปอื่นๆ"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> จาก <xliff:g id="COUNT_1">%2$d</xliff:g> แอปได้รับอนุญาตให้แสดงทับแอปอื่นๆ"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"แอปที่มีสิทธิ์"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ใช่"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"ไม่"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"ติดตั้งแอปที่ไม่รู้จัก"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"ติดตั้งแอปจากแหล่งที่มาที่ไม่รู้จัก"</string>
     <string name="write_settings" msgid="4797457275727195681">"แก้ไขการตั้งค่าระบบ"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"สิทธิ์ของแอปในการแก้ไขการตั้งค่าระบบ"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"อนุญาตให้แก้ไขการตั้งค่าระบบ"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"สิทธิ์นี้อนุญาตให้แอปแก้ไขการตั้งค่าระบบได้"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"ใช่"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"ไม่"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"อนุญาต"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"ไม่อนุญาต"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"อนุญาตจากแหล่งที่มานี้"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"บิด 2 ครั้งเพื่อเปิดกล้อง"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"เปิดแอปกล้องถ่ายรูปโดยบิดข้อมือ 2 ครั้ง"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ทุกเดือนในวันที่ <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"ข้อจำกัดของเครือข่าย"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other">ข้อจำกัด <xliff:g id="COUNT">%1$d</xliff:g> ข้อ</item>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 0b9b2f0..23b0c1a 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Malakas"</item>
     <item msgid="8986346415847956850">"Napakalakas"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Palagi"</item>
-    <item msgid="844721238536786870">"Kapag naka-plug in lamang"</item>
-    <item msgid="1986753720941888596">"Hindi Kailanman"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Palagi"</item>
-    <item msgid="7433294150916905997">"Kapag naka-plug in lamang"</item>
-    <item msgid="1390404486722375028">"Hindi Kailanman"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Nakalipas na 30 araw"</item>
     <item msgid="6600989128423965319">"Itakda ang usage cycle..."</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 8e4a86c..c6d0cc7 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Isa ka nang developer!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Hindi na kailangan, isa ka nang developer."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Wireless at mga network"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Mga Koneksyon"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Device"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Idiskonekta?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tatapusin nito ang iyong koneksyon sa:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Wala kang pahintulot na palitan ang mga setting ng Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Nakikita ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g> sa mga kalapit na device habang nakabukas ang mga setting ng Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC address: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"I-disconnect ang <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Pagbo-broadcast"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Huwag paganahin ang profile?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"Gustong i-access ni %1$s ang iyong mga mensahe. Bigyan ng access si %2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Kahilingan sa pag-access sa SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Gustong i-access ng <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ang iyong SIM card. Idi-disable ng pagbibigay ng access sa SIM ang connectivity ng data sa iyong device habang nakakonekta. Bigyan ng access ang <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Nakikita bilang <xliff:g id="DEVICE_NAME">^1</xliff:g> sa iba pang device"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Petsa at oras"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Pumili ng time zone"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -379,7 +385,7 @@
     <string name="security_settings_fingerprint_enroll_start_message" msgid="3909929328942564524">"Ilagay ang iyong daliri sa sensor at iangat pagkatapos mong makaramdam ng pag-vibrate"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="8556556992897619044">"Magpatuloy"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4232813847507193627">"Bahagyang ilipat ang iyong daliri upang idagdag ang lahat ng iba\'t ibang bahagi ng iyong fingerprint"</string>
-    <string name="security_settings_fingerprint_enroll_finish_title" msgid="4798692662828257300">"Naidagdag fingerprint!"</string>
+    <string name="security_settings_fingerprint_enroll_finish_title" msgid="4798692662828257300">"Na-add ang fingerprint!"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="835496875787664316">"Kapag nakikita mo ang icon na ito, maaari mong gamitin ang iyong fingerprint para sa pagkakakilanlan o upang pahintulutan ang isang pagbili."</string>
     <string name="setup_fingerprint_enroll_finish_message" msgid="7234264291957984004">"Hawakan lang ang sensor ng fingerprint upang i-wake at i-unlock ang iyong device."</string>
     <string name="setup_fingerprint_enroll_finish_message_secondary" msgid="7104778933406207968">"Kapag nakita mo ang icon na ito, maaari mo ring pahintulutan ang mga pagbili o pag-sign in sa mga app."</string>
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Angatin upang paganahin"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ambient na display"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Paganahin ang screen kapag nakatanggap ka ng mga notification"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Palaging naka-on"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Ipakita ang oras, mga icon ng notification, at iba pang impormasyon"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Laki ng font"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Palakihin o paliitin ang text"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Setting ng lock ng SIM card"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Gumamit ng <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Kailangan ng <xliff:g id="SERVICE">%1$s</xliff:g> na:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Dahil pinipigilan ng isang app ang kahilingan ng pahintulot, hindi ma-verify ng Mga Setting ang iyong tugon."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Hindi makatugon ang Mga Setting sa iyong pagkilos dahil may ibang app na ipinapakita sa harap ng mga opsyong ito."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Kung io-on mo ang <xliff:g id="SERVICE">%1$s</xliff:g>, hindi gagamitin ng iyong device ang lock ng iyong screen upang pahusayin ang pag-encrypt ng data."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Dahil nag-on ka ng serbisyo sa accessibility, hindi gagamitin ng iyong device ang lock ng iyong screen upang pahusayin ang pag-encrypt ng data."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Dahil nakakaapekto ang pag-o-on ng <xliff:g id="SERVICE">%1$s</xliff:g> sa pag-encrypt ng data, kailangan mong kumpirmahin ang iyong pattern."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Mga Notification"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Advanced"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Mga notification sa trabaho"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Payagan ang mga badge ng icon"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Patay-sinding ilaw"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Sa lock screen"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Ipakita ang lahat ng content ng notification"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Katamtaman"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Mataas"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Kinakailangan"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Payagan ang Tunog"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Payagan ang tunog"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Huwag tumunog, mag-vibrate, o ilabas ang mga notification na ito sa view sa kasalukuyang screen."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Assistant para sa notification"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Access sa notification"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Payagan ang picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Payagan ang app na ito na gumawa ng isang picture-in-picture na window habang nakabukas ang app o pagkatapos mo itong iwan (halimbawa, upang magpatuloy sa panonood ng isang video). Lumalabas ang window na ito sa ibabaw ng iba pang ginagamit mong app."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Oo"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Hindi"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Access na Huwag Istorbohin"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Walang mga naka-install na app ang humiling ng access na Huwag Istorbohin"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Naglo-load ng mga app..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Huwag kailanman ipakita ang mga notification na ito"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Magpakita ng mga notification"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Huwag kailanman magpakita ng mga notification sa shade o sa mga peripheral na device"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Badge app icon"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Ipakita ang mga notification bilang mga badge sa Home app, kung sinusuportahan."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Payagan ang badge ng icon"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"I-override ang Huwag Istorbohin"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Pahintulutan ang mga notification na ito na lumabas kapag nakatakda sa Priyoridad Lang ang Huwag Istorbohin"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Sa lock screen"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Ipakita sa ibabaw ng ibang app"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Pinapayagan ang <xliff:g id="COUNT_0">%1$d</xliff:g> sa <xliff:g id="COUNT_1">%2$d</xliff:g> (na) app na lumabas sa ibabaw ng ibang app"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Mga app na may pahintulot"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Oo"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Hindi"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Mag-install ng mga hindi alam na app"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"mag-install ng mga app mula sa mga hindi kilalang pinagmulan"</string>
     <string name="write_settings" msgid="4797457275727195681">"Baguhin ang setting ng system"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Pahintulot sa pagbago ng app sa setting ng system"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Payagan ang pagbago sa mga setting ng system"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Nagbibigay-daan ang pahintulot na ito sa isang app na baguhin ang mga setting ng system."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Oo"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Hindi"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Pinapayagan"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Hindi pinapayagan"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Payagan mula sa pinagmulang ito"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Dobleng pag-twist para sa camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Buksan ang camera app sa pamamagitan ng pag-twist sa iyong kamay nang dalawang beses"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Babala kapag umabot sa <xliff:g id="ID_1">%1$s</xliff:g> ang Data"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Babala kapag umabot sa <xliff:g id="ID_1">%1$s</xliff:g> ang Data / Limitasyong <xliff:g id="ID_2">%2$s</xliff:g> na Data"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Yugto ng pagsingil"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Buwan-buwan sa araw <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Mga paghihigpit sa network"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> paghihigpit</item>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 482d43a..b84b724 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"İyi"</item>
     <item msgid="8986346415847956850">"Mükemmel"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Her zaman"</item>
-    <item msgid="844721238536786870">"Yalnızca prize takılıyken"</item>
-    <item msgid="1986753720941888596">"Hiçbir zaman"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Her zaman"</item>
-    <item msgid="7433294150916905997">"Yalnızca prize takılıyken"</item>
-    <item msgid="1390404486722375028">"Hiçbir zaman"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Son 30 gün"</item>
     <item msgid="6600989128423965319">"Kullanım döngüsünü ayarla..."</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 46cf2bb..45dec55 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Artık siz bir geliştiricisiniz!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Gerekli değil, siz zaten bir geliştiricisiniz."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Kablosuz ve ağlar"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Bağlantılar"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Cihaz"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Bağlantı kesilsin mi?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Şu cihazla bağlantınız kesilecek:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Bluetooth ayarlarını değiştirmek için izniniz yok."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, Bluetooth ayarları açıkken yakındaki cihazlar tarafından görülebilir."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC adresi: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> bağlantısı kesilsin mi?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Yayınlama"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profil devre dışı bırakılsın mı?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s, iletilerinize erişmek istiyor. %2$s için erişim izni veriyor musunuz?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM\'e erişim isteği"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, SIM kartınıza erişmek istiyor. SIM karta erişim vermek, bağlantı süresince cihazınızın veri bağlantısını devre dışı bırakır. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> adlı cihaza bağlantı verin"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Diğer cihazlar tarafından <xliff:g id="DEVICE_NAME">^1</xliff:g> olarak görülebilir"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Tarih ve saat"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Saat dilimini seçin"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Kaldırarak uyandır"</string>
     <string name="doze_title" msgid="2259176504273878294">"Ortam ekranı"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Bildirim geldiğinde ekranı uyandır"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Her zaman açık"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Saati, bildirim simgelerini ve diğer bilgileri göster"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Yazı tipi boyutu"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Metni daha büyük veya daha küçük yapın"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM kart kilit ayarları"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> kullanılsın mı?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> şunları gerektiriyor:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Bir uygulama bir izin isteğinin anlaşılmasını engellediğinden, Ayarlar, yanıtınızı doğrulayamıyor."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Bu seçeneklerin üstünde başka bir uygulama görüntülendiğinden Ayarlar, işleminize yanıt veremiyor."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetini açarsanız cihazınız veri şifrelemeyi geliştirmek için ekran kilidinizi kullanmaz."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Bir erişilebilirlik hizmetini açtığınız için cihazınız veri şifrelemeyi geliştirmek üzere ekran kilidinizi kullanmayacak."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"<xliff:g id="SERVICE">%1$s</xliff:g> hizmetini etkinleştirmek veri şifrelemesini etkileyeceğinden deseninizi doğrulamanız gerekmektedir."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Bildirimler"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Gelişmiş"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"İş bildirimleri"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Simge rozetlerine izin ver"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Işığı yakıp söndür"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Kilit ekranında"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Bildirim içeriğinin tamamını göster"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Orta"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Yüksek"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Acil"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Sese İzin Ver"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Sese izin ver"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ses çıkarma, titreştirme veya bu bildirimleri geçerli ekrana getirme."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Bildirim yardımcısı"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Bildirim erişimi"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Ekran içinde ekran"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Ekran içinde ekran özelliğine izin ver"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Bu uygulamanın, uygulama açıkken veya uygulamadan çıktıktan sonra (örneğin, video izlemeye devam etmek için) ekran içinde ekran penceresi oluşturmasına izin verin. Bu pencere, kullandığınız diğer uygulamaların üzerinde gösterilir."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Evet"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Hayır"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Rahatsız Etmeyin erişimi"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Yüklü hiçbir uygulama Rahatsız Etmeyin erişimi isteğinde bulunmadı"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Uygulamalar yükleniyor..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Bu bildirimleri hiçbir zaman gösterme"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Bildirim göster"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Bildirimleri hiçbir zaman gölgede veya çevre birimi cihazlarında gösterme"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Rozet uygulama simgesi"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Destekleniyorsa, bildirimleri Ana Ekran uygulamasında rozet olarak gösterin."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Resim rozete izin ver"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Rahatsız Etmeyin ayarını geçersiz kıl"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Rahatsız Etmeyin seçeneği \"Yalnızca Öncelikli\" olarak ayarlıyken, bu bildirimlerin kesmeye devam etmesine izin ver"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Kilit ekranında"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Diğer uyg. üzerinde göster"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> uyg. diğer uyg. üzerinde gösterilmesine izin veriliyor"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"İzni olan uygulamalar"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Evet"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Hayır"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Bilinmeyen uygulamaları yükle"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"uygulamalar yükleme bilinmeyen kaynaklar"</string>
     <string name="write_settings" msgid="4797457275727195681">"Sistem ayarlarını değiştir"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Uygulamanın, sistem ayarlarını değiştirme izni"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Sistem ayarlarını değiştirmeye izin ver"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Bu izin, bir uygulanın sistem ayarlarını değiştirmesine olanak sağlar."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Evet"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Hayır"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"İzin verildi"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"İzin verilmiyor"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Bu kaynaktan izin verin"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kamera için iki kez bükün"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Bileğinizi iki kez bükerek kamera uygulamasını açın"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> Veri uyarısı"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> Veri uyarısı / <xliff:g id="ID_2">%2$s</xliff:g> Veri sınırı"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Fatura dönemi"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Her ayın <xliff:g id="ID_1">%1$s</xliff:g>. gününde"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Ağ kısıtlamaları"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> kısıtlama</item>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 4d706ff..20f0141 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Добрий"</item>
     <item msgid="8986346415847956850">"Відмінний"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Завжди"</item>
-    <item msgid="844721238536786870">"Лише в підключеному стані"</item>
-    <item msgid="1986753720941888596">"Ніколи"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Завжди"</item>
-    <item msgid="7433294150916905997">"Лише в підключеному стані"</item>
-    <item msgid="1390404486722375028">"Ніколи"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Останні 30 днів"</item>
     <item msgid="6600989128423965319">"Цикл використання даних…"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index bfae35e..3ecb210 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -32,6 +32,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Тепер ви – розробник!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Немає потреби, ви вже розробник."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -112,7 +114,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Від’єднатися?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Це призведе до роз’єднання з пристроєм:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Ви не маєте дозволу змінювати налаштування Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Пристрої поблизу можуть знайти <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, якщо відкрито налаштування Bluetooth."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"MAC-адреса Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Відключити пристрій <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Трансляція"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Вимкнути профіль?"</string>
@@ -160,6 +165,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s хоче отримати доступ до ваших повідомлень. Надати %2$s доступ?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Запит на доступ до SIM-карти"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"Пристрою <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> потрібен доступ до вашої SIM-карти. Коли він використовуватиме SIM-карту, ви не зможете передавати дані. Надати доступ пристрою <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Видно як \"<xliff:g id="DEVICE_NAME">^1</xliff:g>\" для інших пристроїв"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Дата й час"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Вибрати часовий пояс"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1045,6 +1051,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Підняти, щоб активувати"</string>
     <string name="doze_title" msgid="2259176504273878294">"Активація екрана"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Активувати екран, коли надходять сповіщення"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Завжди ввімкнено"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Показувати час, значки сповіщень тощо"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Розмір шрифту"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Збільшуйте або зменшуйте текст"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Налаштування блокування SIM-карти"</string>
@@ -1899,8 +1907,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Використовувати <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"Службі <xliff:g id="SERVICE">%1$s</xliff:g> потрібно:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Вашу відповідь не видно в Налаштуваннях, оскільки інший додаток загороджує запит на дозвіл."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Оскільки поверх цих опцій відображається інший додаток, налаштування не можуть реагувати на ваші дії."</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="enable_service_pattern_reason" msgid="777577618063306751">"Оскільки ввімкнення служби <xliff:g id="SERVICE">%1$s</xliff:g> впливає на шифрування даних, потрібно підтвердити ключ."</string>
@@ -2844,6 +2851,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Сповіщення"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Розширені налаштування"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Робочі сповіщення"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Показувати значки сповіщень"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Блимання"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"На заблокованому екрані"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Показувати весь вміст сповіщень"</string>
@@ -2869,7 +2877,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Звичайне сповіщення"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Важливе сповіщення"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Термінове сповіщення"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Дозвольте звуковий сигнал"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Дозволити звуковий сигнал"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Не подавати звуковий сигнал і вібросигнал та не показувати ці сповіщення на поточному екрані."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Диспетчер сповіщень"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Доступ до сповіщень"</string>
@@ -2900,8 +2908,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Картинка в картинці"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Дозволити функцію картинки в картинці"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Додаток зможе створювати вікно з картинкою в картинці, доки додаток відкрито або після виходу з нього (наприклад, щоб продовжити перегляд відео). Це вікно з’являтиметься поверх інших додатків."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Так"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Ні"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Доступ у режимі \"Не турбувати\""</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Установлені додатки не запитували доступу до функції \"Не турбувати\""</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Завантаження додатків…"</string>
@@ -2931,8 +2937,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ніколи не показувати ці сповіщення"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Показувати сповіщення"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ніколи не показувати сповіщення на панелі та периферійних пристроях"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Значок додатка"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Показувати сповіщення у вигляді значків у додатку Home (якщо він підтримується)."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Дозволити значок"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Заміна режиму \"Не турбувати\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Показувати ці сповіщення, коли в режимі \"Не турбувати\" вибрано \"Лише пріоритетні\""</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"На заблокованому екрані"</string>
@@ -3275,8 +3280,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Показувати поверх додатків"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"Додатки, які можуть відображатися поверх інших додатків: <xliff:g id="COUNT_0">%1$d</xliff:g> з <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Додатки з дозволом"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Так"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Ні"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Установлювати невідомі додатки"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"установлювати додатки невідомі джерела"</string>
     <string name="write_settings" msgid="4797457275727195681">"Змінювати налаштування системи"</string>
@@ -3289,10 +3296,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Дозвіл змінювати налаштування системи"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Дозволити змінювати налаштування системи"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Додаток зможе змінювати налаштування системи."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Так"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Ні"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Дозволено"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Заборонено"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Дозволити з цього джерела"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Відкривати Камеру, покрутивши зап’ястям"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Додаток Камера відкриється, якщо двічі покрутити зап’ястям"</string>
@@ -3389,8 +3392,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Щомісяця <xliff:g id="ID_1">%1$s</xliff:g> числа"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Обмеження мережі"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> обмеження</item>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 5d159c7..27a2b63 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"اچھا"</item>
     <item msgid="8986346415847956850">"عمدہ"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"ہمیشہ"</item>
-    <item msgid="844721238536786870">"صرف پلگ ان ہونے پر"</item>
-    <item msgid="1986753720941888596">"کبھی نہیں"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"ہمیشہ"</item>
-    <item msgid="7433294150916905997">"صرف پلگ ان ہونے پر"</item>
-    <item msgid="1390404486722375028">"کبھی نہیں"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"آخری 30 دن"</item>
     <item msgid="6600989128423965319">"استعمال کا دور سیٹ کریں…"</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 5ad66af..5c5568d 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"اب آپ ایک ڈیولپر ہیں!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"کوئی ضرورت نہیں ہے، آپ پہلے سے ہی ایک ڈیولپر ہیں۔"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"غیر مربوط کریں؟"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"‏یہ اس کے ساتھ آپ کے کنکشن کو ختم کر دے گا:&amp;‎lt;br&gt;&lt;‎b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;‎"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"آپ کو بلوٹوتھ ترتیبات میں تبدیلی کرنے کی اجازت نہیں ہے۔"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"بلوٹوتھ ترتیبات کھلی ہونے پر <xliff:g id="DEVICE_NAME">%1$s</xliff:g> قریبی آلات کیلئے مرئی ہے۔"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"‏بلوٹوتھ MAC پتہ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> کو منقطع کریں؟"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"نشریات"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"پروفائل غیر فعال کریں؟"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"‏%1$s آپ کے پیغامات تک رسائی حاصل کرنا چاہتا ہے۔ ‎%2$s کو رسائی دیں؟"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"‏SIM تک رسائی کی درخواست"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"‏<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> آپ کے SIM کارڈ تک رسائی حاصل کرنا چاہتا ہے۔ SIM کارڈ تک رسائی دینے سے کنکشن کے دورانیہ تک کیلئے آپ کے آلہ پر ڈیٹا کنیکٹیوٹی غیر فعال ہو جائے گی۔ <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> تک رسائی دیں"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"دیگر آلات کو بطور <xliff:g id="DEVICE_NAME">^1</xliff:g> مرئی ہے"</string>
     <string name="date_and_time" msgid="9062980487860757694">"تاریخ اور وقت"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"ٹائم زون منتخب کریں"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"جگانے کیلئے اٹھائیں"</string>
     <string name="doze_title" msgid="2259176504273878294">"ایمبی اینٹ ڈسپلے"</string>
     <string name="doze_summary" msgid="3846219936142814032">"اطلاعات موصول ہونے پر اسکرین کو جگائیں"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"ہمیشہ آن"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"وقت، اطلاعاتی آئیکنز اور دیگر معلومات دکھائیں"</string>
     <string name="title_font_size" msgid="4405544325522105222">"فونٹ سائز"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"متن کو چھوٹا یا بڑا کریں"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"‏SIM کارڈ لاک کی ترتیبات"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> کا استعمال کریں؟"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> کو ضرورت ہے:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"چونکہ ایک ایپ اجازت کی درخواست کو مبہم کر رہی ہے، لہذا ترتیبات آپ کے جواب کی توثیق نہیں کر سکتی ہے۔"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"کیونکہ ایک اور ایپ ان اختیارات میں سے سب سے اوپر ڈسپلے ہو رہی ہے، ترتیبات آپ کی کارروائی کا جواب نہیں دے سکتی۔"</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="enable_service_pattern_reason" msgid="777577618063306751">"کیونکہ <xliff:g id="SERVICE">%1$s</xliff:g> کو آن کرنے سے ڈیٹا کی مرموز کاری پر اثر پڑتا ہے، آپ کو اپنے پیٹرن کی توثیق کرنے کی ضرورت ہے۔"</string>
@@ -2360,7 +2367,7 @@
     <string name="data_usage_restrict_background" msgid="434093644726734586">"‏اگر آپ پس منظر کا موبائل ڈیٹا محدود کرتے ہیں تو کچھ ایپس اور سروسز اس وقت تک کام نہیں کریں گی جب تک آپ Wi‑Fi سے منسلک نہ ہوں۔"</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="7096707497743363380">"‏اگر آپ پس منظر کا موبائل ڈیٹا محدود کرتے ہیں تو کچھ ایپس اور سروسز اس وقت تک کام نہیں کریں گی جب تک آپ Wi‑Fi سے منسلک نہ ہوں۔\n\nیہ ترتیب اس ٹیبلیٹ پر موجود سبھی صارفین کو متاثر کرتی ہے۔"</string>
     <string name="data_usage_restrict_background_multiuser" product="default" msgid="7910798414964288424">"‏اگر آپ پس منظر کا موبائل ڈیٹا محدود کرتے ہیں تو کچھ ایپس اور سروسز اس وقت تک کام نہیں کریں گی جب تک آپ Wi‑Fi سے منسلک نہ ہوں۔\n\nیہ ترتیب اس فون پر موجود سبھی صارفین کو متاثر کرتی ہے۔"</string>
-    <string name="data_usage_sweep_warning" msgid="6387081852568846982"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"وارننگ<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12"></font></string>
+    <string name="data_usage_sweep_warning" msgid="6387081852568846982"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"وارننگ"</font></string>
     <string name="data_usage_sweep_limit" msgid="860566507375933039"><font size="18">"<xliff:g id="NUMBER">^1</xliff:g>"</font>" "<font size="9">"<xliff:g id="UNIT">^2</xliff:g>"</font>\n<font size="12">"حد"</font></string>
     <string name="data_usage_uninstalled_apps" msgid="614263770923231598">"ہٹائی گئی ایپس"</string>
     <string name="data_usage_uninstalled_apps_users" msgid="7986294489899813194">"ہٹائی گئی ایپس اور صارفین"</string>
@@ -2787,6 +2794,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"اطلاعات"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"جدید ترین"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"دفتری اطلاعات"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"آئیکن بیجز کی اجازت دیں"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"بلنک لائٹ"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"قفل اسکرین پر"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"سبھی اطلاعی مواد دکھائیں"</string>
@@ -2812,7 +2820,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"متوسط"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"زیادہ"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"ارجنٹ"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"آواز کی اجازت دیں"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"آواز کی اجازت دیں"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"آواز نہ نکالیں، وائبریٹ نہ کریں اور ان اطلاعات کو موجودہ اسکرین پر نہ دکھائیں۔"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"اطلاع کا معاون"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"اطلاع تک رسائی"</string>
@@ -2841,8 +2849,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"تصویر میں تصویر"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"تصویر میں تصویر کی اجازت دیں"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"ایپ کے کھلے رہنے پر یا آپ کے اسے چھوڑنے کے بعد اس ایپ کو تصویر میں تصویر ونڈو بنانے کی اجازت دیں (مثال کے طور پر، ویڈیو دیکھنا جاری رکھیں)۔ یہ ونڈو آپ کے ذریعے استعمال کی جانے والی دیگر ایپس کے اوپری حصے پر ڈسپلے ہوتی ہے۔"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"ہاں"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"نہیں"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"ڈسٹرب نہ کریں تک رسائی"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"کسی انسٹال کردہ ایپس نے ڈسٹرب نہ کریں تک رسائی کی درخواست نہیں کی ہے"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"ایپس لوڈ ہو رہی ہیں…"</string>
@@ -2868,8 +2874,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"یہ اطلاعات کبھی مت دکھائیں"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"اطلاعات دکھائیں"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"شیڈ میں یا پیریفرل آلات پر کبھی بھی اطلاعات نہ دکھائیں"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"بَیج ایپ آئیکن"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"ہوم ایپ پر بیجز کی طرح اطلاعات دکھائیں، اگر تعاون یافتہ ہیں۔"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"آئیکن بیج کی اجازت دیں"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"ڈسٹرب نہ کریں کو اوور رائیڈ کریں"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"جب \'ڈسٹرب نہ کریں\' صرف ترجیح پر سیٹ ہو تو ان اطلاعات کو مداخلت کرنے دیں"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"قفل اسکرین پر"</string>
@@ -3196,8 +3201,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"دیگر ایپس پر ڈسپلے کریں"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_1">%2$d</xliff:g> میں سے <xliff:g id="COUNT_0">%1$d</xliff:g> ایپس کو دیگر ایپس پر دکھانے کی اجازت ہے"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"اجازت والی ایپس"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"ہاں"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"نہیں"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"نامعلوم ایپس انسٹال کریں"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"نامعلوم ذرائع کی ایپس انسٹال کریں"</string>
     <string name="write_settings" msgid="4797457275727195681">"سسٹم ترتیبات میں ترمیم کریں"</string>
@@ -3210,10 +3217,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"ایپ \'سسٹم ترتیبات میں ترمیم کریں\' کی اجازت"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"\'سسٹم ترتیبات میں ترمیم کریں\' کی اجازت دیں"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"یہ اجازت ایپ کو سسٹم ترتیبات میں ترمیم کرنے دیتی ہے۔"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"ہاں"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"نہیں"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"اجازت ہے"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"اجازت نہیں ہے"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"اس ماخذ کو اجازت دیں"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"کیمرا کیلئے دو بار مروڑیں"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"اپنی کلائی کو دو بار مروڑ کر کیمرا ایپ کھولیں"</string>
@@ -3308,8 +3311,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"ماہانہ <xliff:g id="ID_1">%1$s</xliff:g> دن کو"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"نیٹ ورک کی پابندیاں"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> پابندیاں</item>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index e43e78b..31c1102 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Yaxshi"</item>
     <item msgid="8986346415847956850">"A’lo"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"O‘chirilmasin"</item>
-    <item msgid="844721238536786870">"Faqat quvvat olayotganda"</item>
-    <item msgid="1986753720941888596">"Hech qachon"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"O‘chirilmasin"</item>
-    <item msgid="7433294150916905997">"Faqat quvvat olayotganda"</item>
-    <item msgid="1390404486722375028">"Hech qachon"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"So‘nggi 30 kun"</item>
     <item msgid="6600989128423965319">"Internetdan foyd-sh davri…"</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 1763255..302f5ef 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Siz endi dasturchisiz!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Shart emas, siz allaqachon dasturchi rejimiga o‘tgansiz."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Simsiz tarmoqlar"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Ulanishlar"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Qurilma"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Uzilsinmi?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Quyidagi qurilma bilan aloqa uziladi:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Sizda Bluetooth sozlamalarini o‘zgartirish uchun ruxsat yo‘q."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"Bluetooth sozlamalari ochiq turgan vaqtda <xliff:g id="DEVICE_NAME">%1$s</xliff:g> yaqin-atrofdagi qurilmalarga ko‘rinadi."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Bluetooth MAC manzili: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> bilan aloqa uzilsinmi?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Signal uzatish"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Profil o‘chirib qo‘yilsinmi?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s xabarlaringizni ochmoqchi. %2$s‘ga ruxsat berilsinmi?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM karta ma’lumotlariga kirish so‘rovi"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"“<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>” qurilmasi SIM karta ma’lumotlarini ko‘rmoqchi. SIM karta ma’lumotlarini ko‘rishga ruxsat bersangiz, qurilmangizdagi ulanishlar vaqtincha o‘chib qoladi. “<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>” qurilmasiga ruxsat berish."</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Boshqa qurilmalarga <xliff:g id="DEVICE_NAME">^1</xliff:g> sifatida ko‘rinadi"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Sana va vaqt"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Vaqt zonasini tanlang"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1022,6 +1028,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Tik holatda faollashtirish"</string>
     <string name="doze_title" msgid="2259176504273878294">"Sezgir ekran"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Bildirishnoma kelganda ekran yonadi"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Har doim yoniq"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Vaqt, bildirishnoma belgilari va boshqa ma’lumotlarni ko‘rsatish"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Shrift o‘lchami"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Matnni kattalashtirish yoki kichiklashtirish"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM karta qulfi sozlamalari"</string>
@@ -1550,7 +1558,7 @@
     <string name="filter" msgid="2018011724373033887">"Saralash"</string>
     <string name="filter_dlg_title" msgid="8693024463731076091">"Filter moslamalarini tanlang"</string>
     <string name="filter_apps_all" msgid="8899612398848280352">"Barcha ilovalar"</string>
-    <string name="filter_apps_disabled" msgid="5862632369555319938">"O‘chirib qo‘yilgan ilovalar"</string>
+    <string name="filter_apps_disabled" msgid="5862632369555319938">"Faolsizlantirilgan ilovalar"</string>
     <string name="filter_apps_third_party" msgid="7786348047690140979">"Yuklab olingan"</string>
     <string name="filter_apps_running" msgid="7767071454371350486">"Ishlayotgan"</string>
     <string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"USB xotira"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"<xliff:g id="SERVICE">%1$s</xliff:g> yoqilsinmi?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Ilova ruxsatnoma so‘roviga xalaqit qilayotgani tufayli, “Sozlamalar” ilovasi javobingizni tekshira olmaydi."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Chunki boshqa ilova bu parametrlar ustidan ko‘rsatilmoqda, Sozlamalar amallaringizga javob bera olmaydi."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Agar <xliff:g id="SERVICE">%1$s</xliff:g> xizmatini yoqsangiz, qurilmangiz ma’lumotlarni shifrlashni kuchaytirish uchun ekran qulfidan foydalanmaydi."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Maxsus imkoniyatlar xizmati yoqilganligi tufayli qurilmangiz ma’lumotlarni shifrlashni kuchaytirish uchun ekran qulfidan foydalanmaydi."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"“<xliff:g id="SERVICE">%1$s</xliff:g>” xizmatini yoqish ma’lumotlarni shifrlashga ta’sir qilgani bois chizmali parolingizni tasdiqlashingiz lozim."</string>
@@ -2086,7 +2093,7 @@
     <string name="menu_duration_6h" msgid="1940846763432184132">"6 soat"</string>
     <string name="menu_duration_12h" msgid="7890465404584356294">"12 soat"</string>
     <string name="menu_duration_1d" msgid="3393631127622285458">"1 kun"</string>
-    <string name="menu_show_system" msgid="8864603400415567635">"Tizimga oid jarayonlarni ko‘rsatish"</string>
+    <string name="menu_show_system" msgid="8864603400415567635">"Tizimga oid jarayonlar"</string>
     <string name="menu_hide_system" msgid="4106826741703745733">"Tizimga oid jarayonlarni berkitish"</string>
     <string name="menu_show_percentage" msgid="4717204046118199806">"Foizlarda ko‘rsatish"</string>
     <string name="menu_use_uss" msgid="467765290771543089">"USSdan foydalanish"</string>
@@ -2548,7 +2555,7 @@
     <string name="user_exit_guest_confirm_title" msgid="3405527634738147409">"Mehmon hisobi o‘chirib tashlansinmi?"</string>
     <string name="user_exit_guest_confirm_message" msgid="2194459201944413257">"Ushbu seansdagi barcha ilovalar va ma’lumotlar o‘chirib tashlanadi."</string>
     <string name="user_exit_guest_dialog_remove" msgid="6351370829952745350">"O‘chirish"</string>
-    <string name="user_enable_calling" msgid="5128605672081602348">"Telefon qo‘ng‘iroqlari"</string>
+    <string name="user_enable_calling" msgid="5128605672081602348">"Telefon chaqiruvlari"</string>
     <string name="user_enable_calling_sms" msgid="9172507088023097063">"Telefon qo‘ng‘iroqlari va SMS"</string>
     <string name="user_remove_user" msgid="6490483480937295389">"Foydalanuvchini olib tashlash"</string>
     <string name="user_enable_calling_confirm_title" msgid="4315789475268695378">"Telefon qo‘ng‘iroqlari yoqilsinmi?"</string>
@@ -2678,7 +2685,7 @@
     <string name="network_dashboard_summary" msgid="3274556191585905652">"Wi-Fi, mobil, trafik sarfi, hotspot"</string>
     <string name="connected_devices_dashboard_title" msgid="2355264951438890709">"Ulangan qurilmalar"</string>
     <string name="connected_devices_dashboard_summary" msgid="2390582103384791904">"Bluetooth, translatsiya, NFC"</string>
-    <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ilova va bildirishnomalar"</string>
+    <string name="app_and_notification_dashboard_title" msgid="7838365599185397539">"Ilovalar va bildirishnomalar"</string>
     <string name="app_and_notification_dashboard_summary" msgid="2363314178802548682">"Ruxsatnomalar, birlamchi ilovalar"</string>
     <string name="account_dashboard_title" msgid="4936890821712178853">"Foydalanuvchilar va hisoblar"</string>
     <string name="app_default_dashboard_title" msgid="7342549305933047317">"Birlamchi ilovalar"</string>
@@ -2799,11 +2806,12 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Bildirishnomalar"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Kengaytirilgan sozlamalar"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Ishga oid bildirishnomalar"</string>
-    <string name="notification_pulse_title" msgid="1905382958860387030">"Miltillash"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Nishonchalarga ruxsat berish"</string>
+    <string name="notification_pulse_title" msgid="1905382958860387030">"Indikator"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Qulflangan ekranda"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Bildirishnoma to‘liq ko‘rsatilsin"</string>
-    <string name="lock_screen_notifications_summary_hide" msgid="7891552853357258782">"Maxfiy ma’lumotlar ko‘rsatilmasin"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"Bildirishnomalar ko‘rsatilmasin"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Bildirishnomalar to‘liq chiqsin"</string>
+    <string name="lock_screen_notifications_summary_hide" msgid="7891552853357258782">"Maxfiy axborotlar berkitilsin"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="859628910427886715">"Bildirishnomalar chiqmasin"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="6164532459432182244">"Qurilmangiz qulflanganda, bildirishnomalar qanday ko‘rsatilsin?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="1416589393106326972">"Bildirishnomalar"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="835870815661120772">"Ishchi bildirishnomalar to‘liq ko‘rsatilsin"</string>
@@ -2824,7 +2832,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"O‘rtacha"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Yuqori"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Juda muhim"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Ovozga ruxsat berish"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Ovozga ruxsat berish"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Qurilma ovozli signal va tebranish bermaydi, bildirishnomalar boshqa ilovalar ustidan ochilmaydi"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Bildirishnoma yordamchisi"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Bildirishnomalarga kirish"</string>
@@ -2853,8 +2861,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Tasvir ustida tasvir"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Tasvir ustida tasvir rejimiga ruxsat berish"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Bu ilova ochiqligida yoki uni qoldirib ketganingizda (masalan, video tomosha qilishni davom ettirish uchun) bu ilova tasvir ustida tasvir rejimida ishlashiga ruxsat bering. Bu oyna boshqa ishlatilayotgan ilovalar ustida ochiladi."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Ha"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Yo‘q"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"“Bezovta qilinmasin” fuksiyasi"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Hech qaysi ilova “Bezovta qilinmasin” funksiyasiga ruxsat so‘ramagan"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Ilovalar yuklanmoqda…"</string>
@@ -2880,8 +2886,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Bu bildirishnomalar boshqa ko‘rsatilmasin"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Bildirishnomalar ko‘rsatilsin"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Fonda yoki tashqi qurilmalarda bildirishnomalar hech qachon ko‘rsatilmasin"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Ilova nishonchasi"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Bosh ekranda bildirishnomalar nishoncha sifatida ko‘rsatilsin (agar ishlasa)."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Nishonchaga ruxsat berish"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Bezovta qilinmasin rejimi ustidan yozish"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Bezovta qilinmasin rejimida faqat muhim bildirishnomalarga ruxsat berilgan bo‘lsa, ushbu bildirishnomalarga ham ruxsat beriladi"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Qulflangan ekranda"</string>
@@ -2890,7 +2895,7 @@
     <string name="app_notification_row_sensitive" msgid="1809610030432329940">"Maxfiy"</string>
     <string name="app_notifications_dialog_done" msgid="3484067728568791014">"Tayyor"</string>
     <string name="app_notification_importance_title" msgid="8002263131149345584">"Muhimligi"</string>
-    <string name="notification_show_lights_title" msgid="7671781299688190532">"Miltillash"</string>
+    <string name="notification_show_lights_title" msgid="7671781299688190532">"Indikator"</string>
     <string name="notification_vibrate_title" msgid="1646667807969755957">"Tebranish"</string>
     <string name="notification_channel_sound_title" msgid="3899212238513507941">"Tovush"</string>
     <string name="zen_mode_rule_delete_button" msgid="903658142711011617">"O‘chirish"</string>
@@ -3208,8 +3213,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Boshqa oynalar ustidan ochish"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> ta ilova boshqa oynalar ustidan ochilishi mumkin (jami: <xliff:g id="COUNT_1">%2$d</xliff:g>)"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Ruxsatga ega ilovalar"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Ha"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Yo‘q"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Notanish ilovalarni o‘rnatish"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"notanish manbalar ilovalar o‘rnatish"</string>
     <string name="write_settings" msgid="4797457275727195681">"Tizim sozlamalarini o‘zgar-sh"</string>
@@ -3222,10 +3229,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Tizim sozlamalarini o‘zgartirish uchun ruxsat"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Tizim sozlamalarini o‘zgartirishga ruxsat"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Bu ruxsatnoma ilovaga tizim sozlamalarini o‘zgaritish uchun ruxsat beradi."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Ha"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Yo‘q"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Ruxsat berilgan"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Ruxsat berilmagan"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Bu manbaga ruxsat bering"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Kamera uchun bilakni ikki marta bukish"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Kamera ilovasini ochish uchun bilagingizni ikki marta buking"</string>
@@ -3320,8 +3323,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"Ma’lumotlarni uzatishdagi ogohlantirishlar: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"Ma’lumotlarni uzatishdagi ogohlantirishlar: <xliff:g id="ID_1">%1$s</xliff:g> / Ma’lumotlarni uzatish cheklovi: <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"To‘lov davriyligi"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Har oyda (<xliff:g id="ID_1">%1$s</xliff:g>-kuni)"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Tarmoq cheklovlari"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> ta cheklov</item>
@@ -3393,10 +3395,10 @@
     <string name="notification_log_details_none" msgid="184131801230614059">"yo‘q"</string>
     <string name="notification_log_details_ranking_null" msgid="244660392058720919">"Obyekt mavjud emas."</string>
     <string name="notification_log_details_ranking_none" msgid="599607025882587844">"Obyektda bu kalit yo‘q."</string>
-    <string name="special_access" msgid="3458780842491881155">"Ilova uchun maxsus ruxsat"</string>
+    <string name="special_access" msgid="3458780842491881155">"Maxsus ruxsatlar"</string>
     <plurals name="special_access_summary" formatted="false" msgid="260765309935675867">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta ilova cheklanmagan trafik ishlatadi</item>
-      <item quantity="one">1 ta ilova cheklanmagan trafik ishlatadi</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ta ilova uchun trafik cheklanmagan</item>
+      <item quantity="one">1 ta ilova uchun trafik cheklanmagan</item>
     </plurals>
     <string name="confirm_convert_to_fbe_warning" msgid="1487005506049137659">"Foydalanuvchi ma’lumotlari o‘chirib tashlanib, shifrlashga o‘tilsinmi?"</string>
     <string name="button_confirm_convert_fbe" msgid="7101855374850373091">"O‘chirib tashlash va o‘girish"</string>
@@ -3488,10 +3490,10 @@
     <string name="ambient_display_pickup_summary" product="default" msgid="8696432220086951466">"Bildirishnomalarni tezkor tekshirish uchun telefonni qo‘lingizga oling."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="2442551819015699120">"Bildirishnomalarni tezkor tekshirish uchun planshetni qo‘lingizga oling."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="2369325441608811599">"Bildirishnomalarni tezkor tekshirish uchun qurilmani qo‘lingizga oling."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Bildirishnomalarni ochish uchun barmoq bilan suring"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Bildirishnomalarni ko‘rish uchun telefon orqasida joylashgan barmoq izi skanerida barmog‘ingizni pastga suring."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Bildirishnomalarni ko‘rish uchun planshet orqasida joylashgan barmoq izi skanerida barmog‘ingizni pastga suring."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"Bildirishnomalarni ko‘rish uchun qurilma orqasida joylashgan barmoq izi skanerida barmog‘ingizni pastga suring."</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="5816346492253270243">"Barmoq izi skaneridan foydalanish"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="1770661868393713922">"Bildirishnomalarni tekshirish uchun telefon orqasidagi barmoq izi skaneri ustida pastga suring"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="902719947767712895">"Bildirishnomalarni tekshirish uchun planshet orqasidagi barmoq izi skaneri ustida pastga suring"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="5372926094116306647">"Bildirishnomalarni tekshirish uchun qurilma orqasidagi barmoq izi skaneri ustida pastga suring"</string>
     <string name="camera_lift_trigger_title" msgid="2758206307949942951">"Kamerani ochish uchun ko‘taring"</string>
     <string name="camera_lift_trigger_summary" msgid="8580625412416846375">"Kamerani avtomatik ochish uchun telefonni suratga olish holatiga (yotiq yoki tik holat) keltiring. Telefon uyqu rejimida yoki qulflangan bo‘lsa ishlaydi."</string>
     <string name="camera_lift_trigger_suggestion_summary" msgid="3574391686649107540">"Qulflangan ekrandan suratga olish"</string>
@@ -3532,7 +3534,7 @@
     <string name="enterprise_privacy_bug_reports" msgid="843225086779037863">"Eng oxirgi xatoliklar hisoboti"</string>
     <string name="enterprise_privacy_security_logs" msgid="5377362481617301074">"Eng oxirgi xavfsizlik jurnali"</string>
     <string name="enterprise_privacy_none" msgid="7706621148858381189">"Hech biri"</string>
-    <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"Ilovalar o‘rnatildi"</string>
+    <string name="enterprise_privacy_enterprise_installed_packages" msgid="6353757812144878828">"O‘rnatilgan ilovalar"</string>
     <string name="enterprise_privacy_apps_count_estimation_info" msgid="7433213592572082606">"Ilovalar soni hisoblanmoqda. Play Market orqali o‘rnatilmagan ilovalar hisoblanmasligi mumkin."</string>
     <plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="3005116533873542976">
       <item quantity="other">Kamida <xliff:g id="COUNT_1">%d</xliff:g> ta ilova</item>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 3856fc0..641f6ed 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Tốt"</item>
     <item msgid="8986346415847956850">"Tuyệt vời"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Luôn luôn"</item>
-    <item msgid="844721238536786870">"Chỉ khi cắm vào nguồn điện"</item>
-    <item msgid="1986753720941888596">"Không bao giờ"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Luôn luôn"</item>
-    <item msgid="7433294150916905997">"Chỉ khi cắm vào nguồn điện"</item>
-    <item msgid="1390404486722375028">"Không bao giờ"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"30 ngày qua"</item>
     <item msgid="6600989128423965319">"Đặt chu kỳ sử dụng..."</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 23b8b33..96f473c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Bạn đã là nhà phát triển!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Không cần, bạn đã là nhà phát triển."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Mạng không dây và mạng"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Kết nối"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Thiết bị"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ngắt kết nối?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Tác vụ này sẽ kết thúc kết nối của bạn với:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Bạn không có quyền thay đổi cài đặt Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> hiển thị với thiết bị lân cận khi cài đặt Bluetooth mở."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Địa chỉ MAC Bluetooth: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Ngắt kết nối <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Phát sóng"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vô hiệu hồ sơ?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s muốn truy cập tin nhắn của bạn. Bạn có muốn cấp quyền truy cập cho %2$s không?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Yêu cầu truy cập SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> muốn truy cập vào thẻ SIM của bạn. Cấp quyền truy cập vào thẻ SIM sẽ vô hiệu hóa khả năng kết nối dữ liệu trên thiết bị của bạn trong suốt thời gian kết nối. Cấp quyền truy cập vào <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Hiển thị là <xliff:g id="DEVICE_NAME">^1</xliff:g> với các thiết bị khác"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Ngày và giờ"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Chọn múi giờ"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Nhấc lên để đánh thức"</string>
     <string name="doze_title" msgid="2259176504273878294">"Màn hình xung quanh"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Bật màn hình khi bạn nhận được thông báo"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Luôn bật"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Hiển thị thời gian, biểu tượng thông báo và các thông tin khác"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Kích thước phông chữ"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Phóng to hoặc thu nhỏ văn bản"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Cài đặt khóa thẻ SIM"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Sử dụng <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> cần:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Vì ứng dụng đang che khuất yêu cầu cấp quyền, Cài đặt không thể xác minh câu trả lời của bạn."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Do một ứng dụng khác đang hiển thị ở phía trên các tùy chọn này nên Cài đặt không thể phản hồi với tác vụ của bạn."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Nếu bạn bật <xliff:g id="SERVICE">%1$s</xliff:g>, thiết bị của bạn sẽ không sử dụng khóa màn hình để cải tiến việc mã hóa dữ liệu."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Vì bạn đã bật dịch vụ trợ năng, thiết bị của bạn sẽ không sử dụng khóa màn hình để cải tiến việc mã hóa dữ liệu."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Vì bật <xliff:g id="SERVICE">%1$s</xliff:g> ảnh hưởng đến mã hóa dữ liệu, bạn cần phải xác nhận hình của mình."</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Thông báo"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Nâng cao"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Thông báo công việc"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Cho phép huy hiệu biểu tượng"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Đèn nhấp nháy"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Trên màn hình khóa"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Hiển thị tất cả nội dung thông báo"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Trung bình"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Cao"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Khẩn cấp"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Phát ra âm thanh"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Cho phép âm thanh"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Không phát ra âm thanh, rung hoặc hiển thị các thông báo này khi xem trên màn hình hiện tại."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Trợ lý thông báo"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Truy cập thông báo"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Ảnh trong ảnh"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Cho phép ảnh trong ảnh"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Cho phép ứng dụng tạo cửa sổ ảnh trong ảnh trong khi ứng dụng đang mở hoặc sau khi bạn rời khỏi ứng dụng đó (ví dụ: để tiếp tục xem video). Cửa sổ này sẽ hiển thị trên các ứng dụng khác mà bạn đang sử dụng."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Có"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Không"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Không làm phiền"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Không có ứng dụng được cài đặt nào yêu cầu quyền truy cập Không làm phiền"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Đang tải ứng dụng..."</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Không bao giờ hiển thị các thông báo này"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Hiển thị thông báo"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Không bao giờ hiển thị thông báo trong ngăn thông báo hoặc trên thiết bị ngoại vi"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Biểu tượng ứng dụng huy hiệu"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Hiển thị thông báo dưới dạng huy hiệu trên ứng dụng trong Màn hình chính, nếu được hỗ trợ."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Cho phép huy hiệu biểu tượng"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Ghi đè Không làm phiền"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Cho phép các thông báo này tiếp tục làm gián đoạn khi tính năng Không làm phiền được đặt thành Chỉ ưu tiên."</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Trên màn hình khóa"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Hiển thị trên các ứng dụng khác"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> ứng dụng được phép hiển thị trên các ứng dụng khác"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Các ứng dụng có quyền"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Có"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Không"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"C.đặt ư.dụng ko xác định"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"cài đặt ứng dụng từ nguồn không xác định"</string>
     <string name="write_settings" msgid="4797457275727195681">"Sửa đổi cài đặt hệ thống"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Quyền sửa đổi cài đặt hệ thống của ứng dụng"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Cho phép sửa đổi cài đặt hệ thống"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Quyền này cho phép ứng dụng sửa đổi cài đặt hệ thống."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Có"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Không"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Được phép"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Không được phép"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Cho phép từ nguồn này"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Xoắn đúp cho camera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Mở ứng dụng camera bằng cách vặn cổ tay hai lần"</string>
@@ -3309,8 +3312,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> cảnh báo dữ liệu"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> cảnh báo dữ liệu / <xliff:g id="ID_2">%2$s</xliff:g> giới hạn dữ liệu"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Chu kỳ thanh toán"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Hàng tháng vào ngày <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Hạn chế của mạng"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> hạn chế</item>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 1005c8a..cf3af7a 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"良好"</item>
     <item msgid="8986346415847956850">"极佳"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"始终"</item>
-    <item msgid="844721238536786870">"仅限充电时"</item>
-    <item msgid="1986753720941888596">"永不"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"始终"</item>
-    <item msgid="7433294150916905997">"仅限充电时"</item>
-    <item msgid="1390404486722375028">"永不"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"过去30天"</item>
     <item msgid="6600989128423965319">"设置流量周期…"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 2759c18..4c21db5 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"您现在处于开发者模式!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"您已处于开发者模式,无需进行此操作。"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"要断开连接吗?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"此操作将会断开您与以下设备的连接:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"您无权更改蓝牙设置。"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"在 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 上开启蓝牙设置后,附近的设备将可以检测到该设备。"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"蓝牙 MAC 地址:<xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"要断开与<xliff:g id="DEVICE_NAME">%1$s</xliff:g>的连接吗?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"广播"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"要停用配置文件吗?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"“%1$s”想要查看您的消息。要向“%2$s”授予权限吗?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM 访问权限请求"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>想要访问您的 SIM 卡。如果授权该设备访问 SIM 卡,您设备的数据连接功能在蓝牙连接期间将停用。将访问权限授予<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"向其他设备显示为 <xliff:g id="DEVICE_NAME">^1</xliff:g>"</string>
     <string name="date_and_time" msgid="9062980487860757694">"日期和时间"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"选择时区"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"拿起设备时唤醒"</string>
     <string name="doze_title" msgid="2259176504273878294">"主动显示"</string>
     <string name="doze_summary" msgid="3846219936142814032">"收到通知时唤醒屏幕"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"始终开启"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"显示时间、通知图标和其他信息"</string>
     <string name="title_font_size" msgid="4405544325522105222">"字体大小"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"放大或缩小文字"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM卡锁定设置"</string>
@@ -1740,9 +1748,9 @@
     <string name="builtin_keyboard_settings_title" msgid="7688732909551116798">"物理键盘"</string>
     <string name="builtin_keyboard_settings_summary" msgid="2392531685358035899">"物理键盘设置"</string>
     <string name="gadget_picker_title" msgid="98374951396755811">"选择小工具"</string>
-    <string name="widget_picker_title" msgid="9130684134213467557">"选择小部件"</string>
-    <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建小部件并查看其数据?"</string>
-    <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建小部件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
+    <string name="widget_picker_title" msgid="9130684134213467557">"选择微件"</string>
+    <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="2538303018392590627">"是否允许该应用创建微件并查看其数据?"</string>
+    <string name="allow_bind_app_widget_activity_allow_bind" msgid="1584388129273282080">"当您创建微件后,“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”将能查看其显示的所有数据。"</string>
     <string name="allow_bind_app_widget_activity_always_allow_bind" msgid="7037503685859688034">"始终允许“<xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g>”创建微件并查看其数据"</string>
     <string name="battery_history_days" msgid="7110262897769622564">"<xliff:g id="DAYS">%1$d</xliff:g>天<xliff:g id="HOURS">%2$d</xliff:g>小时<xliff:g id="MINUTES">%3$d</xliff:g>分<xliff:g id="SECONDS">%4$d</xliff:g>秒"</string>
     <string name="battery_history_hours" msgid="7525170329826274999">"<xliff:g id="HOURS">%1$d</xliff:g>小时<xliff:g id="MINUTES">%2$d</xliff:g>分<xliff:g id="SECONDS">%3$d</xliff:g>秒"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"要启用<xliff:g id="SERVICE">%1$s</xliff:g>吗?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g>需要:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"由于某个应用遮挡了权限请求界面,因此“设置”应用无法验证您的回应。"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"由于另一个应用目前正显示在这些选项上,“设置”无法回应您的操作。"</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="enable_service_pattern_reason" msgid="777577618063306751">"由于开启<xliff:g id="SERVICE">%1$s</xliff:g>会影响数据加密,因此您需要确认您的解锁图案。"</string>
@@ -2788,6 +2795,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"高级"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"允许在图标上显示标记"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"闪烁指示灯"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"屏幕锁定时"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"显示所有通知内容"</string>
@@ -2813,7 +2821,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"中"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"高"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"紧急"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"允许发出提示音"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"允许发出提示音"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"不发出提示音,不振动,也不在当前屏幕上短暂显示这些通知。"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"通知助手"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"通知使用权"</string>
@@ -2842,8 +2850,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"画中画"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"允许进入画中画模式"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"允许此应用在您打开或离开应用(如继续观看视频)时创建画中画窗口。该窗口会显示在您当前使用的其他应用的上层。"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"是"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"否"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"“勿扰”权限"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"没有任何已安装应用申请“勿扰”权限"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"正在加载应用…"</string>
@@ -2869,8 +2875,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"一律不显示这类通知"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"显示通知"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"一律不在通知栏或外围设备上显示通知"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"在应用图标上显示标记"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"在主屏幕应用上以状态标记的形式显示通知(如果支持的话)。"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"允许在图标上显示标记"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"覆盖“勿扰”设置"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"当勿扰模式设为“仅限优先事项”时,允许继续接收这类通知"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"屏幕锁定时"</string>
@@ -3197,8 +3202,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"显示在其他应用的上层"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> 个(共 <xliff:g id="COUNT_1">%2$d</xliff:g> 个)应用可以显示在其他应用的上层"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"具有该权限的应用"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"允许"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"不允许"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"安装未知应用"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"安装应用 未知来源"</string>
     <string name="write_settings" msgid="4797457275727195681">"修改系统设置"</string>
@@ -3211,10 +3218,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"允许应用修改系统设置权限"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"允许修改系统设置"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"此权限允许应用修改系统设置。"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"允许"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"不允许"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"允许"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"不允许"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"允许来自此来源的应用"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"扭转两次即可打开相机"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"扭转手腕两次即可打开相机应用"</string>
@@ -3309,8 +3312,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"每月 <xliff:g id="ID_1">%1$s</xliff:g> 日"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"网络流量限制"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 项限制</item>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 4cb0452..ba1fe3a 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"強"</item>
     <item msgid="8986346415847956850">"非常強"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"永遠"</item>
-    <item msgid="844721238536786870">"只在充電時"</item>
-    <item msgid="1986753720941888596">"永不"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"永遠"</item>
-    <item msgid="7433294150916905997">"只在充電時"</item>
-    <item msgid="1390404486722375028">"永不"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"最近 30 天"</item>
     <item msgid="6600989128423965319">"設定用量週期…"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index b693e07..8fff5c2 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"您現已成為開發人員!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"不需要了,您已經是開發人員。"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"中斷連線?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"這樣會結束您與下列裝置的連線:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"您沒有變更藍牙設定的權限。"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"開啟藍牙設定時,附近的裝置可偵測到 <xliff:g id="DEVICE_NAME">%1$s</xliff:g>。"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"藍牙 MAC 位址:<xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"解除與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的連結?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"廣播"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"停用個人資料?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s 想存取您的訊息,要授予 %2$s 存取權嗎?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM 卡存取權要求"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> 要存取您的 SIM 卡。如果允許存取 SIM 卡,您裝置上的數據連線將於連線期間停用。允許 <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> 存取"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"對其他裝置顯示為「<xliff:g id="DEVICE_NAME">^1</xliff:g>」"</string>
     <string name="date_and_time" msgid="9062980487860757694">"日期與時間"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"選擇時區"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"舉起即可喚醒"</string>
     <string name="doze_title" msgid="2259176504273878294">"環境顯示"</string>
     <string name="doze_summary" msgid="3846219936142814032">"收到通知時喚醒螢幕"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"永遠開啟"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"顯示時間、通知圖示和其他資料"</string>
     <string name="title_font_size" msgid="4405544325522105222">"字型大小"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"放大或縮小文字"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 卡鎖定設定"</string>
@@ -1324,7 +1332,7 @@
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="930464462687425777">"已開啟熱點和網絡共享功能"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="3473671453891735907">"已開啟熱點"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1618256180720077354">"已開啟網絡共享功能"</string>
-    <string name="tether_settings_disabled_on_data_saver" msgid="1576908608463904152">"啟用數據節省程式時,無法使用網絡共享功能或便攜熱點。"</string>
+    <string name="tether_settings_disabled_on_data_saver" msgid="1576908608463904152">"「數據節省模式」開啟時,網絡共享功能或便攜熱點便無法使用。"</string>
     <string name="usb_title" msgid="7483344855356312510">"USB"</string>
     <string name="usb_tethering_button_text" msgid="585829947108007917">"USB 網絡共享"</string>
     <string name="usb_tethering_available_subtext" msgid="156779271296152605">"已連接 USB,勾選即可共享網絡"</string>
@@ -1489,7 +1497,7 @@
     <string name="lock_settings_profile_unified_summary" msgid="9008819078132993492">"與裝置的螢幕鎖定相同"</string>
     <string name="manageapplications_settings_title" msgid="7041951105633616745">"管理應用程式"</string>
     <string name="manageapplications_settings_summary" msgid="1794401500935451259">"管理及移除已安裝的應用程式"</string>
-    <string name="applications_settings" msgid="5281808652705396152">"應用程式資訊"</string>
+    <string name="applications_settings" msgid="5281808652705396152">"應用程式資料"</string>
     <string name="applications_settings_summary" msgid="6683465446264515367">"管理應用程式,設定快速啟動鍵"</string>
     <string name="applications_settings_header" msgid="1014813055054356646">"應用程式設定"</string>
     <string name="install_applications" msgid="4872012136210802181">"不明來源"</string>
@@ -1500,7 +1508,7 @@
     <string name="install_all_warning" product="default" msgid="1952257127370115988">"來源不明的應用程式可能會侵害您的手機和個人資料。安裝來自此來源的應用程式,即表示您同意承擔因使用這些應用程式而導致手機損壞或資料遺失的責任。"</string>
     <string name="advanced_settings" msgid="1777249286757067969">"進階設定"</string>
     <string name="advanced_settings_summary" msgid="4016682978071086747">"啟用更多設定選項"</string>
-    <string name="application_info_label" msgid="5736524913065714880">"應用程式資訊"</string>
+    <string name="application_info_label" msgid="5736524913065714880">"應用程式資料"</string>
     <string name="storage_label" msgid="8700867073480107253">"儲存空間"</string>
     <string name="auto_launch_label" msgid="2669236885531442195">"預設開啟"</string>
     <string name="auto_launch_label_generic" msgid="3230569852551968694">"預設設定"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"使用「<xliff:g id="SERVICE">%1$s</xliff:g>」?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"由於有應用程式阻礙權限請求,「設定」無法驗證您的回覆。"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"由於另一個應用程式正在這些選項上顯示內容,因此「設定」無法回應您的操作。"</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="enable_service_pattern_reason" msgid="777577618063306751">"開啟 <xliff:g id="SERVICE">%1$s</xliff:g> 將影響您的資料加密強度,因此您需要確認解鎖圖案。"</string>
@@ -1988,7 +1995,7 @@
     <string name="usage_type_computed_power" msgid="5862792259009981479">"經計算的用電量"</string>
     <string name="usage_type_actual_power" msgid="7047814738685578335">"監測到的用電量"</string>
     <string name="battery_action_stop" msgid="649958863744041872">"強制停止"</string>
-    <string name="battery_action_app_details" msgid="7861051816778419018">"應用程式資訊"</string>
+    <string name="battery_action_app_details" msgid="7861051816778419018">"應用程式資料"</string>
     <string name="battery_action_app_settings" msgid="4570481408106287454">"應用程式設定"</string>
     <string name="battery_action_display" msgid="7338551244519110831">"螢幕設定"</string>
     <string name="battery_action_wifi" msgid="8181553479021841207">"Wi-Fi 設定"</string>
@@ -2769,7 +2776,7 @@
     <string name="zen_mode_automation_settings_title" msgid="4228995740594063774">"自動規則"</string>
     <string name="zen_mode_automation_suggestion_title" msgid="5105443455143476201">"設定請勿騷擾規則"</string>
     <string name="zen_mode_automation_suggestion_summary" msgid="4732808039946935657">"在特定時間限制音效和震動"</string>
-    <string name="zen_mode_option_important_interruptions" msgid="3903928008177972500">"僅限優先"</string>
+    <string name="zen_mode_option_important_interruptions" msgid="3903928008177972500">"只限優先"</string>
     <string name="zen_mode_option_alarms" msgid="5785372117288803600">"只限鬧鐘"</string>
     <string name="zen_mode_option_no_interruptions" msgid="8107126344850276878">"完全靜音"</string>
     <string name="zen_mode_summary_combination" msgid="8715563402849273459">"<xliff:g id="MODE">%1$s</xliff:g>:<xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
@@ -2791,6 +2798,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"進階"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"工作通知"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"允許使用圖示標籤"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"閃燈"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"螢幕鎖定畫面上"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"顯示所有通知內容"</string>
@@ -2816,7 +2824,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"中"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"高"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"緊急"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"允許發出音效"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"允許發出音效"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"禁止這些通知發出音效、震動或不時於目前螢幕上出現。"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"通知小幫手"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"通知存取權"</string>
@@ -2845,8 +2853,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"畫中畫"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"允許畫中畫"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"允許此應用程式在開啟時或您離開後 (例如繼續觀看影片) 建立畫中畫視窗。該視窗會在您目前使用的其他應用程式上層顯示。"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"是"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"否"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"「請勿騷擾」存取權"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"沒有已安裝的應用程式要求存取「請勿騷擾」。"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"正在載入應用程式…"</string>
@@ -2872,10 +2878,9 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"永不顯示這些通知"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"顯示通知"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"永不在通知欄或周邊裝置上顯示通知"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"標誌應用程式圖示"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"在 Home 應用程式以狀態標籤形式顯示通知 (如支援)。"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"允許顯示狀態標籤圖示"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"取代「請勿騷擾」"</string>
-    <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"當「請勿騷擾」設定為「僅限優先」時,允許顯示這些通知"</string>
+    <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"當「請勿騷擾」設定為「只限優先」時,允許顯示這些通知"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"螢幕鎖定畫面上"</string>
     <string name="app_notification_row_banned" msgid="5983655258784814773">"已封鎖"</string>
     <string name="app_notification_row_priority" msgid="7723839972982746568">"重要"</string>
@@ -3200,8 +3205,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"可顯示在其他應用程式上面"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> 個應用程式 (共 <xliff:g id="COUNT_1">%2$d</xliff:g> 個) 可顯示在其他應用程式上面"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"擁有權限的應用程式"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"允許"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"不允許"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"安裝不明的應用程式"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"安裝來自不明來源的應用程式"</string>
     <string name="write_settings" msgid="4797457275727195681">"修改系統設定"</string>
@@ -3214,10 +3221,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"應用程式修改系統設定權限"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"允許修改系統設定"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"此權限允許應用程式修改系統設定。"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"允許"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"不允許"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"允許"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"不允許"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"允許此來源的應用程式"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"轉動兩下即可使用相機功能"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"轉動手腕兩下即可開啟相機應用程式"</string>
@@ -3312,8 +3315,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"每月第 <xliff:g id="ID_1">%1$s</xliff:g> 日"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"網絡限制"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 個限制</item>
@@ -3332,7 +3334,7 @@
       <item quantity="other">「數據節省模式」開啟時,允許 <xliff:g id="COUNT">%1$d</xliff:g> 個應用程式使用無限制數據</item>
       <item quantity="one">「數據節省模式」開啟時,允許 1 個應用程式使用無限制數據</item>
     </plurals>
-    <string name="data_saver_title" msgid="398458827917495765">"數據節省程式"</string>
+    <string name="data_saver_title" msgid="398458827917495765">"數據節省模式"</string>
     <string name="unrestricted_data_saver" msgid="952796077540228711">"數據用量不限"</string>
     <string name="restrict_background_blacklisted" msgid="3995443391711013068">"背景數據已關閉"</string>
     <string name="data_saver_on" msgid="6774217590237934709">"開啟"</string>
@@ -3414,7 +3416,7 @@
     <string name="support_escalation_24_7_summary" msgid="2802773279262547187">"我們的支援團隊全天候為您提供服務"</string>
     <string name="support_escalation_closed_summary" msgid="2240967274380168303">"搜尋說明,或於支援服務時間 (當地時間) 聯絡我們:&lt;br&gt;&lt;b&gt;<xliff:g id="OPERATION_HOURS">%s</xliff:g>&lt;/b&gt;"</string>
     <string name="support_escalation_no_internet_summary" msgid="2526082812336597989">"手機支援時間 (當地時間)&lt;br&gt;&lt;b&gt;<xliff:g id="OPERATION_HOURS">%s</xliff:g>&lt;/b&gt;"</string>
-    <string name="support_escalation_unavailable_summary" msgid="5208552975245211898">"搜尋說明,或探索提示和技巧"</string>
+    <string name="support_escalation_unavailable_summary" msgid="5208552975245211898">"搜尋說明,或查看提示和技巧"</string>
     <string name="support_country_list_title" msgid="823853371280534111">"支援的國家/地區:"</string>
     <string name="support_country_format" msgid="4502523713489559595">"<xliff:g id="COUNTRY">%1$s</xliff:g> - <xliff:g id="LANGUAGE">%2$s</xliff:g>"</string>
     <string name="support_phone_international_format" msgid="2143528744844720829">"<xliff:g id="LANGUAGE">%1$s</xliff:g> (<xliff:g id="PHONE">%2$s</xliff:g>)"</string>
@@ -3422,7 +3424,7 @@
     <string name="support_international_phone_summary" msgid="208231793637026927">"可能需要支付國際通話費用"</string>
     <string name="support_escalation_by_phone" msgid="4843223043487058711">"電話"</string>
     <string name="support_escalation_by_chat" msgid="977019859110763749">"即時通訊"</string>
-    <string name="support_tips_and_tricks_title" msgid="4153466795695447828">"探索提示和技巧"</string>
+    <string name="support_tips_and_tricks_title" msgid="4153466795695447828">"查看提示和技巧"</string>
     <string name="support_help_feedback_title" msgid="693440287222186718">"搜尋說明和傳送意見"</string>
     <string name="support_sign_in_required_title" msgid="1367187789121480440">"聯絡支援團隊"</string>
     <string name="support_sign_in_button_text" msgid="3054769428620671241">"登入"</string>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 7d52a49..181ea93 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"良好"</item>
     <item msgid="8986346415847956850">"極佳"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"一律"</item>
-    <item msgid="844721238536786870">"僅限充電時"</item>
-    <item msgid="1986753720941888596">"永不"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"一律"</item>
-    <item msgid="7433294150916905997">"僅限充電時"</item>
-    <item msgid="1390404486722375028">"永不採用"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"最近 30 天"</item>
     <item msgid="6600989128423965319">"設定用量週期..."</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 605145d..9af1d4f 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"你現在已成為開發人員!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"不需要了,你已經是開發人員。"</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <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>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"中斷連線?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"這樣會結束你與下列裝置的連線:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"你沒有變更藍牙設定的權限。"</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"藍牙設定開啟時,附近的裝置可偵測到「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」。"</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"藍牙 MAC 位址:<xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"要中斷與「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的連線嗎?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"廣播"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"停用設定檔?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"%1$s 要求存取你的訊息。要將存取權授予 %2$s 嗎?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"SIM 存取權請求"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"「<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>」想要存取你的 SIM 卡。如果授權該裝置存取 SIM 卡,你裝置的數據連線功能在藍牙連線期間將暫時停用。將存取權授予「<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>」"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"對其他裝置顯示為「<xliff:g id="DEVICE_NAME">^1</xliff:g>」"</string>
     <string name="date_and_time" msgid="9062980487860757694">"日期和時間"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"選擇時區"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"舉起即可喚醒"</string>
     <string name="doze_title" msgid="2259176504273878294">"環境顯示"</string>
     <string name="doze_summary" msgid="3846219936142814032">"收到通知時喚醒螢幕"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"一律開啟"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"顯示時間、通知圖示和其他資訊"</string>
     <string name="title_font_size" msgid="4405544325522105222">"字型大小"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"縮小或放大文字"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"SIM 卡鎖定設定"</string>
@@ -1859,8 +1867,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"使用「<xliff:g id="SERVICE">%1$s</xliff:g>」?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"「<xliff:g id="SERVICE">%1$s</xliff:g>」需要執行下列動作:"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"權限要求遭到其他應用程式畫面遮掩,因此「設定」無法驗證你的回應。"</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"另一個應用程式目前顯示在畫面上層,覆蓋了這些選項,因此「設定」應用程式無法回應你的動作。"</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="enable_service_pattern_reason" msgid="777577618063306751">"開啟 <xliff:g id="SERVICE">%1$s</xliff:g> 將影響資料加密,因此你必須畫出解鎖圖案。"</string>
@@ -2792,6 +2799,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"通知"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"進階"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Work 通知"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"允許使用圖示徽章"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"閃爍燈光"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"螢幕鎖定時"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"顯示所有通知內容"</string>
@@ -2817,7 +2825,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"中"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"高"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"緊急"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"開啟音效"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"開啟音效"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"不要發出音效、震動,也不要在目前畫面上短暫顯示這類通知。"</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"通知小幫手"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"通知存取權"</string>
@@ -2846,8 +2854,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"子母畫面"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"允許子母畫面"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"允許這個應用程式在開啟時或你離開後 (例如繼續觀看影片) 建立子母畫面視窗。這類視窗會在你目前使用的其他應用程式上層顯示。"</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"是"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"否"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"零打擾存取權"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"最近沒有已安裝的應用程式要求「零打擾」存取權"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"正在載入應用程式..."</string>
@@ -2873,8 +2879,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"一律不顯示這類通知"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"顯示通知"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"一律不在通知欄或週邊裝置上顯示通知"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"狀態標籤應用程式圖示"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"在支援的 Home 應用程式上以狀態標籤形式顯示通知。"</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"允許加上狀態標籤圖示"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"覆寫「零打擾」模式設定"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"當「零打擾」模式設定為「僅限優先通知」時,允許這些通知繼續干擾"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"螢幕鎖定時"</string>
@@ -3201,8 +3206,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"顯示在其他應用程式上層"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> 個應用程式可以顯示在其他應用程式上層 (共 <xliff:g id="COUNT_1">%2$d</xliff:g> 個應用程式)"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"具備權限的應用程式"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"可"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"否"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"安裝不明應用程式"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"安裝應用程式不明來源"</string>
     <string name="write_settings" msgid="4797457275727195681">"修改系統設定"</string>
@@ -3215,10 +3222,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"應用程式修改系統設定權限"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"允許修改系統設定"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"這項權限允許應用程式修改系統設定。"</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"可"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"否"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"允許"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"不允許"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"允許這個來源的應用程式"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"扭兩下即可開啟相機"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"扭動手腕兩次即可開啟「相機」應用程式"</string>
@@ -3313,8 +3316,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>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"每月 <xliff:g id="ID_1">%1$s</xliff:g> 號"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"網路限制"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> 項限制</item>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 1e2e285..df1e995 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -145,16 +145,6 @@
     <item msgid="6019931571712517411">"Kuhle"</item>
     <item msgid="8986346415847956850">"Kuhle kakhulu"</item>
   </string-array>
-  <string-array name="wifi_sleep_policy_entries">
-    <item msgid="3269131034472904310">"Njalo"</item>
-    <item msgid="844721238536786870">"Uma ixhunyiwe kuphela"</item>
-    <item msgid="1986753720941888596">"Akusoze"</item>
-  </string-array>
-  <string-array name="wifi_sleep_policy_entries_wifi_only">
-    <item msgid="2124319326282651391">"Njalo"</item>
-    <item msgid="7433294150916905997">"Uma ixhunyiwe kuphela"</item>
-    <item msgid="1390404486722375028">"Akusoze"</item>
-  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="5013973108901348144">"Izinsuku zokugcina ezingu-30"</item>
     <item msgid="6600989128423965319">"Isetha umjikelezo wokusebenzisa..."</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 9763bdd..946dc62 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -30,6 +30,8 @@
     </plurals>
     <string name="show_dev_on" msgid="1110711554982716293">"Manje ungunjiniyela!"</string>
     <string name="show_dev_already" msgid="2151632240145446227">"Asikho isidingo, usuvele ungunjiniyela."</string>
+    <!-- no translation found for dev_settings_disabled_warning (4909448907673974370) -->
+    <skip />
     <string name="header_category_wireless_networks" msgid="5110914332313954940">"Okugenantambo namanethiwekhi"</string>
     <string name="header_category_connections" msgid="6471513040815680662">"Oxhumana nabo"</string>
     <string name="header_category_device" msgid="4544026001618307754">"Idivayisi"</string>
@@ -110,7 +112,10 @@
     <string name="bluetooth_disconnect_title" msgid="6026705382020027966">"Ungaxhumeki kwi-inthanethi?"</string>
     <string name="bluetooth_disconnect_all_profiles" msgid="9148530542956217908">"Lokhu kuzophelisa uxhumano nge:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="603521233563983689">"Awunayo imvume yokushintsha izilungiselelo ze-Bluetooth."</string>
+    <!-- no translation found for bluetooth_pairing_pref_title (4601203665214962983) -->
+    <skip />
     <string name="bluetooth_is_visible_message" msgid="6222396240776971862">"I-<xliff:g id="DEVICE_NAME">%1$s</xliff:g> iyabonakala kumadivayisi aseduzane ngenkathi izilungiselelo ze-Bluetooth zivulekile."</string>
+    <string name="bluetooth_footer_mac_message" msgid="7829164289195116782">"Ikheli le-bluetooth MAC: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="5334933802445256306">"Nqamula i-<xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_broadcasting" msgid="16583128958125247">"Ukusakaza"</string>
     <string name="bluetooth_disable_profile_title" msgid="5916643979709342557">"Vimbela iphrofayli?"</string>
@@ -158,6 +163,7 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="8712508202081143737">"I-%1$s ifuna ukufinyelela kumilayezo yakho. Nikeza ukufinyelela ku-%2$s?"</string>
     <string name="bluetooth_sap_request" msgid="2669762224045354417">"Isicelo sokufinyelela ku-SIM"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="4414253873553608690">"I-<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> ifuna ukufinyelela kukhadi lakho le-SIM. Ukunikeza ukufinyelela kukhadi le-SIM kuzokhubaza ukuxhumeka kwedatha kudivayisi yakho ngesikhathi sokuxhumeka. Nikeza ukufinyelela ku-<xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g>"</string>
+    <string name="bluetooth_device_name_summary" msgid="4418784300859596202">"Kubonakala njenge-<xliff:g id="DEVICE_NAME">^1</xliff:g> kwamanye amadivayisi"</string>
     <string name="date_and_time" msgid="9062980487860757694">"Idethi nesikhathi"</string>
     <string name="choose_timezone" msgid="1362834506479536274">"Khetha isikhathi sendawo"</string>
     <!-- no translation found for intent_sender_data_label (6332324780477289261) -->
@@ -1021,6 +1027,8 @@
     <string name="lift_to_wake_title" msgid="4555378006856277635">"Ilifti yokuvuka"</string>
     <string name="doze_title" msgid="2259176504273878294">"Isibonisi esi-Ambient"</string>
     <string name="doze_summary" msgid="3846219936142814032">"Vusa isikrini uma uthola izaziso"</string>
+    <string name="doze_always_on_title" msgid="1046222370442629646">"Njalo ivuliwe"</string>
+    <string name="doze_always_on_summary" msgid="1254238982577776475">"Isikhathi sokubonisa, izithonjana zesazsizo, nolunye ulwazi"</string>
     <string name="title_font_size" msgid="4405544325522105222">"Usayizi wefonti"</string>
     <string name="short_summary_font_size" msgid="6819778801232989076">"Yenza umbhalo ube mkhulu noma ube mncane"</string>
     <string name="sim_lock_settings" msgid="3392331196873564292">"Izilungiselelo zokuvala ikhadi le-SIM"</string>
@@ -1860,8 +1868,7 @@
     <string name="enable_service_title" msgid="3061307612673835592">"Sebenzisa i-<xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="capabilities_list_title" msgid="86713361724771971">"<xliff:g id="SERVICE">%1$s</xliff:g> idinga :"</string>
     <string name="touch_filtered_warning" msgid="8644034725268915030">"Ngoba uhlelo lokusebenza lusitha isicelo semvume, Izilungiselelo azikwazi ukuqinisekisa impendulo yakho."</string>
-    <!-- no translation found for window_obscured_warning (8711643931674708175) -->
-    <skip />
+    <string name="window_obscured_warning" msgid="8711643931674708175">"Ngoba olunye uhlelo libonisa phezulu kwalezi zinketho, izilungiselelo azikwazi ukuphendula esenzweni sakho."</string>
     <string name="enable_service_encryption_warning" msgid="3064686622453974606">"Uma uvula i-<xliff:g id="SERVICE">%1$s</xliff:g>, idivayisi yakho ngeke isebenzise ukukhiya kwakho kwesikrini sakho ukuthuthukisa ukubethelwa kwedatha."</string>
     <string name="secure_lock_encryption_warning" msgid="460911459695077779">"Ngoba uvule isevisi yokufinyelela, idivayisi yakho ngeke isebenzise ukukhiya kwakho kwesikrini ukuthuthukisa ukubethelwa kwedatha."</string>
     <string name="enable_service_pattern_reason" msgid="777577618063306751">"Ngoba ukuvula i-<xliff:g id="SERVICE">%1$s</xliff:g> kuthinta ukubethelwa kwedatha, udinga ukuqinisekisa iphethini yakho."</string>
@@ -2789,6 +2796,7 @@
     <string name="configure_notification_settings" msgid="7616737397127242615">"Izaziso"</string>
     <string name="advanced_section_header" msgid="8833934850242546903">"Okuthuthukisiwe"</string>
     <string name="profile_section_header" msgid="2320848161066912001">"Izaziso zomsebenzi"</string>
+    <string name="notification_badging_title" msgid="5125022693565388760">"Vumela amabheji esithonjana"</string>
     <string name="notification_pulse_title" msgid="1905382958860387030">"Cwabizisa ukukhanya"</string>
     <string name="lock_screen_notifications_title" msgid="6173076173408887213">"Ekukhiyeni kwesikrini"</string>
     <string name="lock_screen_notifications_summary_show" msgid="6407527697810672847">"Bonisa konke okuqukethwe kwesaziso"</string>
@@ -2814,7 +2822,7 @@
     <string name="notification_importance_low_title" msgid="8131254047772814309">"Okumaphakathi"</string>
     <string name="notification_importance_default_title" msgid="9120383978536089489">"Okuphezulu"</string>
     <string name="notification_importance_high_title" msgid="3058778300264746473">"Okuphuthumayo"</string>
-    <string name="allow_sound" msgid="6585849855452076626">"Vumela umsindo"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"Vumela umsindo"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"Ungenzi umsindo, ukudlidlizela, noma ubheke lezi zaziso kusikrini samanje."</string>
     <string name="default_notification_assistant" msgid="7631945224761430146">"Umsizi wesaziso"</string>
     <string name="manage_notification_access_title" msgid="7510080164564944891">"Ukufinyelela isaziso"</string>
@@ -2843,8 +2851,6 @@
     <string name="picture_in_picture_app_detail_title" msgid="4080800421316791732">"Isithombe-phakathi-kwesithombe"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="1131910667023738296">"Vumela isithombe phakathi kwesithombe"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="7942592478427522244">"Vumela lolu hlelo lokusebenza ukuthi ludale iwindi lesithombe ngaphakathi kwesithombe ngenkathi uhlelo lokusebenza luvuliwe noma ngemuva kokuthi ulishiye (isibonelo, ukuze uqhubeke ubuke ividiyo). Leli windi liboniswa ngaphezulu kwezinye izinhlelo zokusebenza ozisebenzisayo."</string>
-    <string name="picture_in_picture_on" msgid="6103704909710176555">"Yebo"</string>
-    <string name="picture_in_picture_off" msgid="5654388666434625247">"Cha"</string>
     <string name="manage_zen_access_title" msgid="2611116122628520522">"Ukufinyelela kokungaphazamisi"</string>
     <string name="zen_access_empty_text" msgid="8772967285742259540">"Azikho izinhlelo zokusebenza ezifakiwe ezicele ukufinyelela kokungaphazamisi"</string>
     <string name="loading_notification_apps" msgid="5031818677010335895">"Ilayisha izinhlelo zokusebenza..."</string>
@@ -2870,8 +2876,7 @@
     <string name="app_notification_block_summary" msgid="4744020456943215352">"Ungalokothi ubonise lezi zaziso"</string>
     <string name="notification_content_block_title" msgid="5854232570963006360">"Bonisa izaziso"</string>
     <string name="notification_content_block_summary" msgid="7746185794438882389">"Ungalokothi ubonise izaziso kumthunzi noma kumadivayisi alawulwa ikhompuyutha"</string>
-    <string name="notification_badge_title" msgid="7166470350070693657">"Isithonjana sohlelo lokusebenza lebheji"</string>
-    <string name="notification_badge_summary" msgid="3944771498030335669">"Bonisa izaziso njengamabheji kuhlelo lokusebenza lwasekhaya, uma zisekelwe."</string>
+    <string name="notification_badge_title" msgid="7734903868300369178">"Vumela ibheji lesithonjana"</string>
     <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"Bhala ngaphezulu okuthi ungaphazamisi"</string>
     <string name="app_notification_override_dnd_summary" msgid="3516007157020189746">"Vumela lezi zaziso ziqhubeke nokuphazamisa uma okuthi ungaphazamisi kusethelwe okuphezulu kuphela"</string>
     <string name="app_notification_visibility_override_title" msgid="2187232730902430718">"Ekukhiyeni kwesikrini"</string>
@@ -3198,8 +3203,10 @@
     <string name="overlay_settings" msgid="6930854109449524280">"Bonisa ngaphezulu kwezinye izinhlelo zokusebenza"</string>
     <string name="system_alert_window_summary" msgid="602892301318324492">"<xliff:g id="COUNT_0">%1$d</xliff:g> kuzinhlelo zokusebenza ezingu-<xliff:g id="COUNT_1">%2$d</xliff:g> zivunyelwe ukuboniswa ngaphezulu kwezinye izinhlelo zokusebenza"</string>
     <string name="filter_overlay_apps" msgid="6965969283342557573">"Izinhlelo zokusebenza ezinemvume"</string>
-    <string name="system_alert_window_on" msgid="2939489395109048888">"Yebo"</string>
-    <string name="system_alert_window_off" msgid="6189115687233061992">"Cha"</string>
+    <!-- no translation found for app_permission_summary_allowed (1505409933012886711) -->
+    <skip />
+    <!-- no translation found for app_permission_summary_not_allowed (2592617058101882802) -->
+    <skip />
     <string name="install_other_apps" msgid="6986686991775883017">"Faka izinhlelo zokusebenza ezingaziwa"</string>
     <string name="keywords_install_other_apps" msgid="761078076051006558">"faka izinhlelo zokusebenza zemithombo engaziwa"</string>
     <string name="write_settings" msgid="4797457275727195681">"Shintsha izilungiselelo zesistimu"</string>
@@ -3212,10 +3219,6 @@
     <string name="write_settings_preference" msgid="3407383041273067448">"Imvume yezilungiselelo zesistimu zokushintsha zohlelo lokusebenza"</string>
     <string name="permit_write_settings" msgid="6393779336656870080">"Vumela ukushintsha izilungiselelo zesistimu"</string>
     <string name="write_settings_description" msgid="6868293938839954623">"Le mvume ivumela uhlelo lokusebenza ukushintsha izilungiselelo zesistimu."</string>
-    <string name="write_settings_on" msgid="8230580416068832239">"Yebo"</string>
-    <string name="write_settings_off" msgid="5156104383386336233">"Cha"</string>
-    <string name="external_source_trusted" msgid="2707996266575928037">"Kuvumelekile"</string>
-    <string name="external_source_untrusted" msgid="2677442511837596726">"Akuvumelekile"</string>
     <string name="external_source_switch_title" msgid="3621381992793251070">"Vumela kusukela kulo mthombo"</string>
     <string name="camera_gesture_title" msgid="1075838577642393011">"Shinthsa kabili ingalo ukuze uthole ikhamera"</string>
     <string name="camera_gesture_desc" msgid="1831390075255870960">"Vula uhlelo lokusebenza lekhamera ngokushintsha ingalo yakho kabili"</string>
@@ -3310,8 +3313,7 @@
     <string name="cell_warning_only" msgid="763147658209027140">"<xliff:g id="ID_1">%1$s</xliff:g> Isexwayiso sedatha"</string>
     <string name="cell_warning_and_limit" msgid="2273413629267437470">"<xliff:g id="ID_1">%1$s</xliff:g> Isexwayiso sedatha / <xliff:g id="ID_2">%2$s</xliff:g> Umkhawulo wedatha"</string>
     <string name="billing_cycle" msgid="5169909190811133499">"Umjikelezo wokukhokha"</string>
-    <!-- no translation found for billing_cycle_fragment_summary (8231066353654583106) -->
-    <skip />
+    <string name="billing_cycle_fragment_summary" msgid="8231066353654583106">"Ngenyanga osukwini <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="8234695294536675380">"Imikhawulo yenethiwekhi"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="4301618027244595839">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> imikhawulo</item>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 5e7442b..5e1a468 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -326,38 +326,6 @@
         <item>Excellent</item>
     </string-array>
 
-    <!-- Wi-Fi settings. Presented as a list dialog to the user to choose the Wi-Fi sleep policy. -->
-    <string-array name="wifi_sleep_policy_entries">
-        <!-- Always keep Wi-Fi on when screen turns off. -->
-        <item>Always</item>
-        <!-- Keep Wi-Fi on when screen turns off and plugged in.  When on battery, go to sleep when screen turns off. -->
-        <item>Only when plugged in</item>
-        <!-- Do not keep Wi-Fi on when screen turns off.  [CHAR LIMIT=40] -->
-        <item>Never</item>
-    </string-array>
-
-    <!-- Wi-Fi settings. Presented as a list dialog to the user to choose the Wi-Fi sleep policy. Used when
-         the device is Wi-Fi-only. [CHAR LIMIT=30] -->
-    <string-array name="wifi_sleep_policy_entries_wifi_only">
-        <!-- Always keep Wi-Fi on when screen turns off. -->
-        <item>Always</item>
-        <!-- Keep Wi-Fi on when screen turns off and plugged in.  When on battery, go to sleep when screen turns off. -->
-        <item>Only when plugged in</item>
-        <!-- Do not keep Wi-Fi on when screen turns off, for Wi-Fi-only devices, no other data connection -->
-        <item>Never</item>
-    </string-array>
-
-    <!-- Match with wifi_sleep_policy_entries and the values of the settings in Settings class. --> <skip />
-    <!-- Do not translate. -->
-    <string-array name="wifi_sleep_policy_values">
-        <!-- Do not translate. -->
-        <item>2</item>
-        <!-- Do not translate. -->
-        <item>1</item>
-        <!-- Do not translate. -->
-        <item>0</item>
-    </string-array>
-
     <!-- Data Usage settings. Range of data usage. -->
     <string-array name="data_usage_data_range">
         <!-- Last 30 days [CHAR LIMIT=25]-->
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 6495ab0..ea8f0d6 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -300,9 +300,6 @@
     <dimen name="support_spacer_height">8dp</dimen>
 
     <dimen name="password_requirement_textsize">14sp</dimen>
-    <!-- Visible vertical space we want to show below password edittext field when ime is shown.
-         The unit is sp as it is related to the text size of password requirement item. -->
-    <dimen name="visible_vertical_space_below_password">20sp</dimen>
 
     <!-- Padding for the escalation card in normal dimens -->
     <dimen name="support_escalation_card_padding_start">40dp</dimen>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9026aa3..0ca1628 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -43,6 +43,9 @@
     <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
     <string name="show_dev_already">No need, you are already a developer.</string>
 
+    <!-- [CHAR LIMIT=NONE] Toast message when user attemps to launch developer otions before enabling it. -->
+    <string name="dev_settings_disabled_warning">Please enable developer options first.</string>
+
     <!-- Category headings in left-pane header menu --> <skip />
     <!-- Settings main menu category heading. Wireless and networks (Wi-Fi, Bluetooth, data usage...). [CHAR LIMIT=40] -->
     <string name="header_category_wireless_networks">Wireless &amp; networks</string>
@@ -243,6 +246,8 @@
     <string name="bluetooth_disconnect_all_profiles">This will end your connection with:&lt;br>&lt;b><xliff:g id="device_name">%1$s</xliff:g>&lt;/b></string>
     <!-- Bluetooth Settings. text displayed when user has restriction DISALLOW_CONFIG_BLUETOOTH [CHAR LIMIT=NONE]-->
     <string name="bluetooth_empty_list_user_restricted">You don\u2019t have permission to change Bluetooth settings.</string>
+    <!-- Title for bluetooth pairing item [CHAR LIMIT=60] -->
+    <string name="bluetooth_pairing_pref_title">Pair a new device</string>
 
     <!-- Bluetooth Visibility message.  This message informs the user that their device is now visible to other bluetooth devices.  [CHAR LIMIT=NONE] -->
     <string name="bluetooth_is_visible_message"><xliff:g id="device_name">%1$s</xliff:g> is visible to nearby devices while Bluetooth settings is open.</string>
@@ -370,6 +375,14 @@
     <!-- Bluetooth SIM access permission Alert Activity text [CHAR LIMIT=none] -->
     <string name="bluetooth_sap_acceptance_dialog_text"><xliff:g id="device_name">%1$s</xliff:g> wants to access your SIM card. Granting access to the SIM card will disable data connectivity on your device for the duration of the connection. Give access to <xliff:g id="device_name">%2$s?</xliff:g></string>
 
+    <!-- Description for bluetooth device name summary [CHAR LIMIT=none] -->
+    <string name="bluetooth_device_name_summary">Visible as <xliff:g id="device_name">^1</xliff:g> to other devices</string>
+
+    <!-- Title for paired device group [CHAR LIMIT=none] -->
+    <string name="bluetooth_paired_device_title">Your devices</string>
+    <!-- Title for pairing bluetooth device page [CHAR LIMIT=none] -->
+    <string name="bluetooth_pairing_page_title">Pair bluetooth device</string>
+
     <!-- Date & time settings screen title -->
     <string name="date_and_time">Date &amp; time</string>
     <!-- The title of the activity to pick a time zone. -->
@@ -1083,6 +1096,9 @@
     <!-- Message shown in screen lock picker while setting up the backup/fallback screen lock method for fingerprint. Users can choose to use this method to unlock the screen instead of fingerprint, or when fingerprint is not accepted. [CHAR LIMIT=80] [BACKUP_MESSAGE_ID=2799884038398627882] -->
     <string name="lock_settings_picker_fingerprint_message">Choose your backup screen lock method</string>
 
+    <!-- Label for button in screen lock settings, allowing users to choose other types of screen locks. [CHAR LIMIT=40] -->
+    <string name="setup_lock_settings_options_button_label">Screen lock options</string>
+
     <!--  Main Security lock settings --><skip />
     <!--  Title for PreferenceScreen to launch picker for security method when there is none [CHAR LIMIT=22] -->
     <string name="unlock_set_unlock_launch_picker_title">Screen lock</string>
@@ -2116,6 +2132,8 @@
     </string-array>
     <!-- Wi-Fi Calling settings. Text displayed when Wi-Fi Calling is off -->
     <string name="wifi_calling_off_explanation">When Wi-Fi calling is on, your phone can route calls via Wi-Fi networks or your carrier\u2019s network, depending on your preference and which signal is stronger. Before turning on this feature, check with your carrier regarding fees and other details.</string>
+    <!-- Wi-Fi Calling settings. Additional text displayed when Wi-Fi Calling is off. Default empty. [CHAR LIMIT=NONE] -->
+    <string name="wifi_calling_off_explanation_2"></string>
     <!-- Title of a preference for updating emergency address [CHAR LIMIT=40] -->
     <string name="emergency_address_title">Update Emergency Address</string>
     <!-- Summary of Update Emergency Address preference, explaining usage of emergency address [CHAR LIMIT=NONE] -->
@@ -2389,6 +2407,10 @@
     <string name="doze_title">Ambient display</string>
     <!-- [CHAR LIMIT=NONE] Display settings screen, setting description for the ambient display feature. -->
     <string name="doze_summary">Wake screen when you receive notifications</string>
+    <!-- [CHAR LIMIT=30] Display settings screen, setting option name to change whether the always-on ambient display feature is enabled. -->
+    <string name="doze_always_on_title">Always on</string>
+    <!-- [CHAR LIMIT=NONE] Display settings screen, setting description for the always-on ambient display feature. -->
+    <string name="doze_always_on_summary">Show time, notification icons, and other info</string>
     <!-- [CHAR LIMIT=30] Sound & display settings screen, setting option name to change font size -->
     <string name="title_font_size">Font size</string>
     <!-- Summary for Font size. Lets the user know that this will make text larger or smaller. Appears in the accessibility portion of setup wizard. [CHAR LIMIT=NONE] -->
@@ -4708,6 +4730,8 @@
 
     <!-- Description for battery usage time for an app, i.e. Used for 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
     <string name="battery_used_for">Used for <xliff:g id="time">^1</xliff:g></string>
+    <!-- Description for battery screen usage time for an app, i.e. Screen usage 30min. Note: ^1 should be used in all translations [CHAR LIMIT=60] -->
+    <string name="battery_screen_usage">Screen usage <xliff:g id="time">^1</xliff:g></string>
     <!-- Description for battery usage info for an app, i.e. 60% used by facebook. [CHAR LIMIT=60] -->
     <string name="battery_used_by"><xliff:g id="percent">%1$s</xliff:g> used by <xliff:g id="app">%2$s</xliff:g></string>
     <!-- Description for percentage of battery usage for an app, i.e. Screen: 30% of overall battery. [CHAR LIMIT=60] -->
@@ -6261,12 +6285,19 @@
 
     <!-- Title for setting tile leading to network and Internet settings [CHAR LIMIT=40]-->
     <string name="network_dashboard_title">Network &amp; Internet</string>
-    <!-- Summary for Network and Internet settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
-    <string name="network_dashboard_summary">Wi-Fi, mobile, data usage, hotspot</string>
+    <!-- Summary for Network and Internet settings, explaining it contains mobile network setting [CHAR LIMIT=NONE]-->
+    <string name="network_dashboard_summary_mobile">mobile</string>
+    <!-- Summary for Network and Internet settings, explaining it contains network data usage setting [CHAR LIMIT=NONE]-->
+    <string name="network_dashboard_summary_data_usage">data usage</string>
+    <!-- Summary for Network and Internet settings, explaining it contains hotspot (tethering) setting [CHAR LIMIT=NONE]-->
+    <string name="network_dashboard_summary_hotspot">hotspot</string>
+
     <!-- Title for setting tile leading to Connected devices settings [CHAR LIMIT=40]-->
     <string name="connected_devices_dashboard_title">Connected devices</string>
     <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
     <string name="connected_devices_dashboard_summary">Bluetooth, Cast, NFC</string>
+    <!-- Summary for Connected devices settings, explaning a few important settings under it [CHAR LIMIT=NONE]-->
+    <string name="connected_devices_dashboard_no_nfc_summary">Bluetooth, Cast</string>
     <!-- Title for setting tile leading to Apps & Notification settings [CHAR LIMIT=40]-->
     <string name="app_and_notification_dashboard_title">Apps &amp; notifications</string>
     <!-- Summary for Apps & Notification settings, explaining a few important settings under it [CHAR LIMIT=NONE]-->
@@ -6541,6 +6572,9 @@
     <!-- Configure Notifications: Work profile section header [CHAR LIMIT=30] -->
     <string name="profile_section_header">Work notifications</string>
 
+    <!-- Configure Notifications: Title for the notification badging option. [CHAR LIMIT=30] -->
+    <string name="notification_badging_title">Allow icon badges</string>
+
     <!-- Configure Notifications: Title for the pulse notification light option. [CHAR LIMIT=30] -->
     <string name="notification_pulse_title">Blink light</string>
 
@@ -6602,6 +6636,12 @@
     <!-- [CHAR LIMIT=100] Notification Importance: blocked importance level description -->
     <string name="notification_importance_blocked">Never show notifications</string>
 
+    <!-- [CHAR LIMIT=100] Notification Importance template for the channel importance summary -->
+    <string name="notification_importance_divider" translatable="false"><xliff:g id="importance_title">%1$s</xliff:g>: <xliff:g id="importance_summary">%2$s</xliff:g></string>
+
+    <!-- Importance title strings for the Importance page. Also the second part of the importance
+     summary on the channel page-->
+
     <!-- [CHAR LIMIT=100] Notification Importance: min importance level description -->
     <string name="notification_importance_min">No sound or visual interruption</string>
 
@@ -6614,6 +6654,9 @@
     <!-- [CHAR LIMIT=100] Notification Importance: high importance level description -->
     <string name="notification_importance_high">Make sound and pop on screen</string>
 
+    <!-- Importance title strings for the Importance page. Also the first part of the importance
+     summary on the channel page-->
+
     <!-- [CHAR LIMIT=100] Notification Importance title: min importance level title -->
     <string name="notification_importance_min_title">Low</string>
 
@@ -6718,12 +6761,6 @@
     <!-- Apps > App Details > Picture-in-picture > Description. [CHAR LIMIT=NONE] -->
     <string name="picture_in_picture_app_detail_summary">Allow this app to create a picture-in-picture window while the app is open or after you leave it (for example, to continue watching a video).  This window displays on top of other apps you're using.</string>
 
-    <!-- Summary of app allowed to enter picture-in-picture. [CHAR LIMIT=60] -->
-    <string name="picture_in_picture_on">Yes</string>
-
-    <!-- Summary of app not allowed to enter picture-in-picture. [CHAR LIMIT=60] -->
-    <string name="picture_in_picture_off">No</string>
-
     <!-- Sound & notification > Advanced section: Title for managing Do Not Disturb access option. [CHAR LIMIT=40] -->
     <string name="manage_zen_access_title">Do Not Disturb access</string>
 
@@ -7684,10 +7721,12 @@
 
     <!-- Label for showing apps that can display over other apps [CHAR LIMIT=45] -->
     <string name="filter_overlay_apps">Apps with permission</string>
-    <!-- Summary of app allowed to display over other apps [CHAR LIMIT=60] -->
-    <string name="system_alert_window_on">Yes</string>
-    <!-- Summary of app not allowed to display over other apps [CHAR LIMIT=60] -->
-    <string name="system_alert_window_off">No</string>
+
+    <!-- Preference summary text for an app when it is allowed for a permission. [CHAR LIMIT=45] -->
+    <string name="app_permission_summary_allowed">Allowed</string>
+
+    <!-- Preference summary text for an app when it is disallowed for a permission. [CHAR LIMIT=45] -->
+    <string name="app_permission_summary_not_allowed">Not allowed</string>
 
     <!-- Title for settings screen for controlling apps that can install other apps on device [CHAR LIMIT=50] -->
     <string name="install_other_apps">Install unknown apps</string>
@@ -7716,14 +7755,6 @@
     <string name="permit_write_settings">Allow modify system settings</string>
     <!-- Description of the write system settings [CHAR LIMIT=NONE] -->
     <string name="write_settings_description">This permission allows an app to modify system settings.</string>
-    <!-- Summary of app allowed to write system settings [CHAR LIMIT=45] -->
-    <string name="write_settings_on">Yes</string>
-    <!-- Summary of app not allowed to write system settings [CHAR LIMIT=45] -->
-    <string name="write_settings_off">No</string>
-    <!-- Summary of app trusted to install apps [CHAR LIMIT=45] -->
-    <string name="external_source_trusted">Allowed</string>
-    <!-- Summary of app not trusted to install apps [CHAR LIMIT=45] -->
-    <string name="external_source_untrusted">Not allowed</string>
     <!-- Title of switch preference that controls whether an external app source is trusted or not [CHAR LIMIT=50] -->
     <string name="external_source_switch_title">Allow from this source</string>
 
@@ -8639,10 +8670,6 @@
     <!-- Preference label for the Files storage section. [CHAR LIMIT=50] -->
     <string name="storage_files">Files</string>
 
-    <!-- Main settings screen item's title to go into the storage settings screen [CHAR LIMIT=25] -->
-    <string name="storage_settings_2" product="tablet">Tablet storage</string>
-    <string name="storage_settings_2" product="default">Phone storage</string>
-
     <!-- Summary of a single storage volume used space. [CHAR LIMIT=24] -->
     <string name="storage_size_large_alternate"><xliff:g id="number" example="128">^1</xliff:g><small> <xliff:g id="unit" example="KB">^2</xliff:g></small></string>
     <!-- Summary of a single storage volume total space. [CHAR LIMIT=48]-->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 0780e82..31c965b 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -282,6 +282,7 @@
         <item name="android:layout_height">wrap_content</item>
         <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
         <item name="android:singleLine">true</item>
+        <item name="android:textAlignment">viewStart</item>
     </style>
 
     <style name="vpn_warning">
@@ -448,4 +449,9 @@
         <item name="*android:successColor">@color/setup_lock_pattern_view_success_color_light</item>
     </style>
 
+    <!-- Overridden in sw400dp -->
+    <style name="LockPatternIconStyle" parent="SuwGlifIcon">
+        <item name="android:visibility">gone</item>
+    </style>
+
 </resources>
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index 596effe..55faad3 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -15,7 +15,8 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-                  android:title="@string/legal_information">
+                  android:title="@string/legal_information"
+                  android:key="legal_screen">
 
     <!-- Note: The titles given here probably won't be used.  Instead, we programmatically
        fill the title with the label of the activity with the corresponding action.
diff --git a/res/xml/accessibility_autoclick_settings.xml b/res/xml/accessibility_autoclick_settings.xml
index f774335..6bd6c4d 100644
--- a/res/xml/accessibility_autoclick_settings.xml
+++ b/res/xml/accessibility_autoclick_settings.xml
@@ -18,7 +18,7 @@
                   android:title="@string/accessibility_autoclick_preference_title">
 
 
-    <com.android.settings.SeekBarPreference
+    <com.android.settings.widget.SeekBarPreference
         android:key="autoclick_delay"
         android:title="@string/accessibility_autoclick_delay_preference_title"/>
 
diff --git a/res/xml/account_type_settings.xml b/res/xml/account_type_settings.xml
index ab997a5..0ba961f 100644
--- a/res/xml/account_type_settings.xml
+++ b/res/xml/account_type_settings.xml
@@ -19,11 +19,11 @@
         android:title="@string/account_settings_title"
         settings:keywords="@string/keywords_accounts">
 
-    <Preference
-      android:key="account_header"
-      android:layout="@layout/account_header"
-      android:selectable="false"
-      android:order="-10000"/>
+    <com.android.settings.applications.LayoutPreference
+        android:key="account_header"
+        android:layout="@layout/settings_entity_header"
+        android:selectable="false"
+        android:order="-10000"/>
 
     <Preference
         android:key="account_sync"
diff --git a/res/xml/app_list_disclosure_settings.xml b/res/xml/app_list_disclosure_settings.xml
index 2aae95e..1daf15d 100644
--- a/res/xml/app_list_disclosure_settings.xml
+++ b/res/xml/app_list_disclosure_settings.xml
@@ -21,7 +21,7 @@
     <PreferenceCategory
             android:key="dashboard_tile_placeholder"/>
 
-    <com.android.settings.widget.FooterPreference
+    <com.android.settingslib.widget.FooterPreference
             android:title="@string/enterprise_privacy_apps_count_estimation_info"
             android:selectable="false"/>
 </PreferenceScreen>
diff --git a/res/xml/assist_gesture_settings.xml b/res/xml/assist_gesture_settings.xml
index 52ee247..0dbf9c7 100644
--- a/res/xml/assist_gesture_settings.xml
+++ b/res/xml/assist_gesture_settings.xml
@@ -29,10 +29,10 @@
         android:title="@string/assist_gesture_title"
         android:summary="@string/assist_gesture_summary" />
 
-    <com.android.settings.SeekBarPreference
+    <com.android.settings.widget.SeekBarPreference
         android:key="gesture_assist_sensitivity"
         android:title="@string/assist_gesture_sensitivity_title"
-        android:defaultValue="2"
-        android:max="4" />
+        android:defaultValue="5"
+        android:max="10" />
 
 </PreferenceScreen>
diff --git a/res/xml/bluetooth_pairing_detail.xml b/res/xml/bluetooth_pairing_detail.xml
new file mode 100644
index 0000000..30eaf09
--- /dev/null
+++ b/res/xml/bluetooth_pairing_detail.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title="@string/bluetooth_settings">
+
+    <Preference
+        android:key="device_name"/>
+
+    <com.android.settings.bluetooth.BluetoothProgressCategory
+        android:key="available_devices"
+        android:title="@string/bluetooth_paired_device_title"/>
+
+    <com.android.settingslib.widget.FooterPreference/>
+
+</PreferenceScreen>
diff --git a/res/xml/bluetooth_settings.xml b/res/xml/bluetooth_settings.xml
index 783a860..046295b 100644
--- a/res/xml/bluetooth_settings.xml
+++ b/res/xml/bluetooth_settings.xml
@@ -4,9 +4,9 @@
      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.
@@ -16,6 +16,15 @@
 
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:title="@string/bluetooth_settings" >
+    android:title="@string/bluetooth_settings">
+
+    <Preference
+        android:key="device_name"/>
+
+    <PreferenceCategory
+        android:key="paired_devices"
+        android:title="@string/bluetooth_paired_device_title"/>
+
+    <com.android.settingslib.widget.FooterPreference/>
 
 </PreferenceScreen>
diff --git a/res/xml/bluetooth_settings_obsolete.xml b/res/xml/bluetooth_settings_obsolete.xml
new file mode 100644
index 0000000..55a099c
--- /dev/null
+++ b/res/xml/bluetooth_settings_obsolete.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2017 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:title="@string/bluetooth_settings" >
+
+</PreferenceScreen>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index a6ffff4..718bb23 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -22,6 +22,11 @@
         android:key="dashboard_tile_placeholder"
         android:order="1"/>
 
+    <!-- Notification badging -->
+    <SwitchPreference
+        android:key="notification_badging"
+        android:title="@string/notification_badging_title"/>
+
     <!-- Pulse notification light -->
     <SwitchPreference
         android:key="notification_pulse"
@@ -31,10 +36,10 @@
     <com.android.settings.notification.RestrictedDropDownPreference
         android:key="lock_screen_notifications"
         android:title="@string/lock_screen_notifications_title"
-        android:summary="%s"/>
+        android:summary="@string/summary_placeholder"/>
 
     <SwitchPreference
-        android:key="gesture_swipe_down_fingerprint"
+        android:key="gesture_swipe_down_fingerprint_notifications"
         android:title="@string/fingerprint_swipe_for_notifications_title"
         android:summary="@string/fingerprint_swipe_for_notifications_summary"/>
 
@@ -45,7 +50,7 @@
         <com.android.settings.notification.RestrictedDropDownPreference
             android:key="lock_screen_notifications_profile"
             android:title="@string/lock_screen_notifications_title"
-            android:summary="%s"/>
+            android:summary="@string/summary_placeholder"/>
 
     </PreferenceCategory>
 
diff --git a/res/xml/connected_devices.xml b/res/xml/connected_devices.xml
index d70cc33..ecbcbd1 100644
--- a/res/xml/connected_devices.xml
+++ b/res/xml/connected_devices.xml
@@ -19,7 +19,6 @@
     android:title="@string/connected_devices_dashboard_title">
 
     <com.android.settings.widget.MasterSwitchPreference
-      android:fragment="com.android.settings.bluetooth.BluetoothSettings"
       android:key="toggle_bluetooth"
       android:title="@string/bluetooth_settings_title"
       android:icon="@drawable/ic_settings_bluetooth"
diff --git a/res/xml/data_usage_metered_prefs.xml b/res/xml/data_usage_metered_prefs.xml
index a1f3110..aca87fb 100644
--- a/res/xml/data_usage_metered_prefs.xml
+++ b/res/xml/data_usage_metered_prefs.xml
@@ -35,7 +35,7 @@
 
     </PreferenceCategory>
 
-    <com.android.settings.widget.FooterPreference
+    <com.android.settingslib.widget.FooterPreference
         android:title="@string/data_usage_metered_body"
         android:selectable="false" />
 
diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 1eea8dd..273b80d 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -412,12 +412,12 @@
             android:entries="@array/app_process_limit_entries"
             android:entryValues="@array/app_process_limit_values" />
 
-        <!-- hiding for now.
+
         <Preference
                 android:key="background_check"
                 android:fragment="com.android.settings.applications.BackgroundCheckSummary"
                 android:title="@string/background_check_pref" />
-        -->
+
 
         <SwitchPreference
             android:key="show_all_anrs"
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 655243f..749b87d 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -31,6 +31,7 @@
         android:key="night_display"
         android:title="@string/night_display_title"
         android:fragment="com.android.settings.display.NightDisplaySettings"
+        android:widgetLayout="@null"
         settings:widgetLayout="@null"
         settings:keywords="@string/keywords_display_night_display" />
 
@@ -96,12 +97,12 @@
         android:title="@string/lift_to_wake_title" />
 
     <Preference
-        android:key="gesture_double_tap_screen"
+        android:key="gesture_double_tap_screen_display_summary"
         android:title="@string/ambient_display_title"
         android:fragment="com.android.settings.gestures.DoubleTapScreenSettings" />
 
     <Preference
-        android:key="gesture_pick_up"
+        android:key="gesture_pick_up_display_summary"
         android:title="@string/ambient_display_pickup_title"
         android:fragment="com.android.settings.gestures.PickupGestureSettings" />
 
@@ -111,6 +112,11 @@
         android:summary="@string/doze_summary" />
 
     <SwitchPreference
+        android:key="doze_always_on"
+        android:title="@string/doze_always_on_title"
+        android:summary="@string/doze_always_on_summary" />
+
+    <SwitchPreference
         android:key="tap_to_wake"
         android:title="@string/tap_to_wake"
         android:summary="@string/tap_to_wake_summary" />
diff --git a/res/xml/installed_app_details_ia.xml b/res/xml/installed_app_details.xml
similarity index 97%
rename from res/xml/installed_app_details_ia.xml
rename to res/xml/installed_app_details.xml
index 5f8e866..12f0442 100644
--- a/res/xml/installed_app_details_ia.xml
+++ b/res/xml/installed_app_details.xml
@@ -19,7 +19,7 @@
 
     <com.android.settings.applications.LayoutPreference
         android:key="header_view"
-        android:layout="@layout/app_details"
+        android:layout="@layout/settings_entity_header"
         android:selectable="false"
         android:order="-10000"/>
 
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index 330ef9e..8c83767 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -66,22 +66,22 @@
         android:title="@string/gesture_preference_title">
 
         <Preference
-            android:key="gesture_assist"
+            android:key="gesture_assist_input_summary"
             android:title="@string/assist_gesture_title"
             android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
 
         <Preference
-            android:key="gesture_swipe_down_fingerprint"
+            android:key="gesture_swipe_down_fingerprint_input_summary"
             android:title="@string/fingerprint_swipe_for_notifications_title"
             android:fragment="com.android.settings.gestures.SwipeToNotificationSettings"/>
 
         <Preference
-            android:key="gesture_double_tap_screen"
+            android:key="gesture_double_tap_screen_input_summary"
             android:title="@string/ambient_display_title"
             android:fragment="com.android.settings.gestures.DoubleTapScreenSettings"/>
 
         <Preference
-            android:key="gesture_pick_up"
+            android:key="gesture_pick_up_input_summary"
             android:title="@string/ambient_display_pickup_title"
             android:fragment="com.android.settings.gestures.PickupGestureSettings"/>
 
@@ -91,12 +91,12 @@
             android:fragment="com.android.settings.gestures.CameraLiftTriggerSettings"/>
 
         <Preference
-            android:key="gesture_double_tap_power"
+            android:key="gesture_double_tap_power_input_summary"
             android:title="@string/double_tap_power_for_camera_title"
             android:fragment="com.android.settings.gestures.DoubleTapPowerSettings"/>
 
         <Preference
-            android:key="gesture_double_twist"
+            android:key="gesture_double_twist_input_summary"
             android:title="@string/double_twist_for_camera_mode_title"
             android:fragment="com.android.settings.gestures.DoubleTwistGestureSettings"/>
 
@@ -110,7 +110,7 @@
             android:dialogTitle="@string/pointer_speed"/>
 
         <Preference
-            android:key="tts_settings"
+            android:key="tts_settings_summary"
             android:title="@string/tts_settings_title"
             android:fragment="com.android.settings.tts.TextToSpeechSettings"/>
 
diff --git a/res/xml/legacy_channel_notification_settings.xml b/res/xml/legacy_channel_notification_settings.xml
index 4e341a9..e271705 100644
--- a/res/xml/legacy_channel_notification_settings.xml
+++ b/res/xml/legacy_channel_notification_settings.xml
@@ -17,6 +17,12 @@
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                   xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" >
 
+    <!-- Show badge -->
+    <com.android.settingslib.RestrictedSwitchPreference
+        android:key="badge"
+        android:title="@string/notification_badge_title"
+        settings:useAdditionalSummary="true"
+        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
 
     <!-- Importance toggle -->
     <com.android.settingslib.RestrictedSwitchPreference
diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml
index eadf45f..a96fb6b 100644
--- a/res/xml/manage_assist.xml
+++ b/res/xml/manage_assist.xml
@@ -26,7 +26,7 @@
         android:fragment="com.android.settings.applications.assist.DefaultAssistPicker"/>
 
     <Preference
-        android:key="gesture_assist"
+        android:key="gesture_assist_application"
         android:title="@string/assist_gesture_title"
         android:fragment="com.android.settings.gestures.AssistGestureSettings"/>
 
diff --git a/res/xml/night_display_settings.xml b/res/xml/night_display_settings.xml
index f78a769..5374b08 100644
--- a/res/xml/night_display_settings.xml
+++ b/res/xml/night_display_settings.xml
@@ -43,7 +43,7 @@
                 android:key="night_display_activated"
                 android:title="@string/night_display_title" />
 
-        <com.android.settings.SeekBarPreference
+        <com.android.settings.widget.SeekBarPreference
             android:key="night_display_temperature"
             android:title="@string/night_display_temperature_title"/>
 
diff --git a/res/xml/app_notification_settings.xml b/res/xml/notification_settings.xml
similarity index 67%
copy from res/xml/app_notification_settings.xml
copy to res/xml/notification_settings.xml
index 483b4a0..b2f1d3d 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/notification_settings.xml
@@ -15,15 +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/app_notifications_title"
-        android:key="app_notification_settings">
-
-    <!-- Show badge -->
-    <com.android.settingslib.RestrictedSwitchPreference
-        android:key="badge"
-        android:title="@string/notification_badge_title"
-        settings:useAdditionalSummary="true"
-        settings:restrictedSwitchSummary="@string/enabled_by_admin" />
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
 
 </PreferenceScreen>
diff --git a/res/xml/power_usage_detail_ia.xml b/res/xml/power_usage_detail.xml
similarity index 97%
rename from res/xml/power_usage_detail_ia.xml
rename to res/xml/power_usage_detail.xml
index 39e6c38..b7865d2 100644
--- a/res/xml/power_usage_detail_ia.xml
+++ b/res/xml/power_usage_detail.xml
@@ -19,7 +19,7 @@
 
     <com.android.settings.applications.LayoutPreference
         android:key="header_view"
-        android:layout="@layout/app_details"
+        android:layout="@layout/settings_entity_header"
         android:selectable="false"
         android:order="-10000"/>
 
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index c769d5d..1fd45db 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -18,7 +18,8 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-    android:title="@string/reset_dashboard_title">
+    android:title="@string/reset_dashboard_title"
+    android:key="reset_dashboard_fragment_screen">
 
     <!-- Network reset -->
     <com.android.settingslib.RestrictedPreference
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index e151b2b..2a4416e 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -21,7 +21,7 @@
         <com.android.settings.notification.RestrictedDropDownPreference
             android:key="lock_screen_notifications"
             android:title="@string/lock_screen_notifications_title"
-            android:summary="%s"/>
+            android:summary="@string/summary_placeholder"/>
 
         <com.android.settingslib.RestrictedSwitchPreference
             android:key="add_users_when_locked"
diff --git a/res/xml/suggestion_ordering.xml b/res/xml/suggestion_ordering.xml
index f0388a3..e21fe5b 100644
--- a/res/xml/suggestion_ordering.xml
+++ b/res/xml/suggestion_ordering.xml
@@ -18,7 +18,7 @@
     <step category="com.android.settings.suggested.category.DEFERRED_SETUP"
           exclusive="true" />
     <step category="com.android.settings.suggested.category.FIRST_IMPRESSION"
-          exclusiveExpireDays="7"
+          exclusiveExpireDays="14"
           exclusive="true"
           multiple="true" />
     <step category="com.android.settings.suggested.category.LOCK_SCREEN" />
diff --git a/res/xml/tts_settings.xml b/res/xml/tts_settings.xml
index 78c4c44..c141dad 100644
--- a/res/xml/tts_settings.xml
+++ b/res/xml/tts_settings.xml
@@ -37,14 +37,14 @@
 
         <!-- The max value for seek bars here should be kept in sync
              with the max value specified in TextToSpeechSettings class. -->
-        <com.android.settings.SeekBarPreference
+        <com.android.settings.widget.SeekBarPreference
             android:key="tts_default_rate"
             android:title="@string/tts_default_rate_title"
             android:summary="@string/tts_default_rate_summary"
             android:defaultValue="50"
             android:max="600"/>
 
-        <com.android.settings.SeekBarPreference
+        <com.android.settings.widget.SeekBarPreference
             android:key="tts_default_pitch"
             android:title="@string/tts_default_pitch_title"
             android:summary="@string/tts_default_pitch_summary"
diff --git a/res/xml/app_notification_settings.xml b/res/xml/upgraded_app_notification_settings.xml
similarity index 85%
rename from res/xml/app_notification_settings.xml
rename to res/xml/upgraded_app_notification_settings.xml
index 483b4a0..f9a3304 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/upgraded_app_notification_settings.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2014 The Android Open Source Project
+<!-- Copyright (C) 2017 The Android Open Source Project
 
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
@@ -15,9 +15,7 @@
 -->
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-        android:title="@string/app_notifications_title"
-        android:key="app_notification_settings">
+        xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
 
     <!-- Show badge -->
     <com.android.settingslib.RestrictedSwitchPreference
diff --git a/res/xml/channel_notification_settings.xml b/res/xml/upgraded_channel_notification_settings.xml
similarity index 100%
rename from res/xml/channel_notification_settings.xml
rename to res/xml/upgraded_channel_notification_settings.xml
diff --git a/res/xml/wifi_configure_settings.xml b/res/xml/wifi_configure_settings.xml
index ccf7f1d..1747b63 100644
--- a/res/xml/wifi_configure_settings.xml
+++ b/res/xml/wifi_configure_settings.xml
@@ -31,22 +31,17 @@
         android:title="@string/use_open_wifi_automatically_title"
         android:summary="@string/use_open_wifi_automatically_summary" />
 
-    <Preference
+    <SwitchPreference
             android:key="notify_open_networks"
             android:title="@string/wifi_notify_open_networks"
-            android:icon="@drawable/ic_open_wifi_notifications"/>
+            android:icon="@drawable/ic_open_wifi_notifications"
+            android:summary="@string/wifi_notify_open_networks_summary" />
 
     <SwitchPreference
         android:key="wifi_cellular_data_fallback"
         android:title="@string/wifi_cellular_data_fallback_title"
         android:summary="@string/wifi_cellular_data_fallback_summary"/>
 
-    <ListPreference
-            android:key="sleep_policy"
-            android:title="@string/wifi_setting_sleep_policy_title"
-            android:entries="@array/wifi_sleep_policy_entries"
-            android:entryValues="@array/wifi_sleep_policy_values" />
-
     <Preference
             android:key="install_credentials"
             android:title="@string/wifi_install_credentials">
diff --git a/res/xml/zen_mode_visual_interruptions_settings.xml b/res/xml/zen_mode_visual_interruptions_settings.xml
index 012dd95..64c79ec 100644
--- a/res/xml/zen_mode_visual_interruptions_settings.xml
+++ b/res/xml/zen_mode_visual_interruptions_settings.xml
@@ -16,7 +16,8 @@
 
 <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                   xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
-                  android:title="@string/zen_mode_visual_interruptions_settings_title" >
+                  android:title="@string/zen_mode_visual_interruptions_settings_title"
+                  android:key="zen_mode_visual_interruptions_screen">
 
     <SwitchPreference android:key="screenOn"
                       android:title="@string/zen_mode_screen_on"
diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java
index d662c2e..03a5f4b 100644
--- a/src/com/android/settings/CredentialStorage.java
+++ b/src/com/android/settings/CredentialStorage.java
@@ -47,14 +47,16 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.org.bouncycastle.asn1.ASN1InputStream;
 import com.android.org.bouncycastle.asn1.pkcs.PrivateKeyInfo;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.vpn2.VpnUtils;
 
-import sun.security.util.ObjectIdentifier;
-import sun.security.x509.AlgorithmId;
-
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 
+import sun.security.util.ObjectIdentifier;
+import sun.security.x509.AlgorithmId;
+
 /**
  * CredentialStorage handles KeyStore reset, unlock, and install.
  *
diff --git a/src/com/android/settings/CryptKeeperSettings.java b/src/com/android/settings/CryptKeeperSettings.java
index d9b98f0..e11bccd 100644
--- a/src/com/android/settings/CryptKeeperSettings.java
+++ b/src/com/android/settings/CryptKeeperSettings.java
@@ -37,6 +37,8 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmLockPattern;
 
 public class CryptKeeperSettings extends InstrumentedPreferenceFragment {
     private static final String TAG = "CryptKeeper";
diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java
index 109fb0e..0805e4b 100644
--- a/src/com/android/settings/DeviceInfoSettings.java
+++ b/src/com/android/settings/DeviceInfoSettings.java
@@ -24,7 +24,6 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.deviceinfo.AdditionalSystemUpdatePreferenceController;
@@ -42,6 +41,7 @@
 import com.android.settings.deviceinfo.SecurityPatchPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -51,6 +51,8 @@
 
     private static final String LOG_TAG = "DeviceInfoSettings";
 
+    private static final String KEY_LEGAL_CONTAINER = "legal_container";
+
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.DEVICEINFO;
@@ -151,5 +153,12 @@
                     return buildPreferenceControllers(context, null /*activity */,
                             null /* fragment */, null /* lifecycle */);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add(KEY_LEGAL_CONTAINER);
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 666b3e7..26503e4 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -23,12 +23,12 @@
 import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.display.AutoBrightnessPreferenceController;
 import com.android.settings.display.AutoRotatePreferenceController;
 import com.android.settings.display.BrightnessLevelPreferenceController;
 import com.android.settings.display.CameraGesturePreferenceController;
+import com.android.settings.display.DozeAlwaysOnPreferenceController;
 import com.android.settings.display.DozePreferenceController;
 import com.android.settings.display.FontSizePreferenceController;
 import com.android.settings.display.LiftToWakePreferenceController;
@@ -42,8 +42,10 @@
 import com.android.settings.display.WallpaperPreferenceController;
 import com.android.settings.gestures.DoubleTapScreenPreferenceController;
 import com.android.settings.gestures.PickupGesturePreferenceController;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -55,6 +57,8 @@
     public static final String KEY_DISPLAY_SIZE = "screen_zoom";
 
     private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
+    private static final String KEY_PICK_UP = "gesture_pick_up_display_summary";
+    private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_display_summary";
 
     @Override
     public int getMetricsCategory() {
@@ -90,20 +94,23 @@
     private static List<PreferenceController> buildPreferenceControllers(
             Context context, Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
+        final AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
         controllers.add(new AutoBrightnessPreferenceController(context, KEY_AUTO_BRIGHTNESS));
         controllers.add(new AutoRotatePreferenceController(context, lifecycle));
         controllers.add(new CameraGesturePreferenceController(context));
-        controllers.add(new DozePreferenceController(context));
+        controllers.add(new DozePreferenceController(context, ambientDisplayConfig,
+                FeatureFactory.getFactory(context).getMetricsFeatureProvider()));
+        controllers.add(new DozeAlwaysOnPreferenceController(context, ambientDisplayConfig));
         controllers.add(new FontSizePreferenceController(context));
         controllers.add(new LiftToWakePreferenceController(context));
         controllers.add(new NightDisplayPreferenceController(context));
         controllers.add(new NightModePreferenceController(context));
         controllers.add(new ScreenSaverPreferenceController(context));
-        AmbientDisplayConfiguration ambientDisplayConfig = new AmbientDisplayConfiguration(context);
         controllers.add(new PickupGesturePreferenceController(
-                context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+                context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(), KEY_PICK_UP));
         controllers.add(new DoubleTapScreenPreferenceController(
-                context, lifecycle, ambientDisplayConfig, UserHandle.myUserId()));
+                context, lifecycle, ambientDisplayConfig, UserHandle.myUserId(),
+                KEY_DOUBLE_TAP_SCREEN));
         controllers.add(new TapToWakePreferenceController(context));
         controllers.add(new TimeoutPreferenceController(context, KEY_SCREEN_TIMEOUT));
         controllers.add(new VrDisplayPreferenceController(context));
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index ed9596d..c352bf0 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -36,6 +36,7 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.setupwizardlib.GlifLayout;
 
 import java.util.List;
diff --git a/src/com/android/settings/HelpTrampoline.java b/src/com/android/settings/HelpTrampoline.java
index 7eb28a0..0de15e3 100644
--- a/src/com/android/settings/HelpTrampoline.java
+++ b/src/com/android/settings/HelpTrampoline.java
@@ -39,7 +39,11 @@
 
             final Intent intent = HelpUtils.getHelpIntent(this, value, null);
             if (intent != null) {
-                startActivity(intent);
+                /*
+                 * TODO: b/38230998.
+                 * Move to startActivity once the HelpUtils.getHelpIntent is refactored
+                 */
+                startActivityForResult(intent, 0);
             }
 
         } catch (Resources.NotFoundException | ActivityNotFoundException e) {
diff --git a/src/com/android/settings/LegalSettings.java b/src/com/android/settings/LegalSettings.java
index e40152a..d5b9988 100644
--- a/src/com/android/settings/LegalSettings.java
+++ b/src/com/android/settings/LegalSettings.java
@@ -40,6 +40,7 @@
     private static final String KEY_LICENSE = "license";
     private static final String KEY_COPYRIGHT = "copyright";
     private static final String KEY_WEBVIEW_LICENSE = "webview_license";
+    private static final String KEY_WALLPAPER_ATTRIBUTIONS = "wallpaper_attributions";
 
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -76,7 +77,7 @@
 
             @Override
             public List<String> getNonIndexableKeys(Context context) {
-                final List<String> keys = new ArrayList<String>();
+                final List<String> keys = super.getNonIndexableKeys(context);
                 if (!checkIntentAction(context, "android.settings.TERMS")) {
                     keys.add(KEY_TERMS);
                 }
@@ -89,6 +90,7 @@
                 if (!checkIntentAction(context, "android.settings.WEBVIEW_LICENSE")) {
                     keys.add(KEY_WEBVIEW_LICENSE);
                 }
+                keys.add(KEY_WALLPAPER_ATTRIBUTIONS);
                 return keys;
             }
 
diff --git a/src/com/android/settings/MasterClear.java b/src/com/android/settings/MasterClear.java
index ef4190b..77c6091 100644
--- a/src/com/android/settings/MasterClear.java
+++ b/src/com/android/settings/MasterClear.java
@@ -16,6 +16,8 @@
 
 package com.android.settings;
 
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorDescription;
@@ -48,13 +50,13 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmLockPattern;
 import com.android.settings.widget.CarrierDemoPasswordDialogFragment;
 import com.android.settingslib.RestrictedLockUtils;
 
 import java.util.List;
 
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
 /**
  * Confirm and execute a reset of the device to a clean "just out of the box"
  * state.  Multiple confirmations are required: first, a general "are you sure
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index 45490ab..1529e77 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -34,13 +34,14 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.telephony.PhoneConstants;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ConfirmLockPattern;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
 /**
  * Confirm and execute a reset of the device's network settings to a clean "just out of the box"
  * state.  Multiple confirmations are required: first, a general "are you sure you want to do this?"
diff --git a/src/com/android/settings/ScreenPinningSettings.java b/src/com/android/settings/ScreenPinningSettings.java
index d74a07f..c4870f7 100644
--- a/src/com/android/settings/ScreenPinningSettings.java
+++ b/src/com/android/settings/ScreenPinningSettings.java
@@ -33,6 +33,7 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 9d44c42..ec57ed1 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -17,6 +17,7 @@
 package com.android.settings;
 
 import static android.provider.Settings.System.SCREEN_OFF_TIMEOUT;
+
 import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 
 import android.app.Activity;
@@ -65,6 +66,9 @@
 import com.android.settings.location.LocationPreferenceController;
 import com.android.settings.notification.LockScreenNotificationPreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.ManagedLockPasswordProvider;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
@@ -635,7 +639,7 @@
                     return false;
                 }
             }
-            startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
+            startFragment(this, ChooseLockGenericFragment.class.getName(),
                     R.string.lock_settings_picker_title, SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);
         } else if (KEY_UNLOCK_SET_OR_CHANGE_PROFILE.equals(key)) {
             if (Utils.startQuietModeDialogIfNecessary(this.getActivity(), mUm,
@@ -644,7 +648,7 @@
             }
             Bundle extras = new Bundle();
             extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId);
-            startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
+            startFragment(this, ChooseLockGenericFragment.class.getName(),
                     R.string.lock_settings_picker_title_profile,
                     SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE, extras);
         } else if (KEY_TRUST_AGENT.equals(key)) {
@@ -744,7 +748,7 @@
     private void unifyUncompliantLocks() {
         mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileChallengeUserId, false,
                 mCurrentProfilePassword);
-        startFragment(this, "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
+        startFragment(this, ChooseLockGenericFragment.class.getName(),
                 R.string.lock_settings_picker_title, SET_OR_CHANGE_LOCK_METHOD_REQUEST, null);
     }
 
@@ -752,7 +756,7 @@
         Bundle extras = new Bundle();
         extras.putInt(Intent.EXTRA_USER_ID, mProfileChallengeUserId);
         startFragment(this,
-                "com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment",
+                ChooseLockGenericFragment.class.getName(),
                 R.string.lock_settings_picker_title_profile,
                 SET_OR_CHANGE_LOCK_METHOD_REQUEST_PROFILE, extras);
     }
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 2e6aed0..38b6e1b 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -22,6 +22,7 @@
 import com.android.settings.enterprise.EnterprisePrivacySettings;
 import com.android.settings.fingerprint.FingerprintEnrollIntroduction;
 import com.android.settings.fingerprint.FingerprintSettings;
+import com.android.settings.password.ChooseLockGeneric;
 
 /**
  * Top-level Settings activity
diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java
index 66fc4d6..6b15770 100644
--- a/src/com/android/settings/SettingsInitialize.java
+++ b/src/com/android/settings/SettingsInitialize.java
@@ -35,7 +35,7 @@
 import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
 
 /**
- * Listens to {@link Intent.ACTION_BOOT_COMPLETED} and {@link Intent.ACTION_PRE_BOOT_COMPLETED}
+ * Listens to {@link Intent.ACTION_PRE_BOOT_COMPLETED} and {@link Intent.ACTION_USER_INITIALIZED}
  * performs setup steps for a managed profile (disables the launcher icon of the Settings app,
  * adds cross-profile intent filters for the appropriate Settings activities), and disables the
  * webview setting for non-admin users.
@@ -89,11 +89,13 @@
         }
 
         // Disable launcher icon
-        // Note: This needs to happen after forwarding intents, otherwise the main Settings
-        // intent gets lost
         ComponentName settingsComponentName = new ComponentName(context, Settings.class);
         pm.setComponentEnabledSetting(settingsComponentName,
                 PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
+        // Disable shortcut picker.
+        ComponentName shortcutComponentName = new ComponentName(context, CreateShortcut.class);
+        pm.setComponentEnabledSetting(shortcutComponentName,
+                PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);
     }
 
     // Disable WebView Setting if the current user is not an admin
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 761e8cf..3fc7964 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -48,8 +48,8 @@
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.core.instrumentation.Instrumentable;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.widget.FooterPreferenceMixin;
 import com.android.settingslib.HelpUtils;
+import com.android.settingslib.widget.FooterPreferenceMixin;
 
 import java.util.UUID;
 
diff --git a/src/com/android/settings/SetupChooseLockPassword.java b/src/com/android/settings/SetupChooseLockPassword.java
deleted file mode 100644
index f2c24d0..0000000
--- a/src/com/android/settings/SetupChooseLockPassword.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2014 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.Fragment;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.widget.LinearLayout;
-
-/**
- * Setup Wizard's version of ChooseLockPassword screen. It inherits the logic and basic structure
- * from ChooseLockPassword class, and should remain similar to that behaviorally. This class should
- * only overload base methods for minor theme and behavior differences specific to Setup Wizard.
- * Other changes should be done to ChooseLockPassword class instead and let this class inherit
- * those changes.
- */
-public class SetupChooseLockPassword extends ChooseLockPassword {
-
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt,
-            boolean confirmCredentials) {
-        Intent intent = ChooseLockPassword.createIntent(context, quality, minLength,
-                maxLength, requirePasswordToDecrypt, confirmCredentials);
-        intent.setClass(context, SetupChooseLockPassword.class);
-        intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
-        return intent;
-    }
-
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt, String password) {
-        Intent intent = ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, password);
-        intent.setClass(context, SetupChooseLockPassword.class);
-        intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
-        return intent;
-    }
-
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt, long challenge) {
-        Intent intent = ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, challenge);
-        intent.setClass(context, SetupChooseLockPassword.class);
-        intent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
-        return intent;
-    }
-
-    @Override
-    protected boolean isValidFragment(String fragmentName) {
-        return SetupChooseLockPasswordFragment.class.getName().equals(fragmentName);
-    }
-
-    @Override
-    /* package */ Class<? extends Fragment> getFragmentClass() {
-        return SetupChooseLockPasswordFragment.class;
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstance) {
-        super.onCreate(savedInstance);
-        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
-        layout.setFitsSystemWindows(false);
-    }
-
-    @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    public static class SetupChooseLockPasswordFragment extends ChooseLockPasswordFragment {
-
-        @Override
-        protected Intent getRedactionInterstitialIntent(Context context) {
-            // Setup wizard's redaction interstitial is deferred to optional step. Enable that
-            // optional step if the lock screen was set up.
-            SetupRedactionInterstitial.setEnabled(context, true);
-            return null;
-        }
-    }
-}
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index f6f980a..0142ea2 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -103,6 +103,8 @@
 import com.android.internal.util.ArrayUtils;
 import com.android.internal.util.UserIcons;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.password.FingerprintManagerWrapper;
+import com.android.settings.password.IFingerprintManager;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -1197,6 +1199,15 @@
         }
     }
 
+    public static IFingerprintManager getFingerprintManagerWrapperOrNull(Context context) {
+        FingerprintManager fingerprintManager = getFingerprintManagerOrNull(context);
+        if (fingerprintManager != null) {
+            return new FingerprintManagerWrapper(fingerprintManager);
+        } else {
+            return null;
+        }
+    }
+
     /**
      * Launches an intent which may optionally have a user id defined.
      * @param fragment Fragment to use to launch the activity.
diff --git a/src/com/android/settings/WifiCallingSettings.java b/src/com/android/settings/WifiCallingSettings.java
index 78f9de6..cb661ed 100644
--- a/src/com/android/settings/WifiCallingSettings.java
+++ b/src/com/android/settings/WifiCallingSettings.java
@@ -152,7 +152,9 @@
 
         mEmptyView = (TextView) getView().findViewById(android.R.id.empty);
         setEmptyView(mEmptyView);
-        mEmptyView.setText(R.string.wifi_calling_off_explanation);
+        String emptyViewText = activity.getString(R.string.wifi_calling_off_explanation)
+                + activity.getString(R.string.wifi_calling_off_explanation_2);
+        mEmptyView.setText(emptyViewText);
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index 9c01a5f..04aa5e4 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -22,7 +22,6 @@
 import android.app.Dialog;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
-import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
@@ -33,22 +32,15 @@
 import android.os.storage.StorageManager;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
-import android.view.MotionEvent;
-import android.view.View;
 import android.view.accessibility.AccessibilityManager;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.ConfirmDeviceCredentialActivity;
 import com.android.settings.R;
+import com.android.settings.password.ConfirmDeviceCredentialActivity;
 import com.android.settings.widget.ToggleSwitch;
 import com.android.settings.widget.ToggleSwitch.OnBeforeCheckedChangeListener;
 import com.android.settingslib.accessibility.AccessibilityUtils;
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
index 6b2c6c8..b3d8266 100644
--- a/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java
@@ -26,7 +26,7 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.SeekBarPreference;
+import com.android.settings.widget.SeekBarPreference;
 import com.android.settings.widget.SwitchBar;
 
 
diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
index 65959b4..843b7fc 100644
--- a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
+++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java
@@ -22,9 +22,8 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.support.annotation.VisibleForTesting;
-import android.support.v7.preference.Preference;
-
 import android.support.v7.preference.PreferenceScreen;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.Utils;
@@ -45,13 +44,12 @@
     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";
-    public static final String KEY_ACCOUNT_HEADER = "account_header";
     public static final String KEY_USER_HANDLE = "user_handle";
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     Account mAccount;
     private String mAccountLabel;
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     String mAccountType;
     private AccountSyncPreferenceController mAccountSynController;
     private RemoveAccountPreferenceController mRemoveAccountController;
@@ -110,6 +108,8 @@
         controllers.add(mAccountSynController);
         mRemoveAccountController = new RemoveAccountPreferenceController(context, this);
         controllers.add(mRemoveAccountController);
+        controllers.add(new AccountHeaderPreferenceController(
+                context, getLifecycle(), getActivity(), this, getArguments()));
         return controllers;
     }
 
@@ -127,8 +127,6 @@
 
     @VisibleForTesting
     void updateUi() {
-        final Preference headerPreference = findPreference(KEY_ACCOUNT_HEADER);
-        headerPreference.setTitle(mAccount.name);
         final Context context = getContext();
         UserHandle userHandle = null;
         Bundle args = getArguments();
@@ -136,14 +134,12 @@
             userHandle = args.getParcelable(KEY_USER_HANDLE);
         }
         final AuthenticatorHelper helper = new AuthenticatorHelper(context, userHandle, null);
-        headerPreference.setIcon(helper.getDrawableForType(context, mAccountType));
         final AccountTypePreferenceLoader accountTypePreferenceLoader =
-            new AccountTypePreferenceLoader(this, helper, userHandle);
-        PreferenceScreen prefs =
-            accountTypePreferenceLoader.addPreferencesForType(mAccountType, getPreferenceScreen());
+                new AccountTypePreferenceLoader(this, helper, userHandle);
+        PreferenceScreen prefs = accountTypePreferenceLoader.addPreferencesForType(
+                mAccountType, getPreferenceScreen());
         if (prefs != null) {
             accountTypePreferenceLoader.updatePreferenceIntents(prefs, mAccountType, mAccount);
         }
     }
-
 }
\ No newline at end of file
diff --git a/src/com/android/settings/accounts/AccountHeaderPreferenceController.java b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
new file mode 100644
index 0000000..d0ce58d
--- /dev/null
+++ b/src/com/android/settings/accounts/AccountHeaderPreferenceController.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.support.v14.preference.PreferenceFragment;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settingslib.accounts.AuthenticatorHelper;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_ACCOUNT;
+import static com.android.settings.accounts.AccountDetailDashboardFragment.KEY_USER_HANDLE;
+
+public class AccountHeaderPreferenceController extends PreferenceController {
+
+    private static final String KEY_ACCOUNT_HEADER = "account_header";
+
+    private final Activity mActivity;
+    private final PreferenceFragment mHost;
+    private final Account mAccount;
+    private final UserHandle mUserHandle;
+    private final Lifecycle mLifecycle;
+
+    public AccountHeaderPreferenceController(Context context, Lifecycle lifecycle,
+            Activity activity, PreferenceFragment host, Bundle args) {
+        super(context);
+        mActivity = activity;
+        mHost = host;
+        mLifecycle = lifecycle;
+        if (args != null && args.containsKey(KEY_ACCOUNT)) {
+            mAccount = args.getParcelable(KEY_ACCOUNT);
+        } else {
+            mAccount = null;
+        }
+
+        if (args != null && args.containsKey(KEY_USER_HANDLE)) {
+            mUserHandle = args.getParcelable(KEY_USER_HANDLE);
+        } else {
+            mUserHandle = null;
+        }
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mAccount != null && mUserHandle != null;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_ACCOUNT_HEADER;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final LayoutPreference headerPreference =
+                (LayoutPreference) screen.findPreference(KEY_ACCOUNT_HEADER);
+
+        final AuthenticatorHelper helper = new AuthenticatorHelper(mContext, mUserHandle, null);
+
+        EntityHeaderController
+                .newInstance(mActivity, mHost, headerPreference.findViewById(R.id.entity_header))
+                .setRecyclerView(mHost.getListView(), mLifecycle)
+                .setLabel(mAccount.name)
+                .setIcon(helper.getDrawableForType(mContext, mAccount.type))
+                .done(mActivity, true /* rebindButtons */);
+    }
+}
diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java
index a782a7d..b0403b8 100644
--- a/src/com/android/settings/accounts/AccountPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountPreferenceController.java
@@ -47,14 +47,14 @@
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-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.overlay.FeatureFactory;
 import com.android.settings.search.SearchIndexableRaw;
 import com.android.settings.search2.SearchFeatureProviderImpl;
 import com.android.settingslib.RestrictedPreference;
 import com.android.settingslib.accounts.AuthenticatorHelper;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -123,9 +123,9 @@
          */
         public boolean pendingRemoval;
         /**
-         * The map from account name to account preference
+         * The map from account key to account preference
          */
-        public ArrayMap<CharSequence, AccountTypePreference> accountPreferences = new ArrayMap<>();
+        public ArrayMap<String, AccountTypePreference> accountPreferences = new ArrayMap<>();
     }
 
     public AccountPreferenceController(Context context, SettingsPreferenceFragment parent,
@@ -299,6 +299,11 @@
         final ProfileData data = mProfiles.get(userInfo.id);
         if (data != null) {
             data.pendingRemoval = false;
+            if (userInfo.isEnabled()) {
+                // recreate the authentication helper to refresh the list of enabled accounts
+                data.authenticatorHelper =
+                    new AuthenticatorHelper(mContext, userInfo.getUserHandle(), this);
+            }
             return;
         }
         final Context context = mContext;
@@ -426,7 +431,7 @@
             return;
         }
         if (profileData.userInfo.isEnabled()) {
-            final ArrayMap<CharSequence, AccountTypePreference> preferenceToRemove =
+            final ArrayMap<String, AccountTypePreference> preferenceToRemove =
                     new ArrayMap<>(profileData.accountPreferences);
             final ArrayList<AccountTypePreference> preferences = getAccountTypePreferences(
                     profileData.authenticatorHelper, profileData.userInfo.getUserHandle(),
@@ -435,18 +440,19 @@
             for (int i = 0; i < count; i++) {
                 final AccountTypePreference preference = preferences.get(i);
                 preference.setOrder(i);
-                if (!profileData.accountPreferences.containsValue(preference)) {
-                    profileData.preferenceGroup.addPreference(preferences.get(i));
-                    profileData.accountPreferences.put(preference.getTitle(), preference);
+                final String key = preference.getKey();
+                if (!profileData.accountPreferences.containsKey(key)) {
+                    profileData.preferenceGroup.addPreference(preference);
+                    profileData.accountPreferences.put(key, preference);
                 }
             }
             if (profileData.addAccountPreference != null) {
                 profileData.preferenceGroup.addPreference(profileData.addAccountPreference);
             }
-            for (CharSequence name : preferenceToRemove.keySet()) {
+            for (String key : preferenceToRemove.keySet()) {
                 profileData.preferenceGroup.removePreference(
-                    profileData.accountPreferences.get(name));
-                profileData.accountPreferences.remove(name);
+                    profileData.accountPreferences.get(key));
+                profileData.accountPreferences.remove(key);
             }
         } else {
             profileData.preferenceGroup.removeAll();
@@ -471,8 +477,7 @@
     }
 
     private ArrayList<AccountTypePreference> getAccountTypePreferences(AuthenticatorHelper helper,
-            UserHandle userHandle,
-            ArrayMap<CharSequence, AccountTypePreference> preferenceToRemove) {
+            UserHandle userHandle, ArrayMap<String, AccountTypePreference> preferenceToRemove) {
         final String[] accountTypes = helper.getEnabledAccountTypes();
         final ArrayList<AccountTypePreference> accountTypePreferences =
                 new ArrayList<>(accountTypes.length);
@@ -497,7 +502,8 @@
 
             // Add a preference row for each individual account
             for (Account account : accounts) {
-                final AccountTypePreference preference = preferenceToRemove.remove(account.name);
+                final AccountTypePreference preference =
+                        preferenceToRemove.remove(AccountTypePreference.buildKey(account));
                 if (preference != null) {
                     accountTypePreferences.add(preference);
                     continue;
@@ -521,7 +527,7 @@
                 fragmentArguments.putParcelable(EXTRA_USER, userHandle);
                 accountTypePreferences.add(new AccountTypePreference(
                     prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent),
-                    account.name, titleResPackageName, titleResId, label,
+                    account, titleResPackageName, titleResId, label,
                     AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon));
             }
             helper.preloadDrawableForType(mContext, accountType);
diff --git a/src/com/android/settings/accounts/AccountTypePreference.java b/src/com/android/settings/accounts/AccountTypePreference.java
index 0abfb50..4f92829 100644
--- a/src/com/android/settings/accounts/AccountTypePreference.java
+++ b/src/com/android/settings/accounts/AccountTypePreference.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.accounts;
 
+import android.accounts.Account;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
@@ -67,18 +68,11 @@
 
     private final int mMetricsCategory;
 
-    public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
-            String titleResPackageName, int titleResId, String fragment, Bundle fragmentArguments,
-            Drawable icon) {
-        this(context, metricsCategory, title, titleResPackageName, titleResId, null, fragment,
-                fragmentArguments, icon);
-    }
-
-    public AccountTypePreference(Context context, int metricsCategory, CharSequence title,
+    public AccountTypePreference(Context context, int metricsCategory, Account account,
             String titleResPackageName, int titleResId, CharSequence summary, String fragment,
             Bundle fragmentArguments, Drawable icon) {
         super(context);
-        mTitle = title;
+        mTitle = account.name;
         mTitleResPackageName = titleResPackageName;
         mTitleResId = titleResId;
         mSummary = summary;
@@ -87,7 +81,8 @@
         mMetricsCategory = metricsCategory;
         setWidgetLayoutResource(R.layout.account_type_preference);
 
-        setTitle(title);
+        setKey(buildKey(account));
+        setTitle(mTitle);
         setSummary(summary);
         setIcon(icon);
 
@@ -115,6 +110,13 @@
         return false;
     }
 
+    /**
+     * Build a unique preference key based on account.
+     */
+    public static String buildKey(Account account) {
+        return String.valueOf(account.hashCode());
+    }
+
     public CharSequence getTitle() {
         return mTitle;
     }
@@ -122,5 +124,4 @@
     public CharSequence getSummary() {
         return mSummary;
     }
-
 }
diff --git a/src/com/android/settings/accounts/AddAccountSettings.java b/src/com/android/settings/accounts/AddAccountSettings.java
index 345f9fc..cca15c9 100644
--- a/src/com/android/settings/accounts/AddAccountSettings.java
+++ b/src/com/android/settings/accounts/AddAccountSettings.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.accounts;
 
+import static android.content.Intent.EXTRA_USER;
+
 import android.accounts.AccountManager;
 import android.accounts.AccountManagerCallback;
 import android.accounts.AccountManagerFuture;
@@ -32,14 +34,12 @@
 import android.util.Log;
 import android.widget.Toast;
 
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.Settings;
 import com.android.settings.Utils;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 import java.io.IOException;
-
-import static android.content.Intent.EXTRA_USER;
 /**
  * Entry point Activity for account setup. Works as follows
  *
diff --git a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
index 10e3610..a3dd94d 100644
--- a/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/accounts/AddUserWhenLockedPreferenceController.java
@@ -20,11 +20,11 @@
 import android.support.v7.preference.Preference;
 
 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 com.android.settings.users.UserCapabilities;
 import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class AddUserWhenLockedPreferenceController extends PreferenceController
         implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnPause, OnResume {
diff --git a/src/com/android/settings/accounts/ChooseAccountActivity.java b/src/com/android/settings/accounts/ChooseAccountActivity.java
index fce88aa..fe6f7b4 100644
--- a/src/com/android/settings/accounts/ChooseAccountActivity.java
+++ b/src/com/android/settings/accounts/ChooseAccountActivity.java
@@ -44,10 +44,10 @@
 import com.android.settings.Utils;
 import com.android.settings.enterprise.EnterprisePrivacyFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.FooterPreference;
-import com.android.settings.widget.FooterPreferenceMixin;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.widget.FooterPreference;
+import com.android.settingslib.widget.FooterPreferenceMixin;
 
 import com.google.android.collect.Maps;
 
diff --git a/src/com/android/settings/applications/AdvancedAppSettings.java b/src/com/android/settings/applications/AdvancedAppSettings.java
index caa9da1..cce8b7d 100644
--- a/src/com/android/settings/applications/AdvancedAppSettings.java
+++ b/src/com/android/settings/applications/AdvancedAppSettings.java
@@ -43,6 +43,8 @@
 
     static final String TAG = "AdvancedAppSettings";
 
+    private static final String KEY_ASSIST_VOICE_INPUT = "assist_and_voice_input";
+
     @Override
     protected String getLogTag() {
         return TAG;
@@ -80,6 +82,18 @@
                     sir.xmlResId = R.xml.app_default_settings;
                     return Arrays.asList(sir);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add(KEY_ASSIST_VOICE_INPUT);
+                    // TODO (b/38230148) Remove these keys when we can differentiate work results
+                    keys.add((new DefaultWorkPhonePreferenceController(context))
+                            .getPreferenceKey());
+                    keys.add((new DefaultWorkBrowserPreferenceController(context))
+                            .getPreferenceKey());
+                    return keys;
+                }
             };
 
     static class SummaryProvider implements SummaryLoader.SummaryProvider {
diff --git a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
index 5ba8ffb..9f91564 100644
--- a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
+++ b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
@@ -95,5 +95,13 @@
                 public List<PreferenceController> getPreferenceControllers(Context context) {
                     return buildPreferenceControllers(context, null, null /* host */);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add((new SpecialAppAccessPreferenceController(context))
+                            .getPreferenceKey());
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/applications/AppHeaderController.java b/src/com/android/settings/applications/AppHeaderController.java
deleted file mode 100644
index 804d645..0000000
--- a/src/com/android/settings/applications/AppHeaderController.java
+++ /dev/null
@@ -1,298 +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.applications;
-
-import android.annotation.IdRes;
-import android.annotation.UserIdInt;
-import android.app.ActionBar;
-import android.app.Activity;
-import android.app.Fragment;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageInfo;
-import android.content.pm.ResolveInfo;
-import android.graphics.drawable.ColorDrawable;
-import android.graphics.drawable.Drawable;
-import android.os.UserHandle;
-import android.support.annotation.IntDef;
-import android.support.annotation.VisibleForTesting;
-import android.text.TextUtils;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.ImageButton;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import com.android.settings.AppHeader;
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.applications.ApplicationsState;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-public class AppHeaderController {
-
-    @IntDef({ActionType.ACTION_NONE,
-            ActionType.ACTION_APP_INFO,
-            ActionType.ACTION_APP_PREFERENCE,
-            ActionType.ACTION_NOTIF_PREFERENCE})
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface ActionType {
-        int ACTION_NONE = 0;
-        int ACTION_APP_INFO = 1;
-        int ACTION_APP_PREFERENCE = 2;
-        int ACTION_NOTIF_PREFERENCE = 3;
-    }
-
-    public static final String PREF_KEY_APP_HEADER = "pref_app_header";
-
-    private static final String TAG = "AppDetailFeature";
-
-    private final Context mContext;
-    private final Fragment mFragment;
-    private final int mMetricsCategory;
-    private final View mAppHeader;
-
-    private Drawable mIcon;
-    private CharSequence mLabel;
-    private CharSequence mSummary;
-    private String mPackageName;
-    private Intent mAppNotifPrefIntent;
-    @UserIdInt
-    private int mUid = UserHandle.USER_NULL;
-    @ActionType
-    private int mLeftAction;
-    @ActionType
-    private int mRightAction;
-
-    private boolean mIsInstantApp;
-
-    public AppHeaderController(Context context, Fragment fragment, View appHeader) {
-        mContext = context;
-        mFragment = fragment;
-        mMetricsCategory = FeatureFactory.getFactory(context).getMetricsFeatureProvider()
-                .getMetricsCategory(fragment);
-        if (appHeader != null) {
-            mAppHeader = appHeader;
-        } else {
-            mAppHeader = LayoutInflater.from(fragment.getContext())
-                    .inflate(R.layout.app_details, null /* root */);
-        }
-    }
-
-    public AppHeaderController setIcon(Drawable icon) {
-        if (icon != null) {
-            mIcon = icon.getConstantState().newDrawable(mContext.getResources());
-        }
-        return this;
-    }
-
-    public AppHeaderController setIcon(ApplicationsState.AppEntry appEntry) {
-        if (appEntry.icon != null) {
-            mIcon = appEntry.icon.getConstantState().newDrawable(mContext.getResources());
-        }
-        return this;
-    }
-
-    public AppHeaderController setLabel(CharSequence label) {
-        mLabel = label;
-        return this;
-    }
-
-    public AppHeaderController setLabel(ApplicationsState.AppEntry appEntry) {
-        mLabel = appEntry.label;
-        return this;
-    }
-
-    public AppHeaderController setSummary(CharSequence summary) {
-        mSummary = summary;
-        return this;
-    }
-
-    public AppHeaderController setSummary(PackageInfo packageInfo) {
-        if (packageInfo != null) {
-            mSummary = packageInfo.versionName;
-        }
-        return this;
-    }
-
-    public AppHeaderController setButtonActions(@ActionType int leftAction,
-            @ActionType int rightAction) {
-        mLeftAction = leftAction;
-        mRightAction = rightAction;
-        return this;
-    }
-
-    public AppHeaderController setPackageName(String packageName) {
-        mPackageName = packageName;
-        return this;
-    }
-
-    public AppHeaderController setUid(int uid) {
-        mUid = uid;
-        return this;
-    }
-
-    public AppHeaderController setAppNotifPrefIntent(Intent appNotifPrefIntent) {
-        mAppNotifPrefIntent = appNotifPrefIntent;
-        return this;
-    }
-
-    public AppHeaderController setIsInstantApp(boolean isInstantApp) {
-        this.mIsInstantApp = isInstantApp;
-        return this;
-    }
-
-    /**
-     * Done mutating appheader, rebinds everything and return a new {@link LayoutPreference}.
-     */
-    public LayoutPreference done(Activity activity, Context uiContext) {
-        final LayoutPreference pref = new LayoutPreference(uiContext, done(activity));
-        // Makes sure it's the first preference onscreen.
-        pref.setOrder(-1000);
-        pref.setKey(PREF_KEY_APP_HEADER);
-        return pref;
-    }
-
-    /**
-     * Done mutating appheader, rebinds everything (optionally skip rebinding buttons).
-     */
-    public View done(Activity activity, boolean rebindActions) {
-        styleActionBar(activity);
-        ImageView iconView = mAppHeader.findViewById(R.id.app_detail_icon);
-        if (iconView != null) {
-            iconView.setImageDrawable(mIcon);
-        }
-        setText(R.id.app_detail_title, mLabel);
-        setText(R.id.app_detail_summary, mSummary);
-        if (mIsInstantApp) {
-            setText(R.id.install_type,
-                    mAppHeader.getResources().getString(R.string.install_type_instant));
-        }
-
-        if (rebindActions) {
-            bindAppHeaderButtons();
-        }
-
-        return mAppHeader;
-    }
-
-    /**
-     * Only binds app header with button actions.
-     */
-    public AppHeaderController bindAppHeaderButtons() {
-        ImageButton leftButton = mAppHeader.findViewById(R.id.left_button);
-        ImageButton rightButton = mAppHeader.findViewById(R.id.right_button);
-
-        bindButton(leftButton, mLeftAction);
-        bindButton(rightButton, mRightAction);
-        return this;
-    }
-
-    public AppHeaderController styleActionBar(Activity activity) {
-        if (activity == null) {
-            Log.w(TAG, "No activity, cannot style actionbar.");
-            return this;
-        }
-        final ActionBar actionBar = activity.getActionBar();
-        if (actionBar == null) {
-            Log.w(TAG, "No actionbar, cannot style actionbar.");
-            return this;
-        }
-        actionBar.setBackgroundDrawable(
-                new ColorDrawable(Utils.getColorAttr(activity, android.R.attr.colorSecondary)));
-        actionBar.setElevation(0);
-
-        return this;
-    }
-
-    /**
-     * Done mutating appheader, rebinds everything.
-     */
-    @VisibleForTesting
-    View done(Activity activity) {
-        return done(activity, true /* rebindActions */);
-    }
-
-    private void bindButton(ImageButton button, @ActionType int action) {
-        if (button == null) {
-            return;
-        }
-        switch (action) {
-            case ActionType.ACTION_APP_INFO: {
-                if (mPackageName == null || mPackageName.equals(Utils.OS_PKG)
-                        || mUid == UserHandle.USER_NULL
-                        || !AppHeader.includeAppInfo(mFragment)) {
-                    button.setVisibility(View.GONE);
-                } else {
-                    button.setContentDescription(
-                            mContext.getString(R.string.application_info_label));
-                    button.setImageResource(com.android.settings.R.drawable.ic_info);
-                    button.setOnClickListener(v -> AppInfoBase.startAppInfoFragment(
-                            InstalledAppDetails.class, R.string.application_info_label,
-                            mPackageName, mUid, mFragment, 0 /* request */, mMetricsCategory));
-                    button.setVisibility(View.VISIBLE);
-                }
-                return;
-            }
-            case ActionType.ACTION_NOTIF_PREFERENCE: {
-                if (mAppNotifPrefIntent == null) {
-                    button.setVisibility(View.GONE);
-                } else {
-                    button.setOnClickListener(v -> mFragment.startActivity(mAppNotifPrefIntent));
-                    button.setVisibility(View.VISIBLE);
-                }
-                return;
-            }
-            case ActionType.ACTION_APP_PREFERENCE: {
-                final Intent intent = resolveIntent(
-                        new Intent(Intent.ACTION_APPLICATION_PREFERENCES).setPackage(mPackageName));
-                if (intent == null) {
-                    button.setVisibility(View.GONE);
-                    return;
-                }
-                button.setOnClickListener(v -> mFragment.startActivity(intent));
-                button.setVisibility(View.VISIBLE);
-                return;
-            }
-            case ActionType.ACTION_NONE: {
-                button.setVisibility(View.GONE);
-                return;
-            }
-        }
-    }
-
-    private Intent resolveIntent(Intent i) {
-        ResolveInfo result = mContext.getPackageManager().resolveActivity(i, 0);
-        if (result != null) {
-            return new Intent(i.getAction())
-                    .setClassName(result.activityInfo.packageName, result.activityInfo.name);
-        }
-        return null;
-    }
-
-    private void setText(@IdRes int id, CharSequence text) {
-        TextView textView = mAppHeader.findViewById(id);
-        if (textView != null) {
-            textView.setText(text);
-            textView.setVisibility(TextUtils.isEmpty(text) ? View.GONE : View.VISIBLE);
-        }
-    }
-}
diff --git a/src/com/android/settings/applications/AppInfoWithHeader.java b/src/com/android/settings/applications/AppInfoWithHeader.java
index 6b1ef67..95877e9 100644
--- a/src/com/android/settings/applications/AppInfoWithHeader.java
+++ b/src/com/android/settings/applications/AppInfoWithHeader.java
@@ -16,17 +16,17 @@
 
 package com.android.settings.applications;
 
-import static com.android.settings.applications.AppHeaderController.ActionType;
-
 import android.app.Activity;
 import android.os.Bundle;
 import android.support.v7.preference.Preference;
 import android.util.IconDrawableFactory;
 import android.util.Log;
 
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 
+import static com.android.settings.widget.EntityHeaderController.ActionType;
+
 public abstract class AppInfoWithHeader extends AppInfoBase {
 
     private boolean mCreated;
@@ -41,9 +41,9 @@
         mCreated = true;
         if (mPackageInfo == null) return;
         final Activity activity = getActivity();
-        final Preference pref = FeatureFactory.getFactory(activity)
-                .getApplicationFeatureProvider(activity)
-                .newAppHeaderController(this, null /* appHeader */)
+        final Preference pref = EntityHeaderController
+                .newInstance(activity, this, null /* header */)
+                .setRecyclerView(getListView(), getLifecycle())
                 .setIcon(IconDrawableFactory.newInstance(activity)
                         .getBadgedIcon(mPackageInfo.applicationInfo))
                 .setLabel(mPackageInfo.applicationInfo.loadLabel(mPm))
diff --git a/src/com/android/settings/applications/AppOpsDetails.java b/src/com/android/settings/applications/AppOpsDetails.java
index e6c040b..b488af6 100644
--- a/src/com/android/settings/applications/AppOpsDetails.java
+++ b/src/com/android/settings/applications/AppOpsDetails.java
@@ -28,6 +28,7 @@
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -43,6 +44,7 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
+import com.android.settings.widget.EntityHeaderController;
 
 import java.util.List;
 
@@ -64,7 +66,7 @@
         final View appSnippet = mRootView.findViewById(R.id.app_snippet);
         CharSequence label = mPm.getApplicationLabel(pkgInfo.applicationInfo);
         Drawable icon = mPm.getApplicationIcon(pkgInfo.applicationInfo);
-        InstalledAppDetails.setupAppSnippet(appSnippet, label, icon,
+        setupAppSnippet(appSnippet, label, icon,
                 pkgInfo != null ? pkgInfo.versionName : null);
     }
 
@@ -191,4 +193,30 @@
             setIntentAndFinish(true, true);
         }
     }
+
+    /**
+     * @deprecated app info pages should use {@link EntityHeaderController} to show the app header.
+     */
+    void setupAppSnippet(View appSnippet, CharSequence label, Drawable icon,
+            CharSequence versionName) {
+        LayoutInflater.from(appSnippet.getContext()).inflate(R.layout.widget_text_views,
+                appSnippet.findViewById(android.R.id.widget_frame));
+
+        ImageView iconView = appSnippet.findViewById(android.R.id.icon);
+        iconView.setImageDrawable(icon);
+        // Set application name.
+        TextView labelView = appSnippet.findViewById(android.R.id.title);
+        labelView.setText(label);
+        // Version number of application
+        TextView appVersion = appSnippet.findViewById(R.id.widget_text1);
+
+        if (!TextUtils.isEmpty(versionName)) {
+            appVersion.setSelected(true);
+            appVersion.setVisibility(View.VISIBLE);
+            appVersion.setText(appSnippet.getContext().getString(R.string.version_text,
+                    String.valueOf(versionName)));
+        } else {
+            appVersion.setVisibility(View.INVISIBLE);
+        }
+    }
 }
diff --git a/src/com/android/settings/applications/ApplicationFeatureProvider.java b/src/com/android/settings/applications/ApplicationFeatureProvider.java
index 3266fe0..bff93b8e 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProvider.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProvider.java
@@ -28,14 +28,8 @@
 public interface ApplicationFeatureProvider {
 
     /**
-     * Returns a new {@link AppHeaderController} instance to customize app header.
-     */
-    AppHeaderController newAppHeaderController(Fragment fragment, View appHeader);
-
-    /**
-     *
-     *  Returns a new {@link InstantAppButtonsController} instance for showing buttons
-     *  only relevant to instant apps.
+     * Returns a new {@link InstantAppButtonsController} instance for showing buttons
+     * only relevant to instant apps.
      */
     InstantAppButtonsController newInstantAppButtonsController(Fragment fragment,
             View view, InstantAppButtonsController.ShowDialogDelegate showDialogDelegate);
@@ -44,7 +38,7 @@
      * Calculates the total number of apps installed on the device via policy in the current user
      * and all its managed profiles.
      *
-     * @param async Whether to count asynchronously in a background thread
+     * @param async    Whether to count asynchronously in a background thread
      * @param callback The callback to invoke with the result
      */
     void calculateNumberOfPolicyInstalledApps(boolean async, NumberOfAppsCallback callback);
@@ -61,10 +55,10 @@
      * Asynchronously calculates the total number of apps installed in the current user and all its
      * managed profiles that have been granted one or more of the given permissions by the admin.
      *
-     * @param permissions Only consider apps that have been granted one or more of these permissions
-     *        by the admin, either at run-time or install-time
-     * @param async Whether to count asynchronously in a background thread
-     * @param callback The callback to invoke with the result
+     * @param permissions Only consider apps that have been granted one or more of these
+     *                    permissions by the admin, either at run-time or install-time
+     * @param async       Whether to count asynchronously in a background thread
+     * @param callback    The callback to invoke with the result
      */
     void calculateNumberOfAppsWithAdminGrantedPermissions(String[] permissions, boolean async,
             NumberOfAppsCallback callback);
@@ -73,9 +67,9 @@
      * Asynchronously builds the list of apps installed in the current user and all its
      * managed profiles that have been granted one or more of the given permissions by the admin.
      *
-     * @param permissions Only consider apps that have been granted one or more of these permissions
-     *        by the admin, either at run-time or install-time
-     * @param callback The callback to invoke with the result
+     * @param permissions Only consider apps that have been granted one or more of these
+     *                    permissions by the admin, either at run-time or install-time
+     * @param callback    The callback to invoke with the result
      */
     void listAppsWithAdminGrantedPermissions(String[] permissions, ListOfAppsCallback callback);
 
@@ -85,10 +79,9 @@
      * given intent (e.g. open browser), even if the user has other apps installed that would also
      * be able to handle the intent.
      *
-     * @param userId ID of the user for which to find persistent preferred activities
-     * @param intent The intents for which to find persistent preferred activities
-     *
-     * @return the persistent preferred activites for the given intents, ordered first by user id,
+     * @param userId  ID of the user for which to find persistent preferred activities
+     * @param intents The intents for which to find persistent preferred activities
+     * @return the persistent preferred activities for the given intents, ordered first by user id,
      * then by package name
      */
     List<UserAppInfo> findPersistentPreferredActivities(@UserIdInt int userId, Intent[] intents);
diff --git a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
index a744792..36e0965 100644
--- a/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/ApplicationFeatureProviderImpl.java
@@ -24,7 +24,6 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.os.RemoteException;
-import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.ArraySet;
 import android.view.View;
@@ -54,11 +53,6 @@
     }
 
     @Override
-    public AppHeaderController newAppHeaderController(Fragment fragment, View appHeader) {
-        return new AppHeaderController(mContext, fragment, appHeader);
-    }
-
-    @Override
     public InstantAppButtonsController newInstantAppButtonsController(Fragment fragment,
             View view, InstantAppButtonsController.ShowDialogDelegate showDialogDelegate) {
         return new InstantAppButtonsController(mContext, fragment, view, showDialogDelegate);
diff --git a/src/com/android/settings/applications/ConvertToFbe.java b/src/com/android/settings/applications/ConvertToFbe.java
index 9c43af4..c5e6d77 100644
--- a/src/com/android/settings/applications/ConvertToFbe.java
+++ b/src/com/android/settings/applications/ConvertToFbe.java
@@ -25,10 +25,10 @@
 import android.widget.Button;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 /* Class to prompt for conversion of userdata to file based encryption
  */
diff --git a/src/com/android/settings/applications/DrawOverlayDetails.java b/src/com/android/settings/applications/DrawOverlayDetails.java
index 72564bc..c6f3cc0 100644
--- a/src/com/android/settings/applications/DrawOverlayDetails.java
+++ b/src/com/android/settings/applications/DrawOverlayDetails.java
@@ -20,8 +20,6 @@
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -206,33 +204,6 @@
 
     public static CharSequence getSummary(Context context, OverlayState overlayState) {
         return context.getString(overlayState.isPermissible() ?
-            R.string.system_alert_window_on : R.string.system_alert_window_off);
-    }
-
-    public static CharSequence getSummary(Context context, String pkg) {
-        // first check if pkg is a system pkg
-        PackageManager packageManager = context.getPackageManager();
-        int uid = -1;
-        try {
-            ApplicationInfo appInfo = packageManager.getApplicationInfo(pkg, 0);
-            uid = appInfo.uid;
-            if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
-                return context.getString(R.string.system_alert_window_on);
-            }
-        } catch (PackageManager.NameNotFoundException e) {
-            // pkg doesn't even exist?
-            Log.w(LOG_TAG, "Package " + pkg + " not found", e);
-            return context.getString(R.string.system_alert_window_off);
-        }
-
-        AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context
-                .APP_OPS_SERVICE);
-        if (uid == -1) {
-            return context.getString(R.string.system_alert_window_off);
-        }
-
-        int mode = appOpsManager.noteOpNoThrow(AppOpsManager.OP_SYSTEM_ALERT_WINDOW, uid, pkg);
-        return context.getString((mode == AppOpsManager.MODE_ALLOWED) ?
-                R.string.system_alert_window_on : R.string.system_alert_window_off);
+            R.string.app_permission_summary_allowed : R.string.app_permission_summary_not_allowed);
     }
 }
diff --git a/src/com/android/settings/applications/ExternalSourcesDetails.java b/src/com/android/settings/applications/ExternalSourcesDetails.java
index fe51a87..7158900 100644
--- a/src/com/android/settings/applications/ExternalSourcesDetails.java
+++ b/src/com/android/settings/applications/ExternalSourcesDetails.java
@@ -15,11 +15,6 @@
  */
 package com.android.settings.applications;
 
-import static android.app.Activity.RESULT_CANCELED;
-import static android.app.Activity.RESULT_OK;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-
 import android.app.AlertDialog;
 import android.app.AppOpsManager;
 import android.content.Context;
@@ -29,12 +24,16 @@
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.Settings;
 import com.android.settings.applications.AppStateInstallAppsBridge.InstallAppsState;
 import com.android.settingslib.RestrictedSwitchPreference;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 
+import static android.app.Activity.RESULT_CANCELED;
+import static android.app.Activity.RESULT_OK;
+
 public class ExternalSourcesDetails extends AppInfoWithHeader
         implements OnPreferenceChangeListener {
 
@@ -97,8 +96,9 @@
             appsState = new AppStateInstallAppsBridge(context, null, null)
                     .createInstallAppsStateFor(entry.info.packageName, entry.info.uid);
         }
-        return context.getString(appsState.canInstallApps() ? R.string.external_source_trusted
-                : R.string.external_source_untrusted);
+        return context.getString(appsState.canInstallApps()
+                ? R.string.app_permission_summary_allowed
+                : R.string.app_permission_summary_not_allowed);
     }
 
     private void setCanInstallApps(boolean newState) {
diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java
index e9b7481..0eaad8e 100755
--- a/src/com/android/settings/applications/InstalledAppDetails.java
+++ b/src/com/android/settings/applications/InstalledAppDetails.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.applications;
 
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
 import android.Manifest.permission;
 import android.app.Activity;
 import android.app.ActivityManager;
@@ -39,7 +37,6 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
-import android.graphics.drawable.Drawable;
 import android.icu.text.ListFormatter;
 import android.net.INetworkStatsService;
 import android.net.INetworkStatsSession;
@@ -62,16 +59,12 @@
 import android.text.format.DateUtils;
 import android.text.format.Formatter;
 import android.util.Log;
-import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.ViewGroup;
 import android.webkit.IWebViewUpdateService;
 import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.os.BatterySipper;
@@ -98,6 +91,7 @@
 import com.android.settings.notification.NotificationBackend;
 import com.android.settings.notification.NotificationBackend.AppRow;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.AppItem;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.applications.AppUtils;
@@ -116,6 +110,8 @@
 import java.util.List;
 import java.util.Set;
 
+import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
 /**
  * Activity to display application information from Settings. This activity presents
  * extended information associated with a package like code, data, total size, permissions
@@ -349,7 +345,7 @@
         }
 
         setHasOptionsMenu(true);
-        addPreferencesFromResource(R.xml.installed_app_details_ia);
+        addPreferencesFromResource(R.xml.installed_app_details);
         addDynamicPrefs();
         if (Utils.isBandwidthControlEnabled()) {
             INetworkStatsService statsService = INetworkStatsService.Stub.asInterface(
@@ -411,14 +407,13 @@
         final Activity activity = getActivity();
         mHeader = (LayoutPreference) findPreference(KEY_HEADER);
         mActionButtons = (LayoutPreference) findPreference(KEY_ACTION_BUTTONS);
-        FeatureFactory.getFactory(activity)
-                .getApplicationFeatureProvider(activity)
-                .newAppHeaderController(this, mHeader.findViewById(R.id.app_snippet))
+        EntityHeaderController.newInstance(activity, this, mHeader.findViewById(R.id.entity_header))
+                .setRecyclerView(getListView(), getLifecycle())
                 .setPackageName(mPackageName)
-                .setButtonActions(AppHeaderController.ActionType.ACTION_APP_PREFERENCE,
-                        AppHeaderController.ActionType.ACTION_NONE)
+                .setButtonActions(EntityHeaderController.ActionType.ACTION_APP_PREFERENCE,
+                        EntityHeaderController.ActionType.ACTION_NONE)
                 .styleActionBar(activity)
-                .bindAppHeaderButtons();
+                .bindHeaderButtons();
         prepareUninstallAndStop();
 
         mNotificationPreference = findPreference(KEY_NOTIFICATION);
@@ -584,20 +579,18 @@
 
     // Utility method to set application label and icon.
     private void setAppLabelAndIcon(PackageInfo pkgInfo) {
-        final View appSnippet = mHeader.findViewById(R.id.app_snippet);
+        final View appSnippet = mHeader.findViewById(R.id.entity_header);
         mState.ensureIcon(mAppEntry);
         final Activity activity = getActivity();
         final boolean isInstantApp = AppUtils.isInstant(mPackageInfo.applicationInfo);
         final CharSequence summary =
                 isInstantApp ? null : getString(Utils.getInstallationStatus(mAppEntry.info));
-        FeatureFactory.getFactory(activity)
-            .getApplicationFeatureProvider(activity)
-            .newAppHeaderController(this, appSnippet)
-            .setLabel(mAppEntry)
-            .setIcon(mAppEntry)
-            .setSummary(summary)
-            .setIsInstantApp(isInstantApp)
-            .done(activity, false /* rebindActions */);
+        EntityHeaderController.newInstance(activity, this, appSnippet)
+                .setLabel(mAppEntry)
+                .setIcon(mAppEntry)
+                .setSummary(summary)
+                .setIsInstantApp(isInstantApp)
+                .done(activity, false /* rebindActions */);
         mVersionPreference.setSummary(getString(R.string.version_text, pkgInfo.versionName));
     }
 
@@ -1200,7 +1193,8 @@
         Preference pref = findPreference("default_home");
 
         if (pref != null) {
-            pref.setSummary(DefaultHomePreferenceController.isHomeDefault(mPackageName, context)
+            pref.setSummary(DefaultHomePreferenceController.isHomeDefault(mPackageName,
+                    new PackageManagerWrapperImpl(context.getPackageManager()))
                     ? R.string.yes : R.string.no);
         }
         pref = findPreference("default_browser");
@@ -1244,32 +1238,6 @@
         }
     }
 
-    /**
-     * @deprecated app info pages should use {@link AppHeaderController} to show the app header.
-     */
-    public static void setupAppSnippet(View appSnippet, CharSequence label, Drawable icon,
-            CharSequence versionName) {
-        LayoutInflater.from(appSnippet.getContext()).inflate(R.layout.widget_text_views,
-                (ViewGroup) appSnippet.findViewById(android.R.id.widget_frame));
-
-        ImageView iconView = (ImageView) appSnippet.findViewById(R.id.app_detail_icon);
-        iconView.setImageDrawable(icon);
-        // Set application name.
-        TextView labelView = (TextView) appSnippet.findViewById(R.id.app_detail_title);
-        labelView.setText(label);
-        // Version number of application
-        TextView appVersion = (TextView) appSnippet.findViewById(R.id.widget_text1);
-
-        if (!TextUtils.isEmpty(versionName)) {
-            appVersion.setSelected(true);
-            appVersion.setVisibility(View.VISIBLE);
-            appVersion.setText(appSnippet.getContext().getString(R.string.version_text,
-                    String.valueOf(versionName)));
-        } else {
-            appVersion.setVisibility(View.INVISIBLE);
-        }
-    }
-
     public static NetworkTemplate getTemplate(Context context) {
         if (DataUsageList.hasReadyMobileRadio(context)) {
             return NetworkTemplate.buildTemplateMobileWildcard();
diff --git a/src/com/android/settings/applications/ManageApplications.java b/src/com/android/settings/applications/ManageApplications.java
index cfa6042..6274374 100644
--- a/src/com/android/settings/applications/ManageApplications.java
+++ b/src/com/android/settings/applications/ManageApplications.java
@@ -506,10 +506,9 @@
     }
 
     @Override
-    public void onResume() {
-        super.onResume();
+    public void onStart() {
+        super.onStart();
         updateView();
-        updateOptionsMenu();
         if (mApplications != null) {
             mApplications.resume(mSortOrder);
             mApplications.updateLoading();
@@ -527,16 +526,11 @@
     }
 
     @Override
-    public void onPause() {
-        super.onPause();
+    public void onStop() {
+        super.onStop();
         if (mApplications != null) {
             mApplications.pause();
         }
-    }
-
-    @Override
-    public void onStop() {
-        super.onStop();
         mResetAppsHelper.stop();
     }
 
@@ -1367,8 +1361,9 @@
                 case LIST_TYPE_USAGE_ACCESS:
                     if (holder.entry.extraInfo != null) {
                         holder.summary.setText((new UsageState((PermissionState) holder.entry
-                                .extraInfo)).isPermissible() ? R.string.switch_on_text :
-                                R.string.switch_off_text);
+                                .extraInfo)).isPermissible()
+                                ? R.string.app_permission_summary_allowed
+                                : R.string.app_permission_summary_not_allowed);
                     } else {
                         holder.summary.setText(null);
                     }
diff --git a/src/com/android/settings/applications/PictureInPictureDetails.java b/src/com/android/settings/applications/PictureInPictureDetails.java
index 41f006a..a886a3d 100644
--- a/src/com/android/settings/applications/PictureInPictureDetails.java
+++ b/src/com/android/settings/applications/PictureInPictureDetails.java
@@ -15,10 +15,6 @@
  */
 package com.android.settings.applications;
 
-import static android.app.AppOpsManager.MODE_ALLOWED;
-import static android.app.AppOpsManager.MODE_ERRORED;
-import static android.app.AppOpsManager.OP_PICTURE_IN_PICTURE;
-
 import android.app.AlertDialog;
 import android.app.AppOpsManager;
 import android.content.Context;
@@ -34,6 +30,10 @@
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
 
+import static android.app.AppOpsManager.MODE_ALLOWED;
+import static android.app.AppOpsManager.MODE_ERRORED;
+import static android.app.AppOpsManager.OP_PICTURE_IN_PICTURE;
+
 public class PictureInPictureDetails extends AppInfoWithHeader
         implements OnPreferenceChangeListener {
 
@@ -124,7 +124,8 @@
     static int getPreferenceSummary(Context context, int uid, String packageName) {
         final boolean enabled = PictureInPictureDetails.getEnterPipStateForPackage(context, uid,
                 packageName);
-        return enabled ? R.string.picture_in_picture_on : R.string.picture_in_picture_off;
+        return enabled ? R.string.app_permission_summary_allowed
+                : R.string.app_permission_summary_not_allowed;
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/applications/ProcessStatsDetail.java b/src/com/android/settings/applications/ProcessStatsDetail.java
index 6c0928c..b9c3826 100644
--- a/src/com/android/settings/applications/ProcessStatsDetail.java
+++ b/src/com/android/settings/applications/ProcessStatsDetail.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.applications;
 
-import static com.android.settings.applications.AppHeaderController.ActionType;
-
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.ActivityManager.RunningServiceInfo;
@@ -53,7 +51,7 @@
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.SummaryPreference;
 import com.android.settings.applications.ProcStatsEntry.Service;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -61,6 +59,8 @@
 import java.util.HashMap;
 import java.util.List;
 
+import static com.android.settings.widget.EntityHeaderController.ActionType;
+
 public class ProcessStatsDetail extends SettingsPreferenceFragment {
 
     private static final String TAG = "ProcessStatsDetail";
@@ -126,19 +126,19 @@
             return;
         }
         final Activity activity = getActivity();
-        final Preference pref = FeatureFactory.getFactory(activity)
-            .getApplicationFeatureProvider(activity)
-            .newAppHeaderController(this, null /* appHeader */)
-            .setIcon(mApp.mUiTargetApp != null
-                ? IconDrawableFactory.newInstance(activity).getBadgedIcon(mApp.mUiTargetApp)
-                : new ColorDrawable(0))
-            .setLabel(mApp.mUiLabel)
-            .setPackageName(mApp.mPackage)
-            .setUid(mApp.mUiTargetApp != null
-                ? mApp.mUiTargetApp.uid
-                : UserHandle.USER_NULL)
-            .setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE)
-            .done(activity, getPrefContext());
+        final Preference pref = EntityHeaderController
+                .newInstance(activity, this, null /* appHeader */)
+                .setRecyclerView(getListView(), getLifecycle())
+                .setIcon(mApp.mUiTargetApp != null
+                        ? IconDrawableFactory.newInstance(activity).getBadgedIcon(mApp.mUiTargetApp)
+                        : new ColorDrawable(0))
+                .setLabel(mApp.mUiLabel)
+                .setPackageName(mApp.mPackage)
+                .setUid(mApp.mUiTargetApp != null
+                        ? mApp.mUiTargetApp.uid
+                        : UserHandle.USER_NULL)
+                .setButtonActions(ActionType.ACTION_APP_INFO, ActionType.ACTION_NONE)
+                .done(activity, getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
diff --git a/src/com/android/settings/applications/ResetAppPrefPreferenceController.java b/src/com/android/settings/applications/ResetAppPrefPreferenceController.java
index 41352bb..6c99a2e 100644
--- a/src/com/android/settings/applications/ResetAppPrefPreferenceController.java
+++ b/src/com/android/settings/applications/ResetAppPrefPreferenceController.java
@@ -22,10 +22,10 @@
 import android.text.TextUtils;
 
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnCreate;
-import com.android.settings.core.lifecycle.events.OnSaveInstanceState;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
 public class ResetAppPrefPreferenceController extends PreferenceController
         implements LifecycleObserver, OnCreate, OnSaveInstanceState {
diff --git a/src/com/android/settings/applications/SpecialAccessSettings.java b/src/com/android/settings/applications/SpecialAccessSettings.java
index 31f461c..069db76 100644
--- a/src/com/android/settings/applications/SpecialAccessSettings.java
+++ b/src/com/android/settings/applications/SpecialAccessSettings.java
@@ -14,20 +14,54 @@
 
 package com.android.settings.applications;
 
-import android.os.Bundle;
+import android.content.Context;
+import android.provider.SearchIndexableResource;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
 
-public class SpecialAccessSettings extends SettingsPreferenceFragment {
+import java.util.ArrayList;
+import java.util.List;
+
+public class SpecialAccessSettings extends DashboardFragment {
+
+    private static final String TAG = "SpecialAccessSettings";
 
     @Override
-    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
-        addPreferencesFromResource(R.xml.special_access);
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.special_access;
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        return null;
     }
 
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.SPECIAL_ACCESS;
     }
+
+    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
+                        boolean enabled) {
+                    final ArrayList<SearchIndexableResource> result = new ArrayList<>();
+
+                    final SearchIndexableResource sir = new SearchIndexableResource(context);
+                    sir.xmlResId = R.xml.special_access;
+                    result.add(sir);
+                    return result;
+                }
+            };
 }
diff --git a/src/com/android/settings/applications/WriteSettingsDetails.java b/src/com/android/settings/applications/WriteSettingsDetails.java
index aea05b3..50e6948 100644
--- a/src/com/android/settings/applications/WriteSettingsDetails.java
+++ b/src/com/android/settings/applications/WriteSettingsDetails.java
@@ -20,8 +20,6 @@
 import android.content.ActivityNotFoundException;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.provider.Settings;
@@ -38,8 +36,6 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 
-import java.util.List;
-
 public class WriteSettingsDetails extends AppInfoWithHeader implements OnPreferenceChangeListener,
         OnPreferenceClickListener {
 
@@ -182,47 +178,8 @@
     }
 
     public static CharSequence getSummary(Context context, WriteSettingsState writeSettingsState) {
-        return context.getString(writeSettingsState.isPermissible() ? R.string.write_settings_on :
-                R.string.write_settings_off);
-    }
-
-    public static CharSequence getSummary(Context context, String pkg) {
-        // first check if pkg is a system pkg
-        boolean isSystem = false;
-        PackageManager packageManager = context.getPackageManager();
-        try {
-            ApplicationInfo appInfo = packageManager.getApplicationInfo(pkg, 0);
-            if ((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
-                isSystem = true;
-            }
-        } catch (PackageManager.NameNotFoundException e) {
-            // pkg doesn't even exist?
-            Log.w(LOG_TAG, "Package " + pkg + " not found", e);
-            return context.getString(R.string.write_settings_off);
-        }
-
-        AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context
-                .APP_OPS_SERVICE);
-        List<AppOpsManager.PackageOps> packageOps = appOpsManager.getPackagesForOps(
-                APP_OPS_OP_CODE);
-        if (packageOps == null) {
-            return context.getString(R.string.write_settings_off);
-        }
-
-        int uid = isSystem ? 0 : -1;
-        for (AppOpsManager.PackageOps packageOp : packageOps) {
-            if (pkg.equals(packageOp.getPackageName())) {
-                uid = packageOp.getUid();
-                break;
-            }
-        }
-
-        if (uid == -1) {
-            return context.getString(R.string.write_settings_off);
-        }
-
-        int mode = appOpsManager.noteOpNoThrow(AppOpsManager.OP_WRITE_SETTINGS, uid, pkg);
-        return context.getString((mode == AppOpsManager.MODE_ALLOWED) ?
-                R.string.write_settings_on : R.string.write_settings_off);
+        return context.getString(writeSettingsState.isPermissible()
+                ? R.string.app_permission_summary_allowed
+                : R.string.app_permission_summary_not_allowed);
     }
 }
diff --git a/src/com/android/settings/applications/assist/AssistContextPreferenceController.java b/src/com/android/settings/applications/assist/AssistContextPreferenceController.java
index 05bc8d6..4a8e9c2 100644
--- a/src/com/android/settings/applications/assist/AssistContextPreferenceController.java
+++ b/src/com/android/settings/applications/assist/AssistContextPreferenceController.java
@@ -26,10 +26,10 @@
 
 import com.android.internal.app.AssistUtils;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceController.java b/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceController.java
index e44e70f..faee23d 100644
--- a/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceController.java
+++ b/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceController.java
@@ -28,10 +28,10 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.AssistUtils;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/com/android/settings/applications/assist/AssistScreenshotPreferenceController.java b/src/com/android/settings/applications/assist/AssistScreenshotPreferenceController.java
index 21dfe19..fb7be629b 100644
--- a/src/com/android/settings/applications/assist/AssistScreenshotPreferenceController.java
+++ b/src/com/android/settings/applications/assist/AssistScreenshotPreferenceController.java
@@ -26,10 +26,10 @@
 
 import com.android.internal.app.AssistUtils;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/com/android/settings/applications/assist/DefaultVoiceInputPreferenceController.java b/src/com/android/settings/applications/assist/DefaultVoiceInputPreferenceController.java
index 032fb13..3443a44 100644
--- a/src/com/android/settings/applications/assist/DefaultVoiceInputPreferenceController.java
+++ b/src/com/android/settings/applications/assist/DefaultVoiceInputPreferenceController.java
@@ -27,10 +27,10 @@
 import com.android.internal.app.AssistUtils;
 import com.android.settings.applications.defaultapps.DefaultAppInfo;
 import com.android.settings.applications.defaultapps.DefaultAppPreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.List;
 
diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java
index 824c0b1..3b8edf3 100644
--- a/src/com/android/settings/applications/assist/ManageAssist.java
+++ b/src/com/android/settings/applications/assist/ManageAssist.java
@@ -22,11 +22,11 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.gestures.AssistGesturePreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -38,6 +38,7 @@
 public class ManageAssist extends DashboardFragment {
 
     private static final String TAG = "ManageAssist";
+    private static final String KEY_ASSIST = "gesture_assist_application";
 
     @Override
     protected String getLogTag() {
@@ -71,7 +72,7 @@
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new DefaultAssistPreferenceController(context));
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
         controllers.add(new AssistContextPreferenceController(context, lifecycle));
         controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
         controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
@@ -94,5 +95,12 @@
                 public List<PreferenceController> getPreferenceControllers(Context context) {
                     return buildPreferenceControllers(context, null /* lifecycle */);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add(KEY_ASSIST);
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java b/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java
index 2e93876..a89766f 100644
--- a/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java
+++ b/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceController.java
@@ -26,6 +26,8 @@
 import android.support.v7.preference.Preference;
 import android.text.TextUtils;
 
+import com.android.settings.applications.PackageManagerWrapper;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -106,11 +108,10 @@
         return false;
     }
 
-    public static boolean isHomeDefault(String pkg, Context context) {
-        ArrayList<ResolveInfo> homeActivities = new ArrayList<>();
-        PackageManager pm = context.getPackageManager();
+    public static boolean isHomeDefault(String pkg, PackageManagerWrapper pm) {
+        final ArrayList<ResolveInfo> homeActivities = new ArrayList<>();
         ComponentName def = pm.getHomeActivities(homeActivities);
 
-        return def != null && def.getPackageName().equals(pkg);
+        return def == null || def.getPackageName().equals(pkg);
     }
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
new file mode 100644
index 0000000..baab3fc
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.app.Fragment;
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.text.Spannable;
+import android.text.SpannableString;
+import android.text.TextUtils;
+import android.text.style.ForegroundColorSpan;
+import android.util.Log;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Controller that shows and updates the bluetooth device name
+ */
+public class BluetoothDeviceNamePreferenceController extends PreferenceController implements
+        LifecycleObserver, OnStart, OnStop {
+    private static final String TAG = "BluetoothNamePrefCtrl";
+
+    public static final String KEY_DEVICE_NAME = "device_name";
+    private int mAccentColor;
+    private Fragment mFragment;
+    private LocalBluetoothManager mLocalManager;
+    private LocalBluetoothAdapter mLocalAdapter;
+    private Preference mPreference;
+
+    public BluetoothDeviceNamePreferenceController(Context context, Fragment fragment,
+            Lifecycle lifecycle) {
+        this(context, fragment, (LocalBluetoothAdapter) null);
+
+        mLocalManager = Utils.getLocalBtManager(context);
+        if (mLocalManager == null) {
+            Log.e(TAG, "Bluetooth is not supported on this device");
+            return;
+        }
+        mLocalAdapter = mLocalManager.getBluetoothAdapter();
+        lifecycle.addObserver(this);
+    }
+
+    @VisibleForTesting
+    BluetoothDeviceNamePreferenceController(Context context, Fragment fragment,
+            LocalBluetoothAdapter localAdapter) {
+        super(context);
+        mAccentColor = com.android.settingslib.Utils.getColorAccent(context);
+        mFragment = fragment;
+        mLocalAdapter = localAdapter;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        mPreference = screen.findPreference(KEY_DEVICE_NAME);
+    }
+
+    @Override
+    public void onStart() {
+        mContext.registerReceiver(mReceiver,
+                new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED));
+    }
+
+    @Override
+    public void onStop() {
+        mContext.unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mLocalAdapter != null;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_DEVICE_NAME;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        updateDeviceName(preference, mLocalAdapter.getName());
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_DEVICE_NAME.equals(preference.getKey())) {
+            new BluetoothNameDialogFragment().show(mFragment.getFragmentManager(), "rename device");
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Create preference to show bluetooth device name
+     *
+     * @param screen to add the preference in
+     * @param order to decide position of the preference
+     * @return bluetooth preference that created in this method
+     */
+    public Preference createBluetoothDeviceNamePreference(PreferenceScreen screen, int order) {
+        mPreference = new Preference(screen.getContext());
+        mPreference.setOrder(order);
+        mPreference.setKey(KEY_DEVICE_NAME);
+        screen.addPreference(mPreference);
+
+        return mPreference;
+    }
+
+    /**
+     * Update device summary with {@code deviceName}, where {@code deviceName} has accent color
+     *
+     * @param preference to set the summary for
+     * @param deviceName bluetooth device name to show in the summary
+     */
+    public void updateDeviceName(final Preference preference, final String deviceName) {
+        if (deviceName == null) {
+            // TODO: show error message in preference subtitle
+            return;
+        }
+        final Spannable spannableName = new SpannableString(deviceName);
+        spannableName.setSpan(new ForegroundColorSpan(mAccentColor), 0,
+                spannableName.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        final CharSequence summary = TextUtils.expandTemplate(
+                mContext.getText(R.string.bluetooth_device_name_summary), spannableName);
+
+        preference.setSummary(summary);
+    }
+
+    /**
+     * Receiver that listens to {@link BluetoothAdapter#ACTION_LOCAL_NAME_CHANGED} and updates the
+     * device name if possible
+     */
+    @VisibleForTesting
+    final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            final String action = intent.getAction();
+
+            if (TextUtils.equals(action, BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) {
+                if (mPreference != null && mLocalAdapter != null && mLocalAdapter.isEnabled()) {
+                    updateDeviceName(mPreference, mLocalAdapter.getName());
+                }
+            }
+        }
+    };
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java b/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java
index 508d6c9..6d474ee 100644
--- a/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceController.java
@@ -15,22 +15,27 @@
  */
 package com.android.settings.bluetooth;
 
+import android.app.Fragment;
 import android.content.Context;
+import android.os.UserHandle;
+import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 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 com.android.settings.core.lifecycle.events.OnStart;
-import com.android.settings.core.lifecycle.events.OnStop;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.MasterSwitchController;
 import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 public class BluetoothMasterSwitchPreferenceController extends PreferenceController
         implements OnSummaryChangeListener,
@@ -43,19 +48,27 @@
     private BluetoothEnabler mBluetoothEnabler;
     private BluetoothSummaryUpdater mSummaryUpdater;
     private RestrictionUtils mRestrictionUtils;
+    private Fragment mFragment;
+    private SettingsActivity mActivity;
+    private BluetoothFeatureProvider mBluetoothFeatureProvider;
 
     public BluetoothMasterSwitchPreferenceController(Context context,
-            LocalBluetoothManager bluetoothManager) {
-        this(context, bluetoothManager, new RestrictionUtils());
+            LocalBluetoothManager bluetoothManager, Fragment fragment, SettingsActivity activity) {
+        this(context, bluetoothManager, new RestrictionUtils(), fragment, activity);
     }
 
     @VisibleForTesting
     public BluetoothMasterSwitchPreferenceController(Context context,
-            LocalBluetoothManager bluetoothManager, RestrictionUtils restrictionUtils) {
+            LocalBluetoothManager bluetoothManager, RestrictionUtils restrictionUtils,
+            Fragment fragment, SettingsActivity activity) {
         super(context);
         mBluetoothManager = bluetoothManager;
         mSummaryUpdater = new BluetoothSummaryUpdater(mContext, this, mBluetoothManager);
         mRestrictionUtils = restrictionUtils;
+        mFragment = fragment;
+        mActivity = activity;
+        mBluetoothFeatureProvider = FeatureFactory.getFactory(
+                mContext).getBluetoothFeatureProvider(mContext);
     }
 
     @Override
@@ -63,10 +76,23 @@
         super.displayPreference(screen);
         mBtPreference = (MasterSwitchPreference) screen.findPreference(KEY_TOGGLE_BLUETOOTH);
         mBluetoothEnabler = new BluetoothEnabler(mContext,
-            new MasterSwitchController(mBtPreference),
-            FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(), mBluetoothManager,
-            MetricsEvent.ACTION_SETTINGS_MASTER_SWITCH_BLUETOOTH_TOGGLE,
-            mRestrictionUtils);
+                new MasterSwitchController(mBtPreference),
+                FeatureFactory.getFactory(mContext).getMetricsFeatureProvider(), mBluetoothManager,
+                MetricsEvent.ACTION_SETTINGS_MASTER_SWITCH_BLUETOOTH_TOGGLE,
+                mRestrictionUtils);
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_TOGGLE_BLUETOOTH.equals(preference.getKey())) {
+            final String fragmentClass = mBluetoothFeatureProvider.isPairingPageEnabled() ?
+                    BluetoothSettings.class.getName() :
+                    BluetoothSettingsObsolete.class.getName();
+            mActivity.startPreferencePanelAsUser(mFragment, fragmentClass, null, R.string.bluetooth,
+                    null, new UserHandle(UserHandle.myUserId()));
+            return true;
+        }
+        return super.handlePreferenceTreeClick(preference);
     }
 
     @Override
@@ -79,6 +105,7 @@
         return KEY_TOGGLE_BLUETOOTH;
     }
 
+    @Override
     public void onResume() {
         mSummaryUpdater.register(true);
     }
diff --git a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
index 5a3bc36..484d4b3 100644
--- a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
@@ -58,7 +58,7 @@
 
     // accessed from inner class (not private to avoid thunks)
     static final String TAG = "BluetoothNameDialogFragment";
-    final LocalBluetoothAdapter mLocalAdapter;
+    LocalBluetoothAdapter mLocalAdapter;
     EditText mDeviceNameView;
 
     // This flag is set when the name is updated by code, to distinguish from user changes
@@ -85,17 +85,20 @@
         }
     };
 
-    public BluetoothNameDialogFragment() {
-        LocalBluetoothManager localManager = Utils.getLocalBtManager(getActivity());
-        mLocalAdapter = localManager.getBluetoothAdapter();
-    }
-
     @Override
     public int getMetricsCategory() {
         return MetricsProto.MetricsEvent.DIALOG_BLUETOOTH_RENAME;
     }
 
     @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        LocalBluetoothManager localManager = Utils.getLocalBtManager(getActivity());
+        mLocalAdapter = localManager.getBluetoothAdapter();
+    }
+
+    @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         String deviceName = mLocalAdapter.getName();
         if (savedInstanceState != null) {
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDetail.java b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
new file mode 100644
index 0000000..7e2978d
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDetail.java
@@ -0,0 +1,194 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.R;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.search.Indexable;
+import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.widget.FooterPreference;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * BluetoothPairingDetail is a page to scan bluetooth devices and pair them.
+ */
+public class BluetoothPairingDetail extends DeviceListPreferenceFragment implements
+        Indexable {
+    private static final String TAG = "BluetoothPairingDetail";
+
+    @VisibleForTesting
+    static final String KEY_AVAIL_DEVICES = "available_devices";
+    @VisibleForTesting
+    static final String KEY_FOOTER_PREF = "footer_preference";
+
+    @VisibleForTesting
+    BluetoothDeviceNamePreferenceController mDeviceNamePrefController;
+    @VisibleForTesting
+    BluetoothProgressCategory mAvailableDevicesCategory;
+    @VisibleForTesting
+    FooterPreference mFooterPreference;
+
+    private boolean mInitialScanStarted;
+
+    public BluetoothPairingDetail() {
+        super(DISALLOW_CONFIG_BLUETOOTH);
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mInitialScanStarted = false;
+    }
+
+    @Override
+    public void onStart() {
+        super.onStart();
+
+        if (mLocalAdapter != null) {
+            updateContent(mLocalAdapter.getBluetoothState());
+            mAvailableDevicesCategory.setProgress(mLocalAdapter.isDiscovering());
+        }
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+
+        // Make the device only visible to connected devices.
+        mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
+        mLocalAdapter.stopScanning();
+    }
+
+    @Override
+    void initPreferencesFromPreferenceScreen() {
+        mAvailableDevicesCategory = (BluetoothProgressCategory) findPreference(KEY_AVAIL_DEVICES);
+        mFooterPreference = (FooterPreference) findPreference(KEY_FOOTER_PREF);
+        mFooterPreference.setSelectable(false);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        //TODO(b/38383542): add bluetooth pairing category
+        return MetricsEvent.BLUETOOTH;
+    }
+
+    @VisibleForTesting
+    void startScanning() {
+        if (mAvailableDevicesCategory != null) {
+            removeAllDevices();
+        }
+
+        mLocalManager.getCachedDeviceManager().clearNonBondedDevices();
+        mInitialScanStarted = true;
+        mLocalAdapter.startScanning(true);
+    }
+
+    @Override
+    void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
+        mLocalAdapter.stopScanning();
+        super.onDevicePreferenceClick(btPreference);
+    }
+
+    @Override
+    public void onScanningStateChanged(boolean started) {
+        mAvailableDevicesCategory.setProgress(started);
+    }
+
+    @VisibleForTesting
+    void updateContent(int bluetoothState) {
+        switch (bluetoothState) {
+            case BluetoothAdapter.STATE_ON:
+                mDevicePreferenceMap.clear();
+                mLocalAdapter.setBluetoothEnabled(true);
+
+                addDeviceCategory(mAvailableDevicesCategory,
+                        R.string.bluetooth_preference_found_devices,
+                        BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER, mInitialScanStarted);
+                updateFooterPreference(mFooterPreference);
+
+                if (!mInitialScanStarted) {
+                    startScanning();
+                }
+
+                // mLocalAdapter.setScanMode is internally synchronized so it is okay for multiple
+                // threads to execute.
+                mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+                break;
+
+            case BluetoothAdapter.STATE_OFF:
+                finish();
+                break;
+        }
+    }
+
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
+        super.onBluetoothStateChanged(bluetoothState);
+        updateContent(bluetoothState);
+    }
+
+    @Override
+    public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
+        if (bondState == BluetoothDevice.BOND_BONDED) {
+            // If one device is connected(bonded), then close this fragment.
+            finish();
+        }
+    }
+
+    @Override
+    protected int getHelpResource() {
+        return R.string.help_url_bluetooth;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.bluetooth_pairing_detail;
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        List<PreferenceController> controllers = new ArrayList<>();
+        mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
+                this, getLifecycle());
+        controllers.add(mDeviceNamePrefController);
+
+        return controllers;
+    }
+
+    @Override
+    public String getDeviceListKey() {
+        return KEY_AVAIL_DEVICES;
+    }
+
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingPreferenceController.java b/src/com/android/settings/bluetooth/BluetoothPairingPreferenceController.java
new file mode 100644
index 0000000..ab99aad
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothPairingPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.content.Context;
+import android.support.v14.preference.PreferenceFragment;
+import android.support.v7.preference.Preference;
+import android.os.UserHandle;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.R;
+
+
+/**
+ * Controller that shows and updates the bluetooth device name
+ */
+public class BluetoothPairingPreferenceController extends PreferenceController {
+    private static final String TAG = "BluetoothPairingPrefCtrl";
+
+    public static final String KEY_PAIRING = "pref_bt_pairing";
+    private PreferenceFragment mFragment;
+    private SettingsActivity mActivity;
+    private Preference mPreference;
+
+    public BluetoothPairingPreferenceController(Context context, PreferenceFragment fragment,
+            SettingsActivity activity) {
+        super(context);
+        mFragment = fragment;
+        mActivity = activity;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_PAIRING;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (KEY_PAIRING.equals(preference.getKey())) {
+            mActivity.startPreferencePanelAsUser(mFragment, BluetoothPairingDetail.class.getName(),
+                    null, R.string.bluetooth_pairing_page_title, null,
+                    new UserHandle(UserHandle.myUserId()));
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Create pairing preference to jump to pairing page
+     *
+     * @return bluetooth preference that created in this method
+     */
+    public Preference createBluetoothPairingPreference(int order) {
+        mPreference = new Preference(mFragment.getPreferenceScreen().getContext());
+        mPreference.setKey(KEY_PAIRING);
+        mPreference.setIcon(R.drawable.ic_add);
+        mPreference.setOrder(order);
+        mPreference.setTitle(R.string.bluetooth_pairing_pref_title);
+
+        return mPreference;
+    }
+
+}
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
index 7eb7fdd..59496dd 100644
--- a/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionRequest.java
@@ -17,6 +17,7 @@
 package com.android.settings.bluetooth;
 
 import android.app.Notification;
+import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
 import android.bluetooth.BluetoothDevice;
@@ -45,6 +46,12 @@
     private static final String NOTIFICATION_TAG_PBAP = "Phonebook Access" ;
     private static final String NOTIFICATION_TAG_MAP = "Message Access";
     private static final String NOTIFICATION_TAG_SAP = "SIM Access";
+    /* TODO: Consolidate this multiple defined but common channel ID with other
+     * handlers that declare and use the same channel ID */
+    private static final String BLUETOOTH_NOTIFICATION_CHANNEL =
+        "bluetooth_notification_channel";
+
+    private NotificationChannel mNotificationChannel = null;
 
     Context mContext;
     int mRequestType;
@@ -151,7 +158,16 @@
                                 deviceAlias, deviceAlias);
                         break;
                 }
-                Notification notification = new Notification.Builder(context)
+                NotificationManager notificationManager =
+                    (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
+                if (mNotificationChannel == null) {
+                    mNotificationChannel = new NotificationChannel(BLUETOOTH_NOTIFICATION_CHANNEL,
+                            context.getString(R.string.bluetooth),
+                            NotificationManager.IMPORTANCE_HIGH);
+                    notificationManager.createNotificationChannel(mNotificationChannel);
+                }
+                Notification notification = new Notification.Builder(context,
+                        BLUETOOTH_NOTIFICATION_CHANNEL)
                         .setContentTitle(title)
                         .setTicker(message)
                         .setContentText(message)
@@ -169,9 +185,6 @@
 
                 notification.flags |= Notification.FLAG_NO_CLEAR; // Cannot be set with the builder.
 
-                NotificationManager notificationManager =
-                    (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-
                 notificationManager.notify(getNotificationTag(mRequestType), NOTIFICATION_ID,
                         notification);
             }
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index d41e1e0..b37770a 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -19,7 +19,6 @@
 import android.app.Activity;
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
-import android.content.BroadcastReceiver;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
@@ -29,10 +28,8 @@
 import android.provider.Settings;
 import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceCategory;
 import android.support.v7.preference.PreferenceGroup;
 import android.support.v7.preference.PreferenceScreen;
-import android.text.BidiFormatter;
 import android.text.Spannable;
 import android.text.style.TextAppearanceSpan;
 import android.util.Log;
@@ -49,10 +46,10 @@
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.location.ScanningSettings;
+import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
-import com.android.settings.widget.FooterPreference;
 import com.android.settings.widget.GearPreference;
 import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
 import com.android.settings.widget.SwitchBar;
@@ -61,10 +58,10 @@
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.widget.FooterPreference;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Locale;
 import java.util.Set;
 
 import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
@@ -72,13 +69,12 @@
 /**
  * BluetoothSettings is the Settings screen for Bluetooth configuration and
  * connection management.
+ *
  */
 public class BluetoothSettings extends DeviceListPreferenceFragment implements Indexable {
     private static final String TAG = "BluetoothSettings";
 
-    private static final int MENU_ID_SCAN = Menu.FIRST;
-    private static final int MENU_ID_RENAME_DEVICE = Menu.FIRST + 1;
-    private static final int MENU_ID_SHOW_RECEIVED = Menu.FIRST + 2;
+    private static final int MENU_ID_SHOW_RECEIVED = Menu.FIRST + 1;
 
     /* Private intent to show the list of received files */
     private static final String BTOPP_ACTION_OPEN_RECEIVED_FILES =
@@ -86,56 +82,31 @@
     private static final String BTOPP_PACKAGE =
             "com.android.bluetooth";
 
-    private static final String KEY_PAIRED_DEVICES = "paired_devices";
+    private static final int PAIRED_DEVICE_ORDER = 1;
+    private static final int PAIRING_PREF_ORDER = 2;
 
-    private static View mSettingsDialogView = null;
+    @VisibleForTesting
+    static final String KEY_PAIRED_DEVICES = "paired_devices";
+    @VisibleForTesting
+    static final String KEY_FOOTER_PREF = "footer_preference";
 
+    @VisibleForTesting
+    PreferenceGroup mPairedDevicesCategory;
+    @VisibleForTesting
+    FooterPreference mFooterPreference;
+    private Preference mPairingPreference;
     private BluetoothEnabler mBluetoothEnabler;
 
-    private PreferenceGroup mPairedDevicesCategory;
-    private PreferenceGroup mAvailableDevicesCategory;
-    private boolean mAvailableDevicesCategoryIsPresent;
-
-    private boolean mInitialScanStarted;
-    private boolean mInitiateDiscoverable;
-
     private SwitchBar mSwitchBar;
 
     private final IntentFilter mIntentFilter;
+    private BluetoothDeviceNamePreferenceController mDeviceNamePrefController;
+    @VisibleForTesting
+    BluetoothPairingPreferenceController mPairingPrefController;
 
     // For Search
-    private static final String DATA_KEY_REFERENCE = "main_toggle_bluetooth";
-
-    // accessed from inner class (not private to avoid thunks)
-    FooterPreference mMyDevicePreference;
-
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            final String action = intent.getAction();
-            final int state =
-                    intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
-
-            if (action.equals(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) {
-                updateDeviceName(context);
-            }
-
-            if (state == BluetoothAdapter.STATE_ON) {
-                mInitiateDiscoverable = true;
-            }
-        }
-
-        private void updateDeviceName(Context context) {
-            if (mLocalAdapter.isEnabled() && mMyDevicePreference != null) {
-                final Resources res = context.getResources();
-                final Locale locale = res.getConfiguration().getLocales().get(0);
-                final BidiFormatter bidiFormatter = BidiFormatter.getInstance(locale);
-                mMyDevicePreference.setTitle(res.getString(
-                        R.string.bluetooth_is_visible_message,
-                        bidiFormatter.unicodeWrap(mLocalAdapter.getName())));
-            }
-        }
-    };
+    @VisibleForTesting
+    static final String DATA_KEY_REFERENCE = "main_toggle_bluetooth";
 
     public BluetoothSettings() {
         super(DISALLOW_CONFIG_BLUETOOTH);
@@ -150,15 +121,13 @@
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
         super.onActivityCreated(savedInstanceState);
-        mInitialScanStarted = false;
-        mInitiateDiscoverable = true;
 
         final SettingsActivity activity = (SettingsActivity) getActivity();
         mSwitchBar = activity.getSwitchBar();
 
         mBluetoothEnabler = new BluetoothEnabler(activity, new SwitchBarController(mSwitchBar),
-            mMetricsFeatureProvider, Utils.getLocalBtManager(activity),
-            MetricsEvent.ACTION_BLUETOOTH_TOGGLE);
+                mMetricsFeatureProvider, Utils.getLocalBtManager(activity),
+                MetricsEvent.ACTION_BLUETOOTH_TOGGLE);
         mBluetoothEnabler.setupSwitchController();
     }
 
@@ -170,22 +139,11 @@
     }
 
     @Override
-    void addPreferencesForActivity() {
-        final Context prefContext = getPrefContext();
-        mPairedDevicesCategory = new PreferenceCategory(prefContext);
-        mPairedDevicesCategory.setKey(KEY_PAIRED_DEVICES);
-        mPairedDevicesCategory.setOrder(1);
-        getPreferenceScreen().addPreference(mPairedDevicesCategory);
-
-        mAvailableDevicesCategory = new BluetoothProgressCategory(prefContext);
-        mAvailableDevicesCategory.setSelectable(false);
-        mAvailableDevicesCategory.setOrder(2);
-        getPreferenceScreen().addPreference(mAvailableDevicesCategory);
-
-        mMyDevicePreference = mFooterPreferenceMixin.createFooterPreference();
-        mMyDevicePreference.setSelectable(false);
-
-        setHasOptionsMenu(true);
+    void initPreferencesFromPreferenceScreen() {
+        mPairingPreference = mPairingPrefController.createBluetoothPairingPreference(
+                PAIRING_PREF_ORDER);
+        mFooterPreference = (FooterPreference) findPreference(KEY_FOOTER_PREF);
+        mPairedDevicesCategory = (PreferenceGroup) findPreference(KEY_PAIRED_DEVICES);
     }
 
     @Override
@@ -196,19 +154,14 @@
             mBluetoothEnabler.resume(getActivity());
         }
         super.onStart();
-
-        mInitiateDiscoverable = true;
-
         if (isUiRestricted()) {
-            setDeviceListGroup(getPreferenceScreen());
+            getPreferenceScreen().removeAll();
             if (!isUiRestrictedByOnlyAdmin()) {
                 getEmptyTextView().setText(R.string.bluetooth_empty_list_user_restricted);
             }
-            removeAllDevices();
             return;
         }
 
-        getActivity().registerReceiver(mReceiver, mIntentFilter);
         if (mLocalAdapter != null) {
             updateContent(mLocalAdapter.getBluetoothState());
         }
@@ -227,8 +180,6 @@
         if (isUiRestricted()) {
             return;
         }
-
-        getActivity().unregisterReceiver(mReceiver);
     }
 
     @Override
@@ -237,16 +188,6 @@
         // If the user is not allowed to configure bluetooth, do not show the menu.
         if (isUiRestricted()) return;
 
-        boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
-        boolean isDiscovering = mLocalAdapter.isDiscovering();
-        int textId = isDiscovering ? R.string.bluetooth_searching_for_devices :
-                R.string.bluetooth_search_for_devices;
-        menu.add(Menu.NONE, MENU_ID_SCAN, 0, textId)
-                .setEnabled(bluetoothIsEnabled && !isDiscovering)
-                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
-        menu.add(Menu.NONE, MENU_ID_RENAME_DEVICE, 0, R.string.bluetooth_rename_device)
-                .setEnabled(bluetoothIsEnabled)
-                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
         menu.add(Menu.NONE, MENU_ID_SHOW_RECEIVED, 0, R.string.bluetooth_show_received_files)
                 .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
         super.onCreateOptionsMenu(menu, inflater);
@@ -255,21 +196,6 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case MENU_ID_SCAN:
-                if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
-                    mMetricsFeatureProvider.action(getActivity(),
-                            MetricsEvent.ACTION_BLUETOOTH_SCAN);
-                    startScanning();
-                }
-                return true;
-
-            case MENU_ID_RENAME_DEVICE:
-                mMetricsFeatureProvider.action(getActivity(),
-                        MetricsEvent.ACTION_BLUETOOTH_RENAME);
-                new BluetoothNameDialogFragment().show(
-                        getFragmentManager(), "rename device");
-                return true;
-
             case MENU_ID_SHOW_RECEIVED:
                 mMetricsFeatureProvider.action(getActivity(),
                         MetricsEvent.ACTION_BLUETOOTH_FILES);
@@ -281,102 +207,37 @@
         return super.onOptionsItemSelected(item);
     }
 
-    private void startScanning() {
-        if (isUiRestricted()) {
-            return;
-        }
-
-        if (!mAvailableDevicesCategoryIsPresent) {
-            getPreferenceScreen().addPreference(mAvailableDevicesCategory);
-            mAvailableDevicesCategoryIsPresent = true;
-        }
-
-        if (mAvailableDevicesCategory != null) {
-            setDeviceListGroup(mAvailableDevicesCategory);
-            removeAllDevices();
-        }
-
-        mLocalManager.getCachedDeviceManager().clearNonBondedDevices();
-        mAvailableDevicesCategory.removeAll();
-        mInitialScanStarted = true;
-        mLocalAdapter.startScanning(true);
-    }
-
     @Override
-    void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
-        mLocalAdapter.stopScanning();
-        super.onDevicePreferenceClick(btPreference);
-    }
-
-    private void addDeviceCategory(PreferenceGroup preferenceGroup, int titleId,
-            BluetoothDeviceFilter.Filter filter, boolean addCachedDevices) {
-        cacheRemoveAllPrefs(preferenceGroup);
-        preferenceGroup.setTitle(titleId);
-        setFilter(filter);
-        setDeviceListGroup(preferenceGroup);
-        if (addCachedDevices) {
-            addCachedDevices();
-        }
-        preferenceGroup.setEnabled(true);
-        removeCachedPrefs(preferenceGroup);
+    public String getDeviceListKey() {
+        return KEY_PAIRED_DEVICES;
     }
 
     private void updateContent(int bluetoothState) {
-        final PreferenceScreen preferenceScreen = getPreferenceScreen();
         int messageId = 0;
 
         switch (bluetoothState) {
             case BluetoothAdapter.STATE_ON:
+                displayEmptyMessage(false);
                 mDevicePreferenceMap.clear();
 
                 if (isUiRestricted()) {
                     messageId = R.string.bluetooth_empty_list_user_restricted;
                     break;
                 }
-                getPreferenceScreen().removeAll();
-                getPreferenceScreen().addPreference(mPairedDevicesCategory);
-                getPreferenceScreen().addPreference(mAvailableDevicesCategory);
-                getPreferenceScreen().addPreference(mMyDevicePreference);
 
-                // Paired devices category
                 addDeviceCategory(mPairedDevicesCategory,
                         R.string.bluetooth_preference_paired_devices,
                         BluetoothDeviceFilter.BONDED_DEVICE_FILTER, true);
-                int numberOfPairedDevices = mPairedDevicesCategory.getPreferenceCount();
+                mPairedDevicesCategory.addPreference(mPairingPreference);
+                updateFooterPreference(mFooterPreference);
 
-                if (isUiRestricted() || numberOfPairedDevices <= 0) {
-                    if (preferenceScreen.findPreference(KEY_PAIRED_DEVICES) != null) {
-                        preferenceScreen.removePreference(mPairedDevicesCategory);
-                    }
-                } else {
-                    if (preferenceScreen.findPreference(KEY_PAIRED_DEVICES) == null) {
-                        preferenceScreen.addPreference(mPairedDevicesCategory);
-                    }
-                }
-
-                // Available devices category
-                addDeviceCategory(mAvailableDevicesCategory,
-                        R.string.bluetooth_preference_found_devices,
-                        BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER, mInitialScanStarted);
-
-                if (!mInitialScanStarted) {
-                    startScanning();
-                }
-
-                updateMyDevicePreference(mMyDevicePreference);
                 getActivity().invalidateOptionsMenu();
-
-                // mLocalAdapter.setScanMode is internally synchronized so it is okay for multiple
-                // threads to execute.
-                if (mInitiateDiscoverable) {
-                    // Make the device visible to other devices.
-                    mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
-                    mInitiateDiscoverable = false;
-                }
+                mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
                 return; // not break
 
             case BluetoothAdapter.STATE_TURNING_OFF:
                 messageId = R.string.bluetooth_turning_off;
+                mLocalAdapter.stopScanning();
                 break;
 
             case BluetoothAdapter.STATE_OFF:
@@ -388,12 +249,10 @@
 
             case BluetoothAdapter.STATE_TURNING_ON:
                 messageId = R.string.bluetooth_turning_on;
-                mInitialScanStarted = false;
                 break;
         }
 
-        setDeviceListGroup(preferenceScreen);
-        removeAllDevices();
+        displayEmptyMessage(true);
         if (messageId != 0) {
             getEmptyTextView().setText(messageId);
         }
@@ -432,18 +291,21 @@
                 }
             });
         }
-        getPreferenceScreen().removeAll();
         setTextSpan(emptyView.getText(), briefText);
     }
 
+    @VisibleForTesting
+    void displayEmptyMessage(boolean display) {
+        final Activity activity = getActivity();
+        activity.findViewById(android.R.id.list_container).setVisibility(
+                display ? View.INVISIBLE : View.VISIBLE);
+        activity.findViewById(android.R.id.empty).setVisibility(
+                display ? View.VISIBLE : View.GONE);
+    }
+
     @Override
     public void onBluetoothStateChanged(int bluetoothState) {
         super.onBluetoothStateChanged(bluetoothState);
-        // If BT is turned off/on staying in the same BT Settings screen
-        // discoverability to be set again
-        if (BluetoothAdapter.STATE_ON == bluetoothState) {
-            mInitiateDiscoverable = true;
-        }
         updateContent(bluetoothState);
     }
 
@@ -451,15 +313,14 @@
     public void onScanningStateChanged(boolean started) {
         super.onScanningStateChanged(started);
         // Update options' enabled state
-        if (getActivity() != null) {
-            getActivity().invalidateOptionsMenu();
+        final Activity activity = getActivity();
+        if (activity != null) {
+            activity.invalidateOptionsMenu();
         }
     }
 
     @Override
     public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
-        setDeviceListGroup(getPreferenceScreen());
-        removeAllDevices();
         updateContent(mLocalAdapter.getBluetoothState());
     }
 
@@ -468,21 +329,12 @@
         if (text instanceof Spannable) {
             Spannable boldSpan = (Spannable) text;
             boldSpan.setSpan(
-                new TextAppearanceSpan(getActivity(), android.R.style.TextAppearance_Medium), 0,
-                briefText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                    new TextAppearanceSpan(getActivity(), android.R.style.TextAppearance_Medium), 0,
+                    briefText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
         }
     }
 
     @VisibleForTesting
-    void updateMyDevicePreference(Preference myDevicePreference) {
-        final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
-
-        myDevicePreference.setTitle(getString(
-                R.string.bluetooth_footer_mac_message,
-                bidiFormatter.unicodeWrap(mLocalAdapter.getAddress())));
-    }
-
-    @VisibleForTesting
     void setLocalBluetoothAdapter(LocalBluetoothAdapter localAdapter) {
         mLocalAdapter = localAdapter;
     }
@@ -515,6 +367,7 @@
      */
     @Override
     void initDevicePreference(BluetoothDevicePreference preference) {
+        preference.setOrder(PAIRED_DEVICE_ORDER);
         CachedBluetoothDevice cachedDevice = preference.getCachedDevice();
         if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED) {
             // Only paired device have an associated advanced settings screen
@@ -539,7 +392,15 @@
 
     @Override
     protected List<PreferenceController> getPreferenceControllers(Context context) {
-        return null;
+        List<PreferenceController> controllers = new ArrayList<>();
+        mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
+                this, getLifecycle());
+        mPairingPrefController = new BluetoothPairingPreferenceController(context, this,
+                (SettingsActivity) getActivity());
+        controllers.add(mDeviceNamePrefController);
+        controllers.add(mPairingPrefController);
+
+        return controllers;
     }
 
     @VisibleForTesting
@@ -600,23 +461,18 @@
                     data.key = DATA_KEY_REFERENCE;
                     result.add(data);
 
-                    // Add cached paired BT devices
-                    LocalBluetoothManager lbtm = Utils.getLocalBtManager(context);
-                    // LocalBluetoothManager.getInstance can return null if the device does not
-                    // support bluetooth (e.g. the emulator).
-                    if (lbtm != null) {
-                        Set<BluetoothDevice> bondedDevices =
-                                lbtm.getBluetoothAdapter().getBondedDevices();
-
-                        for (BluetoothDevice device : bondedDevices) {
-                            data = new SearchIndexableRaw(context);
-                            data.title = device.getName();
-                            data.screenTitle = res.getString(R.string.bluetooth_settings);
-                            data.enabled = enabled;
-                            result.add(data);
-                        }
-                    }
+                    // Removed paired bluetooth device indexing. See BluetoothSettingsObsolete.java.
                     return result;
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    if (!FeatureFactory.getFactory(context).getBluetoothFeatureProvider(
+                            context).isPairingPageEnabled()) {
+                        keys.add(DATA_KEY_REFERENCE);
+                    }
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/bluetooth/BluetoothSettingsObsolete.java b/src/com/android/settings/bluetooth/BluetoothSettingsObsolete.java
new file mode 100644
index 0000000..207d313
--- /dev/null
+++ b/src/com/android/settings/bluetooth/BluetoothSettingsObsolete.java
@@ -0,0 +1,625 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
+
+import android.app.Activity;
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceCategory;
+import android.support.v7.preference.PreferenceGroup;
+import android.support.v7.preference.PreferenceScreen;
+import android.text.BidiFormatter;
+import android.text.Spannable;
+import android.text.style.TextAppearanceSpan;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.TextView;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.LinkifyUtils;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.location.ScanningSettings;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.search.Indexable;
+import com.android.settings.search.SearchIndexableRaw;
+import com.android.settings.widget.GearPreference;
+import com.android.settings.widget.SummaryUpdater.OnSummaryChangeListener;
+import com.android.settings.widget.SwitchBar;
+import com.android.settings.widget.SwitchBarController;
+import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.widget.FooterPreference;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * BluetoothSettingsObsolete is the Settings screen for Bluetooth configuration and
+ * connection management.
+ *
+ * This fragment stores old implementation of {@link BluetoothSettings} and is
+ * deprecated, please use {@link BluetoothSettings} instead.
+ */
+@Deprecated
+public class BluetoothSettingsObsolete extends DeviceListPreferenceObsoleteFragment
+        implements Indexable {
+    private static final String TAG = "BluetoothSettingsObsolete";
+
+    private static final int MENU_ID_SCAN = Menu.FIRST;
+    private static final int MENU_ID_SHOW_RECEIVED = Menu.FIRST + 1;
+
+    /* Private intent to show the list of received files */
+    private static final String BTOPP_ACTION_OPEN_RECEIVED_FILES =
+            "android.btopp.intent.action.OPEN_RECEIVED_FILES";
+    private static final String BTOPP_PACKAGE =
+            "com.android.bluetooth";
+
+    private static final String KEY_PAIRED_DEVICES = "paired_devices";
+
+    private static View mSettingsDialogView = null;
+
+    private BluetoothEnabler mBluetoothEnabler;
+
+    private PreferenceGroup mPairedDevicesCategory;
+    private PreferenceGroup mAvailableDevicesCategory;
+    private Preference mDeviceNamePreference;
+    private boolean mAvailableDevicesCategoryIsPresent;
+
+    private boolean mInitialScanStarted;
+    private boolean mInitiateDiscoverable;
+
+    private SwitchBar mSwitchBar;
+
+    private final IntentFilter mIntentFilter;
+    private BluetoothDeviceNamePreferenceController mDeviceNamePrefController;
+
+    // For Search
+    @VisibleForTesting
+    static final String DATA_KEY_REFERENCE = "main_toggle_bluetooth_obsolete";
+
+    // accessed from inner class (not private to avoid thunks)
+    FooterPreference mMyDevicePreference;
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            final String action = intent.getAction();
+            final int state =
+                    intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
+
+            if (state == BluetoothAdapter.STATE_ON) {
+                mInitiateDiscoverable = true;
+            }
+        }
+    };
+
+    public BluetoothSettingsObsolete() {
+        super(DISALLOW_CONFIG_BLUETOOTH);
+        mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.BLUETOOTH;
+    }
+
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        mInitialScanStarted = false;
+        mInitiateDiscoverable = true;
+
+        final SettingsActivity activity = (SettingsActivity) getActivity();
+        mSwitchBar = activity.getSwitchBar();
+
+        mBluetoothEnabler = new BluetoothEnabler(activity, new SwitchBarController(mSwitchBar),
+                mMetricsFeatureProvider, Utils.getLocalBtManager(activity),
+                MetricsEvent.ACTION_BLUETOOTH_TOGGLE);
+        mBluetoothEnabler.setupSwitchController();
+    }
+
+    @Override
+    public void onDestroyView() {
+        super.onDestroyView();
+
+        mBluetoothEnabler.teardownSwitchController();
+    }
+
+    @Override
+    void addPreferencesForActivity() {
+        final Context prefContext = getPrefContext();
+
+        mDeviceNamePreference = mDeviceNamePrefController.createBluetoothDeviceNamePreference(
+                getPreferenceScreen(), 1 /* order */);
+
+        mPairedDevicesCategory = new PreferenceCategory(prefContext);
+        mPairedDevicesCategory.setKey(KEY_PAIRED_DEVICES);
+        mPairedDevicesCategory.setOrder(2);
+        getPreferenceScreen().addPreference(mPairedDevicesCategory);
+
+        mAvailableDevicesCategory = new BluetoothProgressCategory(prefContext);
+        mAvailableDevicesCategory.setSelectable(false);
+        mAvailableDevicesCategory.setOrder(3);
+        getPreferenceScreen().addPreference(mAvailableDevicesCategory);
+
+        mMyDevicePreference = mFooterPreferenceMixin.createFooterPreference();
+        mMyDevicePreference.setSelectable(false);
+
+        setHasOptionsMenu(true);
+    }
+
+    @Override
+    public void onStart() {
+        // resume BluetoothEnabler before calling super.onStart() so we don't get
+        // any onDeviceAdded() callbacks before setting up view in updateContent()
+        if (mBluetoothEnabler != null) {
+            mBluetoothEnabler.resume(getActivity());
+        }
+        super.onStart();
+
+        mInitiateDiscoverable = true;
+
+        if (isUiRestricted()) {
+            setDeviceListGroup(getPreferenceScreen());
+            if (!isUiRestrictedByOnlyAdmin()) {
+                getEmptyTextView().setText(R.string.bluetooth_empty_list_user_restricted);
+            }
+            removeAllDevices();
+            return;
+        }
+
+        getActivity().registerReceiver(mReceiver, mIntentFilter);
+        if (mLocalAdapter != null) {
+            updateContent(mLocalAdapter.getBluetoothState());
+        }
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (mBluetoothEnabler != null) {
+            mBluetoothEnabler.pause();
+        }
+
+        // Make the device only visible to connected devices.
+        mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE);
+
+        if (isUiRestricted()) {
+            return;
+        }
+
+        getActivity().unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        if (mLocalAdapter == null) return;
+        // If the user is not allowed to configure bluetooth, do not show the menu.
+        if (isUiRestricted()) return;
+
+        boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
+        boolean isDiscovering = mLocalAdapter.isDiscovering();
+        int textId = isDiscovering ? R.string.bluetooth_searching_for_devices :
+                R.string.bluetooth_search_for_devices;
+        menu.add(Menu.NONE, MENU_ID_SCAN, 0, textId)
+                .setEnabled(bluetoothIsEnabled && !isDiscovering)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+        menu.add(Menu.NONE, MENU_ID_SHOW_RECEIVED, 0, R.string.bluetooth_show_received_files)
+                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
+        super.onCreateOptionsMenu(menu, inflater);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        switch (item.getItemId()) {
+            case MENU_ID_SCAN:
+                if (mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON) {
+                    mMetricsFeatureProvider.action(getActivity(),
+                            MetricsEvent.ACTION_BLUETOOTH_SCAN);
+                    startScanning();
+                }
+                return true;
+
+            case MENU_ID_SHOW_RECEIVED:
+                mMetricsFeatureProvider.action(getActivity(),
+                        MetricsEvent.ACTION_BLUETOOTH_FILES);
+                Intent intent = new Intent(BTOPP_ACTION_OPEN_RECEIVED_FILES);
+                intent.setPackage(BTOPP_PACKAGE);
+                getActivity().sendBroadcast(intent);
+                return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    private void startScanning() {
+        if (isUiRestricted()) {
+            return;
+        }
+
+        if (!mAvailableDevicesCategoryIsPresent) {
+            getPreferenceScreen().addPreference(mAvailableDevicesCategory);
+            mAvailableDevicesCategoryIsPresent = true;
+        }
+
+        if (mAvailableDevicesCategory != null) {
+            setDeviceListGroup(mAvailableDevicesCategory);
+            removeAllDevices();
+        }
+
+        mLocalManager.getCachedDeviceManager().clearNonBondedDevices();
+        mAvailableDevicesCategory.removeAll();
+        mInitialScanStarted = true;
+        mLocalAdapter.startScanning(true);
+    }
+
+    @Override
+    void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
+        mLocalAdapter.stopScanning();
+        super.onDevicePreferenceClick(btPreference);
+    }
+
+    private void addDeviceCategory(PreferenceGroup preferenceGroup, int titleId,
+            BluetoothDeviceFilter.Filter filter, boolean addCachedDevices) {
+        cacheRemoveAllPrefs(preferenceGroup);
+        preferenceGroup.setTitle(titleId);
+        setFilter(filter);
+        setDeviceListGroup(preferenceGroup);
+        if (addCachedDevices) {
+            addCachedDevices();
+        }
+        preferenceGroup.setEnabled(true);
+        removeCachedPrefs(preferenceGroup);
+    }
+
+    private void updateContent(int bluetoothState) {
+        final PreferenceScreen preferenceScreen = getPreferenceScreen();
+        int messageId = 0;
+
+        switch (bluetoothState) {
+            case BluetoothAdapter.STATE_ON:
+                mDevicePreferenceMap.clear();
+
+                if (isUiRestricted()) {
+                    messageId = R.string.bluetooth_empty_list_user_restricted;
+                    break;
+                }
+                getPreferenceScreen().removeAll();
+                getPreferenceScreen().addPreference(mDeviceNamePreference);
+                getPreferenceScreen().addPreference(mPairedDevicesCategory);
+                getPreferenceScreen().addPreference(mAvailableDevicesCategory);
+                getPreferenceScreen().addPreference(mMyDevicePreference);
+
+                // Paired devices category
+                addDeviceCategory(mPairedDevicesCategory,
+                        R.string.bluetooth_preference_paired_devices,
+                        BluetoothDeviceFilter.BONDED_DEVICE_FILTER, true);
+                int numberOfPairedDevices = mPairedDevicesCategory.getPreferenceCount();
+
+                if (isUiRestricted() || numberOfPairedDevices <= 0) {
+                    if (preferenceScreen.findPreference(KEY_PAIRED_DEVICES) != null) {
+                        preferenceScreen.removePreference(mPairedDevicesCategory);
+                    }
+                } else {
+                    if (preferenceScreen.findPreference(KEY_PAIRED_DEVICES) == null) {
+                        preferenceScreen.addPreference(mPairedDevicesCategory);
+                    }
+                }
+
+                // Available devices category
+                addDeviceCategory(mAvailableDevicesCategory,
+                        R.string.bluetooth_preference_found_devices,
+                        BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER, mInitialScanStarted);
+
+                if (!mInitialScanStarted) {
+                    startScanning();
+                }
+
+                updateMyDevicePreference(mMyDevicePreference);
+                getActivity().invalidateOptionsMenu();
+
+                // mLocalAdapter.setScanMode is internally synchronized so it is okay for multiple
+                // threads to execute.
+                if (mInitiateDiscoverable) {
+                    // Make the device visible to other devices.
+                    mLocalAdapter.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+                    mInitiateDiscoverable = false;
+                }
+                return; // not break
+
+            case BluetoothAdapter.STATE_TURNING_OFF:
+                messageId = R.string.bluetooth_turning_off;
+                break;
+
+            case BluetoothAdapter.STATE_OFF:
+                setOffMessage();
+                if (isUiRestricted()) {
+                    messageId = R.string.bluetooth_empty_list_user_restricted;
+                }
+                break;
+
+            case BluetoothAdapter.STATE_TURNING_ON:
+                messageId = R.string.bluetooth_turning_on;
+                mInitialScanStarted = false;
+                break;
+        }
+
+        setDeviceListGroup(preferenceScreen);
+        removeAllDevices();
+        if (messageId != 0) {
+            getEmptyTextView().setText(messageId);
+        }
+        if (!isUiRestricted()) {
+            getActivity().invalidateOptionsMenu();
+        }
+    }
+
+    private void setOffMessage() {
+        final TextView emptyView = getEmptyTextView();
+        if (emptyView == null) {
+            return;
+        }
+        final CharSequence briefText = getText(R.string.bluetooth_empty_list_bluetooth_off);
+
+        final ContentResolver resolver = getActivity().getContentResolver();
+        final boolean bleScanningMode = Settings.Global.getInt(
+                resolver, Settings.Global.BLE_SCAN_ALWAYS_AVAILABLE, 0) == 1;
+
+        if (!bleScanningMode) {
+            // Show only the brief text if the scanning mode has been turned off.
+            emptyView.setText(briefText, TextView.BufferType.SPANNABLE);
+        } else {
+            final StringBuilder contentBuilder = new StringBuilder();
+            contentBuilder.append(briefText);
+            contentBuilder.append("\n\n");
+            contentBuilder.append(getText(R.string.ble_scan_notify_text));
+            LinkifyUtils.linkify(emptyView, contentBuilder, new LinkifyUtils.OnClickListener() {
+                @Override
+                public void onClick() {
+                    final SettingsActivity activity =
+                            (SettingsActivity) BluetoothSettingsObsolete.this.getActivity();
+                    activity.startPreferencePanel(BluetoothSettingsObsolete.this,
+                            ScanningSettings.class.getName(), null,
+                            R.string.location_scanning_screen_title, null, null, 0);
+                }
+            });
+        }
+        getPreferenceScreen().removeAll();
+        setTextSpan(emptyView.getText(), briefText);
+    }
+
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {
+        super.onBluetoothStateChanged(bluetoothState);
+        // If BT is turned off/on staying in the same BT Settings screen
+        // discoverability to be set again
+        if (BluetoothAdapter.STATE_ON == bluetoothState) {
+            mInitiateDiscoverable = true;
+        }
+        updateContent(bluetoothState);
+    }
+
+    @Override
+    public void onScanningStateChanged(boolean started) {
+        super.onScanningStateChanged(started);
+        // Update options' enabled state
+        if (getActivity() != null) {
+            getActivity().invalidateOptionsMenu();
+        }
+    }
+
+    @Override
+    public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
+        setDeviceListGroup(getPreferenceScreen());
+        removeAllDevices();
+        updateContent(mLocalAdapter.getBluetoothState());
+    }
+
+    @VisibleForTesting
+    void setTextSpan(CharSequence text, CharSequence briefText) {
+        if (text instanceof Spannable) {
+            Spannable boldSpan = (Spannable) text;
+            boldSpan.setSpan(
+                    new TextAppearanceSpan(getActivity(), android.R.style.TextAppearance_Medium), 0,
+                    briefText.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+        }
+    }
+
+    @VisibleForTesting
+    void updateMyDevicePreference(Preference myDevicePreference) {
+        final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+
+        myDevicePreference.setTitle(getString(
+                R.string.bluetooth_footer_mac_message,
+                bidiFormatter.unicodeWrap(mLocalAdapter.getAddress())));
+    }
+
+    @VisibleForTesting
+    void setLocalBluetoothAdapter(LocalBluetoothAdapter localAdapter) {
+        mLocalAdapter = localAdapter;
+    }
+
+    private final GearPreference.OnGearClickListener mDeviceProfilesListener = pref -> {
+        // User clicked on advanced options icon for a device in the list
+        if (!(pref instanceof BluetoothDevicePreference)) {
+            Log.w(TAG, "onClick() called for other View: " + pref);
+            return;
+        }
+        final CachedBluetoothDevice device =
+                ((BluetoothDevicePreference) pref).getBluetoothDevice();
+        if (device == null) {
+            Log.w(TAG, "No BT device attached with this pref: " + pref);
+            return;
+        }
+        final Bundle args = new Bundle();
+        args.putString(DeviceProfilesSettings.ARG_DEVICE_ADDRESS,
+                device.getDevice().getAddress());
+        final DeviceProfilesSettings profileSettings = new DeviceProfilesSettings();
+        profileSettings.setArguments(args);
+        profileSettings.show(getFragmentManager(),
+                DeviceProfilesSettings.class.getSimpleName());
+    };
+
+    /**
+     * Add a listener, which enables the advanced settings icon.
+     *
+     * @param preference the newly added preference
+     */
+    @Override
+    void initDevicePreference(BluetoothDevicePreference preference) {
+        CachedBluetoothDevice cachedDevice = preference.getCachedDevice();
+        if (cachedDevice.getBondState() == BluetoothDevice.BOND_BONDED) {
+            // Only paired device have an associated advanced settings screen
+            preference.setOnGearClickListener(mDeviceProfilesListener);
+        }
+    }
+
+    @Override
+    protected int getHelpResource() {
+        return R.string.help_url_bluetooth;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.bluetooth_settings_obsolete;
+    }
+
+    @Override
+    protected List<PreferenceController> getPreferenceControllers(Context context) {
+        List<PreferenceController> controllers = new ArrayList<>();
+        mDeviceNamePrefController = new BluetoothDeviceNamePreferenceController(context,
+                this, getLifecycle());
+        controllers.add(mDeviceNamePrefController);
+
+        return controllers;
+    }
+
+    @VisibleForTesting
+    static class SummaryProvider implements SummaryLoader.SummaryProvider, OnSummaryChangeListener {
+
+        private final LocalBluetoothManager mBluetoothManager;
+        private final Context mContext;
+        private final SummaryLoader mSummaryLoader;
+
+        @VisibleForTesting
+        BluetoothSummaryUpdater mSummaryUpdater;
+
+        public SummaryProvider(Context context, SummaryLoader summaryLoader,
+                LocalBluetoothManager bluetoothManager) {
+            mBluetoothManager = bluetoothManager;
+            mContext = context;
+            mSummaryLoader = summaryLoader;
+            mSummaryUpdater = new BluetoothSummaryUpdater(mContext, this, mBluetoothManager);
+        }
+
+        @Override
+        public void setListening(boolean listening) {
+            mSummaryUpdater.register(listening);
+        }
+
+        @Override
+        public void onSummaryChanged(String summary) {
+            if (mSummaryLoader != null) {
+                mSummaryLoader.setSummary(this, summary);
+            }
+        }
+    }
+
+    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
+            = new SummaryLoader.SummaryProviderFactory() {
+        @Override
+        public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
+                SummaryLoader summaryLoader) {
+
+            return new SummaryProvider(activity, summaryLoader, Utils.getLocalBtManager(activity));
+        }
+    };
+
+    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider() {
+                @Override
+                public List<SearchIndexableRaw> getRawDataToIndex(Context context,
+                        boolean enabled) {
+
+                    final List<SearchIndexableRaw> result = new ArrayList<SearchIndexableRaw>();
+
+                    final Resources res = context.getResources();
+
+                    // Add fragment title
+                    SearchIndexableRaw data = new SearchIndexableRaw(context);
+                    data.title = res.getString(R.string.bluetooth_settings);
+                    data.screenTitle = res.getString(R.string.bluetooth_settings);
+                    data.key = DATA_KEY_REFERENCE;
+                    result.add(data);
+
+                    // Add cached paired BT devices
+                    LocalBluetoothManager lbtm = Utils.getLocalBtManager(context);
+                    // LocalBluetoothManager.getInstance can return null if the device does not
+                    // support bluetooth (e.g. the emulator).
+                    if (lbtm != null) {
+                        Set<BluetoothDevice> bondedDevices =
+                                lbtm.getBluetoothAdapter().getBondedDevices();
+
+                        for (BluetoothDevice device : bondedDevices) {
+                            data = new SearchIndexableRaw(context);
+                            data.title = device.getName();
+                            data.screenTitle = res.getString(R.string.bluetooth_settings);
+                            data.enabled = enabled;
+                            result.add(data);
+                        }
+                    }
+                    return result;
+                }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    if (FeatureFactory.getFactory(context).getBluetoothFeatureProvider(
+                            context).isPairingPageEnabled()) {
+                        keys.add(DATA_KEY_REFERENCE);
+                    }
+                    return keys;
+                }
+
+            };
+}
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
index 4034316..714704e 100644
--- a/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
@@ -19,12 +19,15 @@
 import android.bluetooth.BluetoothAdapter;
 import android.bluetooth.BluetoothDevice;
 import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
 import android.support.v7.preference.PreferenceGroup;
+import android.text.BidiFormatter;
 import android.util.Log;
 
 import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settings.R;
 import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -41,12 +44,12 @@
  * @see BluetoothSettings
  * @see DevicePickerFragment
  */
+// TODO: Refactor this fragment
 public abstract class DeviceListPreferenceFragment extends
         RestrictedDashboardFragment implements BluetoothCallback {
 
     private static final String TAG = "DeviceListPreferenceFragment";
 
-    private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
     private static final String KEY_BT_SCAN = "bt_scan";
 
     private BluetoothDeviceFilter.Filter mFilter;
@@ -56,7 +59,8 @@
     LocalBluetoothAdapter mLocalAdapter;
     LocalBluetoothManager mLocalManager;
 
-    private PreferenceGroup mDeviceListGroup;
+    @VisibleForTesting
+    PreferenceGroup mDeviceListGroup;
 
     final WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
             new WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference>();
@@ -85,17 +89,13 @@
         }
         mLocalAdapter = mLocalManager.getBluetoothAdapter();
 
-        addPreferencesForActivity();
+        initPreferencesFromPreferenceScreen();
 
-        mDeviceListGroup = (PreferenceCategory) findPreference(KEY_BT_DEVICE_LIST);
+        mDeviceListGroup = (PreferenceCategory) findPreference(getDeviceListKey());
     }
 
-    void setDeviceListGroup(PreferenceGroup preferenceGroup) {
-        mDeviceListGroup = preferenceGroup;
-    }
-
-    /** Add preferences from the subclass. */
-    abstract void addPreferencesForActivity();
+    /** find and update preference that already existed in preference screen */
+    abstract void initPreferencesFromPreferenceScreen();
 
     @Override
     public void onStart() {
@@ -104,8 +104,6 @@
 
         mLocalManager.setForegroundActivity(getActivity());
         mLocalManager.getEventManager().registerCallback(this);
-
-        updateProgressUi(mLocalAdapter.isDiscovering());
     }
 
     @Override
@@ -121,7 +119,6 @@
     }
 
     void removeAllDevices() {
-        mLocalAdapter.stopScanning();
         mDevicePreferenceMap.clear();
         mDeviceListGroup.removeAll();
     }
@@ -156,6 +153,7 @@
         btPreference.onClicked();
     }
 
+    @Override
     public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
         if (mDevicePreferenceMap.get(cachedDevice) != null) {
             return;
@@ -201,6 +199,16 @@
         // Does nothing by default
     }
 
+    @VisibleForTesting
+    void updateFooterPreference(Preference myDevicePreference) {
+        final BidiFormatter bidiFormatter = BidiFormatter.getInstance();
+
+        myDevicePreference.setTitle(getString(
+                R.string.bluetooth_footer_mac_message,
+                bidiFormatter.unicodeWrap(mLocalAdapter.getAddress())));
+    }
+
+    @Override
     public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
         BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
         if (preference != null) {
@@ -208,21 +216,39 @@
         }
     }
 
-    public void onScanningStateChanged(boolean started) {
-        updateProgressUi(started);
-    }
+    @Override
+    public void onScanningStateChanged(boolean started) {}
 
-    private void updateProgressUi(boolean start) {
-        if (mDeviceListGroup instanceof BluetoothProgressCategory) {
-            ((BluetoothProgressCategory) mDeviceListGroup).setProgress(start);
-        }
-    }
+    @Override
+    public void onBluetoothStateChanged(int bluetoothState) {}
 
-    public void onBluetoothStateChanged(int bluetoothState) {
-        if (bluetoothState == BluetoothAdapter.STATE_OFF) {
-            updateProgressUi(false);
+    /**
+     * Add bluetooth device preferences to {@code preferenceGroup} which satisfy the {@code filter}
+     *
+     * This method will also (1) set the title for {@code preferenceGroup} and (2) change the
+     * default preferenceGroup and filter
+     * @param preferenceGroup
+     * @param titleId
+     * @param filter
+     * @param addCachedDevices
+     */
+    public void addDeviceCategory(PreferenceGroup preferenceGroup, int titleId,
+            BluetoothDeviceFilter.Filter filter, boolean addCachedDevices) {
+        cacheRemoveAllPrefs(preferenceGroup);
+        preferenceGroup.setTitle(titleId);
+        mDeviceListGroup = preferenceGroup;
+        setFilter(filter);
+        if (addCachedDevices) {
+            addCachedDevices();
         }
+        preferenceGroup.setEnabled(true);
+        removeCachedPrefs(preferenceGroup);
     }
 
     public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) { }
+
+    /**
+     * Return the key of the {@link PreferenceGroup} that contains the bluetooth devices
+     */
+    public abstract String getDeviceListKey();
 }
diff --git a/src/com/android/settings/bluetooth/DeviceListPreferenceObsoleteFragment.java b/src/com/android/settings/bluetooth/DeviceListPreferenceObsoleteFragment.java
new file mode 100644
index 0000000..84d8558
--- /dev/null
+++ b/src/com/android/settings/bluetooth/DeviceListPreferenceObsoleteFragment.java
@@ -0,0 +1,232 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.bluetooth.BluetoothDevice;
+import android.os.Bundle;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceCategory;
+import android.support.v7.preference.PreferenceGroup;
+import android.util.Log;
+
+import com.android.settings.dashboard.RestrictedDashboardFragment;
+import com.android.settingslib.bluetooth.BluetoothCallback;
+import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import java.util.Collection;
+import java.util.WeakHashMap;
+
+/**
+ * Parent class for settings fragments that contain a list of Bluetooth
+ * devices.
+ *
+ * This fragment stores old implementation of {@link DeviceListPreferenceFragment} and is
+ * deprecated, please use {@link DeviceListPreferenceFragment} instead.
+ *
+ * @see BluetoothSettingsObsolete
+ * @see DevicePickerFragment
+ */
+@Deprecated
+public abstract class DeviceListPreferenceObsoleteFragment extends
+        RestrictedDashboardFragment implements BluetoothCallback {
+
+    private static final String TAG = "DeviceListPreferenceFragment";
+
+    private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
+    private static final String KEY_BT_SCAN = "bt_scan";
+
+    private BluetoothDeviceFilter.Filter mFilter;
+
+    BluetoothDevice mSelectedDevice;
+
+    LocalBluetoothAdapter mLocalAdapter;
+    LocalBluetoothManager mLocalManager;
+
+    private PreferenceGroup mDeviceListGroup;
+
+    final WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference> mDevicePreferenceMap =
+            new WeakHashMap<CachedBluetoothDevice, BluetoothDevicePreference>();
+
+    DeviceListPreferenceObsoleteFragment(String restrictedKey) {
+        super(restrictedKey);
+        mFilter = BluetoothDeviceFilter.ALL_FILTER;
+    }
+
+    final void setFilter(BluetoothDeviceFilter.Filter filter) {
+        mFilter = filter;
+    }
+
+    final void setFilter(int filterType) {
+        mFilter = BluetoothDeviceFilter.getFilter(filterType);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        mLocalManager = Utils.getLocalBtManager(getActivity());
+        if (mLocalManager == null) {
+            Log.e(TAG, "Bluetooth is not supported on this device");
+            return;
+        }
+        mLocalAdapter = mLocalManager.getBluetoothAdapter();
+
+        addPreferencesForActivity();
+
+        mDeviceListGroup = (PreferenceCategory) findPreference(KEY_BT_DEVICE_LIST);
+    }
+
+    void setDeviceListGroup(PreferenceGroup preferenceGroup) {
+        mDeviceListGroup = preferenceGroup;
+    }
+
+    /** Add preferences from the subclass. */
+    abstract void addPreferencesForActivity();
+
+    @Override
+    public void onStart() {
+        super.onStart();
+        if (mLocalManager == null || isUiRestricted()) return;
+
+        mLocalManager.setForegroundActivity(getActivity());
+        mLocalManager.getEventManager().registerCallback(this);
+
+        updateProgressUi(mLocalAdapter.isDiscovering());
+    }
+
+    @Override
+    public void onStop() {
+        super.onStop();
+        if (mLocalManager == null || isUiRestricted()) {
+            return;
+        }
+
+        removeAllDevices();
+        mLocalManager.setForegroundActivity(null);
+        mLocalManager.getEventManager().unregisterCallback(this);
+    }
+
+    void removeAllDevices() {
+        mLocalAdapter.stopScanning();
+        mDevicePreferenceMap.clear();
+        mDeviceListGroup.removeAll();
+    }
+
+    void addCachedDevices() {
+        Collection<CachedBluetoothDevice> cachedDevices =
+                mLocalManager.getCachedDeviceManager().getCachedDevicesCopy();
+        for (CachedBluetoothDevice cachedDevice : cachedDevices) {
+            onDeviceAdded(cachedDevice);
+        }
+    }
+
+    @Override
+    public boolean onPreferenceTreeClick(Preference preference) {
+        if (KEY_BT_SCAN.equals(preference.getKey())) {
+            mLocalAdapter.startScanning(true);
+            return true;
+        }
+
+        if (preference instanceof BluetoothDevicePreference) {
+            BluetoothDevicePreference btPreference = (BluetoothDevicePreference) preference;
+            CachedBluetoothDevice device = btPreference.getCachedDevice();
+            mSelectedDevice = device.getDevice();
+            onDevicePreferenceClick(btPreference);
+            return true;
+        }
+
+        return super.onPreferenceTreeClick(preference);
+    }
+
+    void onDevicePreferenceClick(BluetoothDevicePreference btPreference) {
+        btPreference.onClicked();
+    }
+
+    public void onDeviceAdded(CachedBluetoothDevice cachedDevice) {
+        if (mDevicePreferenceMap.get(cachedDevice) != null) {
+            return;
+        }
+
+        // Prevent updates while the list shows one of the state messages
+        if (mLocalAdapter.getBluetoothState() != BluetoothAdapter.STATE_ON) return;
+
+        if (mFilter.matches(cachedDevice.getDevice())) {
+            createDevicePreference(cachedDevice);
+        }
+    }
+
+    void createDevicePreference(CachedBluetoothDevice cachedDevice) {
+        if (mDeviceListGroup == null) {
+            Log.w(TAG, "Trying to create a device preference before the list group/category "
+                    + "exists!");
+            return;
+        }
+
+        String key = cachedDevice.getDevice().getAddress();
+        BluetoothDevicePreference preference = (BluetoothDevicePreference) getCachedPreference(key);
+
+        if (preference == null) {
+            preference = new BluetoothDevicePreference(getPrefContext(), cachedDevice);
+            preference.setKey(key);
+            mDeviceListGroup.addPreference(preference);
+        } else {
+            // Tell the preference it is being re-used in case there is new info in the
+            // cached device.
+            preference.rebind();
+        }
+
+        initDevicePreference(preference);
+        mDevicePreferenceMap.put(cachedDevice, preference);
+    }
+
+    /**
+     * Overridden in {@link BluetoothSettings} to add a listener.
+     * @param preference the newly added preference
+     */
+    void initDevicePreference(BluetoothDevicePreference preference) {
+        // Does nothing by default
+    }
+
+    public void onDeviceDeleted(CachedBluetoothDevice cachedDevice) {
+        BluetoothDevicePreference preference = mDevicePreferenceMap.remove(cachedDevice);
+        if (preference != null) {
+            mDeviceListGroup.removePreference(preference);
+        }
+    }
+
+    public void onScanningStateChanged(boolean started) {
+        updateProgressUi(started);
+    }
+
+    private void updateProgressUi(boolean start) {
+        if (mDeviceListGroup instanceof BluetoothProgressCategory) {
+            ((BluetoothProgressCategory) mDeviceListGroup).setProgress(start);
+        }
+    }
+
+    public void onBluetoothStateChanged(int bluetoothState) {
+        if (bluetoothState == BluetoothAdapter.STATE_OFF) {
+            updateProgressUi(false);
+        }
+    }
+
+    public void onConnectionStateChanged(CachedBluetoothDevice cachedDevice, int state) { }
+}
diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java
index 8bf8202..0cf13a3 100644
--- a/src/com/android/settings/bluetooth/DevicePickerFragment.java
+++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java
@@ -42,6 +42,7 @@
  */
 public final class DevicePickerFragment extends DeviceListPreferenceFragment {
     private static final int MENU_ID_REFRESH = Menu.FIRST;
+    private static final String KEY_BT_DEVICE_LIST = "bt_device_list";
     private static final String TAG = "DevicePickerFragment";
 
     public DevicePickerFragment() {
@@ -54,7 +55,7 @@
     private boolean mStartScanOnStart;
 
     @Override
-    void addPreferencesForActivity() {
+    void initPreferencesFromPreferenceScreen() {
         Intent intent = getActivity().getIntent();
         mNeedAuth = intent.getBooleanExtra(BluetoothDevicePicker.EXTRA_NEED_AUTH, false);
         setFilter(intent.getIntExtra(BluetoothDevicePicker.EXTRA_FILTER_TYPE,
@@ -167,6 +168,11 @@
         return null;
     }
 
+    @Override
+    public String getDeviceListKey() {
+        return KEY_BT_DEVICE_LIST;
+    }
+
     private void sendDevicePickedIntent(BluetoothDevice device) {
         Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
         intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
diff --git a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
index a6dfa9b..a76ed46 100755
--- a/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
+++ b/src/com/android/settings/bluetooth/DeviceProfilesSettings.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
 import android.text.Html;
 import android.text.TextUtils;
 import android.util.Log;
@@ -37,6 +38,7 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settingslib.bluetooth.A2dpProfile;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -55,6 +57,8 @@
     private static final String KEY_PROFILE_CONTAINER = "profile_container";
     private static final String KEY_UNPAIR = "unpair";
     private static final String KEY_PBAP_SERVER = "PBAP Server";
+    @VisibleForTesting
+    static final String HIGH_QUALITY_AUDIO_PREF_TAG = "A2dpProfileHighQualityAudio";
 
     private CachedBluetoothDevice mCachedDevice;
     private LocalBluetoothManager mManager;
@@ -169,6 +173,21 @@
         for (LocalBluetoothProfile profile : mCachedDevice.getConnectableProfiles()) {
             CheckBox pref = createProfilePreference(profile);
             mProfileContainer.addView(pref);
+
+            if (profile instanceof A2dpProfile) {
+                BluetoothDevice device = mCachedDevice.getDevice();
+                A2dpProfile a2dpProfile = (A2dpProfile) profile;
+                if (a2dpProfile.supportsHighQualityAudio(device)) {
+                    CheckBox highQualityPref = new CheckBox(getActivity());
+                    highQualityPref.setTag(HIGH_QUALITY_AUDIO_PREF_TAG);
+                    highQualityPref.setOnClickListener(v -> {
+                        a2dpProfile.setHighQualityAudioEnabled(device, highQualityPref.isChecked());
+                    });
+                    highQualityPref.setVisibility(View.GONE);
+                    mProfileContainer.addView(highQualityPref);
+                }
+                refreshProfilePreference(pref, profile);
+            }
         }
 
         final int pbapPermission = mCachedDevice.getPhonebookPermissionChoice();
@@ -356,6 +375,22 @@
         } else {
             profilePref.setChecked(profile.isPreferred(device));
         }
+        if (profile instanceof A2dpProfile) {
+            A2dpProfile a2dpProfile = (A2dpProfile) profile;
+            View v = mProfileContainer.findViewWithTag(HIGH_QUALITY_AUDIO_PREF_TAG);
+            if (v instanceof CheckBox) {
+                CheckBox highQualityPref = (CheckBox) v;
+                highQualityPref.setText(a2dpProfile.getHighQualityAudioOptionLabel(device));
+                highQualityPref.setChecked(a2dpProfile.isHighQualityAudioEnabled(device));
+
+                if (a2dpProfile.isPreferred(device)) {
+                    v.setVisibility(View.VISIBLE);
+                    v.setEnabled(!mCachedDevice.isBusy());
+                } else {
+                    v.setVisibility(View.GONE);
+                }
+            }
+        }
     }
 
     private LocalBluetoothProfile getProfileOf(View v) {
diff --git a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
index 6a1c06c..27492ce 100644
--- a/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragment.java
@@ -15,21 +15,25 @@
  */
 package com.android.settings.connecteddevice;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.provider.SearchIndexableResource;
+import android.support.annotation.VisibleForTesting;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController;
 import com.android.settings.bluetooth.Utils;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.deviceinfo.UsbBackend;
 import com.android.settings.nfc.NfcPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -67,13 +71,51 @@
         lifecycle.addObserver(mUsbPrefController);
         controllers.add(mUsbPrefController);
         final BluetoothMasterSwitchPreferenceController bluetoothPreferenceController =
-            new BluetoothMasterSwitchPreferenceController(
-                context, Utils.getLocalBtManager(context));
+                new BluetoothMasterSwitchPreferenceController(
+                        context, Utils.getLocalBtManager(context), this,
+                        (SettingsActivity) getActivity());
         lifecycle.addObserver(bluetoothPreferenceController);
         controllers.add(bluetoothPreferenceController);
         return controllers;
     }
 
+    @VisibleForTesting
+    static class SummaryProvider implements SummaryLoader.SummaryProvider {
+
+        private final Context mContext;
+        private final SummaryLoader mSummaryLoader;
+        private final NfcPreferenceController mNfcPreferenceController;
+
+        public SummaryProvider(Context context, SummaryLoader summaryLoader) {
+            mContext = context;
+            mSummaryLoader = summaryLoader;
+            mNfcPreferenceController = new NfcPreferenceController(context);
+        }
+
+
+        @Override
+        public void setListening(boolean listening) {
+            if (listening) {
+                if (mNfcPreferenceController.isAvailable()) {
+                    mSummaryLoader.setSummary(this,
+                            mContext.getString(R.string.connected_devices_dashboard_summary));
+                } else {
+                    mSummaryLoader.setSummary(this, mContext.getString(
+                            R.string.connected_devices_dashboard_no_nfc_summary));
+                }
+            }
+        }
+    }
+
+    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
+            = new SummaryLoader.SummaryProviderFactory() {
+        @Override
+        public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
+                SummaryLoader summaryLoader) {
+            return new SummaryProvider(activity, summaryLoader);
+        }
+    };
+
     /**
      * For Search.
      */
diff --git a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
index a98f068..9c9ed12 100644
--- a/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/UsbModePreferenceController.java
@@ -26,10 +26,10 @@
 
 import com.android.settings.core.PreferenceController;
 import com.android.settings.R;
-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.deviceinfo.UsbBackend;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class UsbModePreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/core/DynamicAvailabilityPreferenceController.java b/src/com/android/settings/core/DynamicAvailabilityPreferenceController.java
index 9323aa3..6db57e6 100644
--- a/src/com/android/settings/core/DynamicAvailabilityPreferenceController.java
+++ b/src/com/android/settings/core/DynamicAvailabilityPreferenceController.java
@@ -20,9 +20,9 @@
 import android.support.v7.preference.Preference;
 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.OnResume;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public abstract class DynamicAvailabilityPreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume {
diff --git a/src/com/android/settings/core/InstrumentedActivity.java b/src/com/android/settings/core/InstrumentedActivity.java
index 891af5d..9b24756 100644
--- a/src/com/android/settings/core/InstrumentedActivity.java
+++ b/src/com/android/settings/core/InstrumentedActivity.java
@@ -18,7 +18,7 @@
 
 import com.android.settings.core.instrumentation.Instrumentable;
 import com.android.settings.core.instrumentation.VisibilityLoggerMixin;
-import com.android.settings.core.lifecycle.ObservableActivity;
+import com.android.settingslib.core.lifecycle.ObservableActivity;
 
 /**
  * Instrumented activity that logs visibility state.
diff --git a/src/com/android/settings/core/InstrumentedFragment.java b/src/com/android/settings/core/InstrumentedFragment.java
index 303d4d8..188dbde 100644
--- a/src/com/android/settings/core/InstrumentedFragment.java
+++ b/src/com/android/settings/core/InstrumentedFragment.java
@@ -21,9 +21,9 @@
 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.ObservableFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.survey.SurveyMixin;
+import com.android.settingslib.core.lifecycle.ObservableFragment;
 
 public abstract class InstrumentedFragment extends ObservableFragment implements Instrumentable {
 
@@ -49,4 +49,4 @@
         mVisibilityLoggerMixin.setSourceMetricsCategory(getActivity());
         super.onResume();
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
index 746c10d..bfb69e7 100644
--- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java
+++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java
@@ -22,9 +22,9 @@
 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;
 import com.android.settings.survey.SurveyMixin;
+import com.android.settingslib.core.lifecycle.ObservablePreferenceFragment;
 
 /**
  * Instrumented fragment that logs visibility state.
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index b8cf856..34328de 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -18,13 +18,12 @@
 
 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.DeviceAdminSettings;
 import com.android.settings.DeviceInfoSettings;
 import com.android.settings.DisplaySettings;
+import com.android.settings.dashboard.SupportDashboardActivity;
 import com.android.settings.dream.DreamSettings;
 import com.android.settings.IccLockSettings;
 import com.android.settings.MasterClear;
@@ -109,6 +108,8 @@
 import com.android.settings.notification.ZenModeScheduleRuleSettings;
 import com.android.settings.notification.ZenModeSettings;
 import com.android.settings.notification.ZenModeVisualInterruptionSettings;
+import com.android.settings.password.ChooseLockPassword;
+import com.android.settings.password.ChooseLockPattern;
 import com.android.settings.print.PrintJobSettingsFragment;
 import com.android.settings.print.PrintSettingsFragment;
 import com.android.settings.security.LockscreenDashboardFragment;
@@ -262,6 +263,7 @@
             Settings.SecuritySettingsActivity.class.getName(),
             Settings.AccessibilitySettingsActivity.class.getName(),
             Settings.SystemDashboardActivity.class.getName(),
+            SupportDashboardActivity.class.getName(),
             // Home page > Network & Internet
             Settings.WifiSettingsActivity.class.getName(),
             Settings.DataUsageSummaryActivity.class.getName(),
@@ -272,6 +274,7 @@
             Settings.PrintSettingsActivity.class.getName(),
             // Home page > Apps & Notifications
             Settings.UserSettingsActivity.class.getName(),
+            Settings.ConfigureNotificationSettingsActivity.class.getName(),
             Settings.ManageApplicationsActivity.class.getName(),
             Settings.PaymentSettingsActivity.class.getName(),
             // Home page > Security & screen lock
diff --git a/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java b/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
index dd3c1cc..5a9ab56 100644
--- a/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
+++ b/src/com/android/settings/core/instrumentation/InstrumentedDialogFragment.java
@@ -18,8 +18,8 @@
 import android.content.Context;
 
 import com.android.settings.DialogCreatable;
-import com.android.settings.core.lifecycle.ObservableDialogFragment;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.ObservableDialogFragment;
 
 public abstract class InstrumentedDialogFragment extends ObservableDialogFragment
         implements Instrumentable {
diff --git a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
index 69f174b..51102a6 100644
--- a/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
+++ b/src/com/android/settings/core/instrumentation/SharedPreferencesLogger.java
@@ -21,6 +21,7 @@
 import android.content.pm.PackageManager;
 import android.os.AsyncTask;
 import android.text.TextUtils;
+import android.util.Log;
 import android.util.Pair;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -32,6 +33,8 @@
 
 public class SharedPreferencesLogger implements SharedPreferences {
 
+    private static final String LOG_TAG = "SharedPreferencesLogger";
+
     private final String mTag;
     private final Context mContext;
     private final MetricsFeatureProvider mMetricsFeature;
@@ -99,11 +102,11 @@
             OnSharedPreferenceChangeListener listener) {
     }
 
-    private void logValue(String key, String value) {
+    private void logValue(String key, Object value) {
         logValue(key, value, false /* forceLog */);
     }
 
-    private void logValue(String key, String value, boolean forceLog) {
+    private void logValue(String key, Object value, boolean forceLog) {
         final String prefKey = mTag + "/" + key;
         if (!forceLog && !mPreferenceKeySet.contains(prefKey)) {
             // Pref key doesn't exist in set, this is initial display so we skip metrics but
@@ -111,10 +114,35 @@
             mPreferenceKeySet.add(prefKey);
             return;
         }
-        // Pref key exists in set, log it's change in metrics.
-        mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE,
-                Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey),
-                Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_VALUE, value));
+        // TODO: Remove count logging to save some resource.
+        mMetricsFeature.count(mContext, prefKey + "|" + value, 1);
+
+        final Pair<Integer, Object> valueData;
+        if (value instanceof Long) {
+            valueData = Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE,
+                    value);
+        } else if (value instanceof Integer) {
+            valueData = Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE,
+                    ((Integer) value).longValue());
+        } else if (value instanceof Boolean) {
+            valueData = Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE,
+                    (Boolean) value ? 1L : 0L);
+        } else if (value instanceof Float) {
+            valueData = Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE,
+                    value);
+        } else if (value instanceof String){
+            valueData = Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_VALUE,
+                    value);
+        } else {
+            Log.w(LOG_TAG, "Tried to log unloggable object"  + value);
+            valueData = null;
+        }
+        if (valueData != null) {
+            // Pref key exists in set, log it's change in metrics.
+            mMetricsFeature.action(mContext, MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE,
+                    Pair.create(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, prefKey),
+                    valueData);
+        }
     }
 
     private void logPackageName(String key, String value) {
@@ -170,25 +198,25 @@
 
         @Override
         public Editor putInt(String key, int value) {
-            logValue(key, String.valueOf(value));
+            logValue(key, value);
             return this;
         }
 
         @Override
         public Editor putLong(String key, long value) {
-            logValue(key, String.valueOf(value));
+            logValue(key, value);
             return this;
         }
 
         @Override
         public Editor putFloat(String key, float value) {
-            logValue(key, String.valueOf(value));
+            logValue(key, value);
             return this;
         }
 
         @Override
         public Editor putBoolean(String key, boolean value) {
-            logValue(key, String.valueOf(value));
+            logValue(key, value);
             return this;
         }
 
diff --git a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
index fcd32d1..8de35ad 100644
--- a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
+++ b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
@@ -22,11 +22,11 @@
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.SettingsActivity;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnAttach;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnAttach;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import static com.android.settings.core.instrumentation.Instrumentable.METRICS_CATEGORY_UNKNOWN;
 
diff --git a/src/com/android/settings/core/lifecycle/Lifecycle.java b/src/com/android/settings/core/lifecycle/Lifecycle.java
deleted file mode 100644
index ef23688..0000000
--- a/src/com/android/settings/core/lifecycle/Lifecycle.java
+++ /dev/null
@@ -1,159 +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.core.lifecycle;
-
-import android.annotation.UiThread;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.annotation.Nullable;
-import android.support.v7.preference.PreferenceScreen;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-import com.android.settings.core.lifecycle.events.OnAttach;
-import com.android.settings.core.lifecycle.events.OnCreate;
-import com.android.settings.core.lifecycle.events.OnCreateOptionsMenu;
-import com.android.settings.core.lifecycle.events.OnDestroy;
-import com.android.settings.core.lifecycle.events.OnOptionsItemSelected;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnPrepareOptionsMenu;
-import com.android.settings.core.lifecycle.events.OnResume;
-import com.android.settings.core.lifecycle.events.OnSaveInstanceState;
-import com.android.settings.core.lifecycle.events.OnStart;
-import com.android.settings.core.lifecycle.events.OnStop;
-import com.android.settings.core.lifecycle.events.SetPreferenceScreen;
-import com.android.settings.utils.ThreadUtils;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Dispatcher for lifecycle events.
- */
-public class Lifecycle {
-
-    protected final List<LifecycleObserver> mObservers = new ArrayList<>();
-
-    /**
-     * Registers a new observer of lifecycle events.
-     */
-    @UiThread
-    public <T extends LifecycleObserver> T addObserver(T observer) {
-        ThreadUtils.ensureMainThread();
-        mObservers.add(observer);
-        return observer;
-    }
-
-    public void onAttach(Context context) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnAttach) {
-                ((OnAttach) observer).onAttach(context);
-            }
-        }
-    }
-
-    public void onCreate(Bundle savedInstanceState) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnCreate) {
-                ((OnCreate) observer).onCreate(savedInstanceState);
-            }
-        }
-    }
-
-    public void onStart() {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnStart) {
-                ((OnStart) observer).onStart();
-            }
-        }
-    }
-
-    public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof SetPreferenceScreen) {
-                ((SetPreferenceScreen) observer).setPreferenceScreen(preferenceScreen);
-            }
-        }
-    }
-
-    public void onResume() {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnResume) {
-                ((OnResume) observer).onResume();
-            }
-        }
-    }
-
-    public void onPause() {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnPause) {
-                ((OnPause) observer).onPause();
-            }
-        }
-    }
-
-    public void onSaveInstanceState(Bundle outState) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnSaveInstanceState) {
-                ((OnSaveInstanceState) observer).onSaveInstanceState(outState);
-            }
-        }
-    }
-
-    public void onStop() {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnStop) {
-                ((OnStop) observer).onStop();
-            }
-        }
-    }
-
-    public void onDestroy() {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnDestroy) {
-                ((OnDestroy) observer).onDestroy();
-            }
-        }
-    }
-
-    public void onCreateOptionsMenu(final Menu menu, final @Nullable MenuInflater inflater) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnCreateOptionsMenu) {
-                ((OnCreateOptionsMenu) observer).onCreateOptionsMenu(menu, inflater);
-            }
-        }
-    }
-
-    public void onPrepareOptionsMenu(final Menu menu) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnPrepareOptionsMenu) {
-                ((OnPrepareOptionsMenu) observer).onPrepareOptionsMenu(menu);
-            }
-        }
-    }
-
-    public boolean onOptionsItemSelected(final MenuItem menuItem) {
-        for (LifecycleObserver observer : mObservers) {
-            if (observer instanceof OnOptionsItemSelected) {
-                if (((OnOptionsItemSelected) observer).onOptionsItemSelected(menuItem)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-}
diff --git a/src/com/android/settings/core/lifecycle/LifecycleObserver.java b/src/com/android/settings/core/lifecycle/LifecycleObserver.java
deleted file mode 100644
index 1f88e85..0000000
--- a/src/com/android/settings/core/lifecycle/LifecycleObserver.java
+++ /dev/null
@@ -1,22 +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.core.lifecycle;
-
-/**
- * Observer of lifecycle events.
- */
-public interface LifecycleObserver {
-}
diff --git a/src/com/android/settings/core/lifecycle/ObservableActivity.java b/src/com/android/settings/core/lifecycle/ObservableActivity.java
deleted file mode 100644
index 006c9ae..0000000
--- a/src/com/android/settings/core/lifecycle/ObservableActivity.java
+++ /dev/null
@@ -1,105 +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.core.lifecycle;
-
-import android.annotation.Nullable;
-import android.app.Activity;
-import android.os.Bundle;
-import android.os.PersistableBundle;
-import android.view.Menu;
-import android.view.MenuItem;
-
-/**
- * {@link Activity} that has hooks to observe activity lifecycle events.
- */
-public class ObservableActivity extends Activity {
-
-    private final Lifecycle mLifecycle = new Lifecycle();
-
-    protected Lifecycle getLifecycle() {
-        return mLifecycle;
-    }
-
-    @Override
-    protected void onCreate(@Nullable Bundle savedInstanceState) {
-        mLifecycle.onAttach(this);
-        super.onCreate(savedInstanceState);
-    }
-
-    @Override
-    public void onCreate(@Nullable Bundle savedInstanceState,
-            @Nullable PersistableBundle persistentState) {
-        mLifecycle.onAttach(this);
-        super.onCreate(savedInstanceState, persistentState);
-    }
-
-    @Override
-    protected void onStart() {
-        mLifecycle.onStart();
-        super.onStart();
-    }
-
-    @Override
-    protected void onResume() {
-        mLifecycle.onResume();
-        super.onResume();
-    }
-
-    @Override
-    protected void onPause() {
-        mLifecycle.onPause();
-        super.onPause();
-    }
-
-    @Override
-    protected void onStop() {
-        mLifecycle.onStop();
-        super.onStop();
-    }
-
-    @Override
-    protected void onDestroy() {
-        mLifecycle.onDestroy();
-        super.onDestroy();
-    }
-
-    @Override
-    public boolean onCreateOptionsMenu(final Menu menu) {
-        if (super.onCreateOptionsMenu(menu)) {
-            mLifecycle.onCreateOptionsMenu(menu, null);
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onPrepareOptionsMenu(final Menu menu) {
-        if (super.onPrepareOptionsMenu(menu)) {
-            mLifecycle.onPrepareOptionsMenu(menu);
-            return true;
-        }
-        return false;
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem menuItem) {
-        boolean lifecycleHandled = mLifecycle.onOptionsItemSelected(menuItem);
-        if (!lifecycleHandled) {
-            return super.onOptionsItemSelected(menuItem);
-        }
-        return lifecycleHandled;
-    }
-}
diff --git a/src/com/android/settings/core/lifecycle/ObservableDialogFragment.java b/src/com/android/settings/core/lifecycle/ObservableDialogFragment.java
deleted file mode 100644
index c3265dd..0000000
--- a/src/com/android/settings/core/lifecycle/ObservableDialogFragment.java
+++ /dev/null
@@ -1,87 +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.core.lifecycle;
-
-import android.app.DialogFragment;
-import android.content.Context;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-/**
- * {@link DialogFragment} that has hooks to observe fragment lifecycle events.
- */
-public class ObservableDialogFragment extends DialogFragment {
-
-    protected final Lifecycle mLifecycle = new Lifecycle();
-
-    @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-        mLifecycle.onAttach(context);
-    }
-
-    @Override
-    public void onStart() {
-        mLifecycle.onStart();
-        super.onStart();
-    }
-
-    @Override
-    public void onResume() {
-        mLifecycle.onResume();
-        super.onResume();
-    }
-
-    @Override
-    public void onPause() {
-        mLifecycle.onPause();
-        super.onPause();
-    }
-
-    @Override
-    public void onStop() {
-        mLifecycle.onStop();
-        super.onStop();
-    }
-
-    @Override
-    public void onDestroy() {
-        mLifecycle.onDestroy();
-        super.onDestroy();
-    }
-
-    @Override
-    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
-        mLifecycle.onCreateOptionsMenu(menu, inflater);
-        super.onCreateOptionsMenu(menu, inflater);
-    }
-
-    @Override
-    public void onPrepareOptionsMenu(final Menu menu) {
-        mLifecycle.onPrepareOptionsMenu(menu);
-        super.onPrepareOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem menuItem) {
-        boolean lifecycleHandled = mLifecycle.onOptionsItemSelected(menuItem);
-        if (!lifecycleHandled) {
-            return super.onOptionsItemSelected(menuItem);
-        }
-        return lifecycleHandled;
-    }
-}
diff --git a/src/com/android/settings/core/lifecycle/ObservableFragment.java b/src/com/android/settings/core/lifecycle/ObservableFragment.java
deleted file mode 100644
index 8dae7ea..0000000
--- a/src/com/android/settings/core/lifecycle/ObservableFragment.java
+++ /dev/null
@@ -1,114 +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.core.lifecycle;
-
-import android.annotation.CallSuper;
-import android.app.Fragment;
-import android.content.Context;
-import android.os.Bundle;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-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();
-    }
-
-    @CallSuper
-    @Override
-    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
-        mLifecycle.onCreateOptionsMenu(menu, inflater);
-        super.onCreateOptionsMenu(menu, inflater);
-    }
-
-    @CallSuper
-    @Override
-    public void onPrepareOptionsMenu(final Menu menu) {
-        mLifecycle.onPrepareOptionsMenu(menu);
-        super.onPrepareOptionsMenu(menu);
-    }
-
-    @CallSuper
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem menuItem) {
-        boolean lifecycleHandled = mLifecycle.onOptionsItemSelected(menuItem);
-        if (!lifecycleHandled) {
-            return super.onOptionsItemSelected(menuItem);
-        }
-        return lifecycleHandled;
-    }
-}
\ No newline at end of file
diff --git a/src/com/android/settings/core/lifecycle/ObservablePreferenceFragment.java b/src/com/android/settings/core/lifecycle/ObservablePreferenceFragment.java
deleted file mode 100644
index 94a0be1..0000000
--- a/src/com/android/settings/core/lifecycle/ObservablePreferenceFragment.java
+++ /dev/null
@@ -1,124 +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.core.lifecycle;
-
-
-import android.annotation.CallSuper;
-import android.content.Context;
-import android.os.Bundle;
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.PreferenceScreen;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-/**
- * {@link PreferenceFragment} that has hooks to observe fragment lifecycle events.
- */
-public abstract class ObservablePreferenceFragment extends PreferenceFragment {
-
-    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);
-    }
-
-    @Override
-    public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
-        mLifecycle.setPreferenceScreen(preferenceScreen);
-        super.setPreferenceScreen(preferenceScreen);
-    }
-
-    @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();
-    }
-
-    @CallSuper
-    @Override
-    public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
-        mLifecycle.onCreateOptionsMenu(menu, inflater);
-        super.onCreateOptionsMenu(menu, inflater);
-    }
-
-    @CallSuper
-    @Override
-    public void onPrepareOptionsMenu(final Menu menu) {
-        mLifecycle.onPrepareOptionsMenu(menu);
-        super.onPrepareOptionsMenu(menu);
-    }
-
-    @CallSuper
-    @Override
-    public boolean onOptionsItemSelected(final MenuItem menuItem) {
-        boolean lifecycleHandled = mLifecycle.onOptionsItemSelected(menuItem);
-        if (!lifecycleHandled) {
-            return super.onOptionsItemSelected(menuItem);
-        }
-        return lifecycleHandled;
-    }
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnAttach.java b/src/com/android/settings/core/lifecycle/events/OnAttach.java
deleted file mode 100644
index 74fbe2f..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnAttach.java
+++ /dev/null
@@ -1,22 +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.core.lifecycle.events;
-
-import android.content.Context;
-
-public interface OnAttach {
-    void onAttach(Context context);
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnCreate.java b/src/com/android/settings/core/lifecycle/events/OnCreate.java
deleted file mode 100644
index 9c97cf5..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnCreate.java
+++ /dev/null
@@ -1,23 +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.core.lifecycle.events;
-
-
-import android.os.Bundle;
-
-public interface OnCreate {
-    void onCreate(Bundle savedInstanceState);
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnCreateOptionsMenu.java b/src/com/android/settings/core/lifecycle/events/OnCreateOptionsMenu.java
deleted file mode 100644
index 4c794ba..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnCreateOptionsMenu.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.core.lifecycle.events;
-
-import android.view.Menu;
-import android.view.MenuInflater;
-
-public interface OnCreateOptionsMenu {
-    void onCreateOptionsMenu(Menu menu, MenuInflater inflater);
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnDestroy.java b/src/com/android/settings/core/lifecycle/events/OnDestroy.java
deleted file mode 100644
index 5499de8..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnDestroy.java
+++ /dev/null
@@ -1,20 +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.core.lifecycle.events;
-
-public interface OnDestroy {
-    void onDestroy();
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnPause.java b/src/com/android/settings/core/lifecycle/events/OnPause.java
deleted file mode 100644
index 155af00..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnPause.java
+++ /dev/null
@@ -1,20 +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.core.lifecycle.events;
-
-public interface OnPause {
-    void onPause();
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnPrepareOptionsMenu.java b/src/com/android/settings/core/lifecycle/events/OnPrepareOptionsMenu.java
deleted file mode 100644
index d642807..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnPrepareOptionsMenu.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.core.lifecycle.events;
-
-import android.view.Menu;
-import android.view.MenuInflater;
-
-public interface OnPrepareOptionsMenu {
-    void onPrepareOptionsMenu(Menu menu);
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnResume.java b/src/com/android/settings/core/lifecycle/events/OnResume.java
deleted file mode 100644
index 30ce42b..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnResume.java
+++ /dev/null
@@ -1,20 +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.core.lifecycle.events;
-
-public interface OnResume {
-    void onResume();
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnSaveInstanceState.java b/src/com/android/settings/core/lifecycle/events/OnSaveInstanceState.java
deleted file mode 100644
index fab4041..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnSaveInstanceState.java
+++ /dev/null
@@ -1,23 +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.core.lifecycle.events;
-
-import android.os.Bundle;
-
-
-public interface OnSaveInstanceState {
-    void onSaveInstanceState(Bundle outState);
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnStart.java b/src/com/android/settings/core/lifecycle/events/OnStart.java
deleted file mode 100644
index 3b4e6cc..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnStart.java
+++ /dev/null
@@ -1,21 +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.core.lifecycle.events;
-
-public interface OnStart {
-
-    void onStart();
-}
diff --git a/src/com/android/settings/core/lifecycle/events/OnStop.java b/src/com/android/settings/core/lifecycle/events/OnStop.java
deleted file mode 100644
index 8c19b87..0000000
--- a/src/com/android/settings/core/lifecycle/events/OnStop.java
+++ /dev/null
@@ -1,21 +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.core.lifecycle.events;
-
-public interface OnStop {
-
-    void onStop();
-}
diff --git a/src/com/android/settings/core/lifecycle/events/SetPreferenceScreen.java b/src/com/android/settings/core/lifecycle/events/SetPreferenceScreen.java
deleted file mode 100644
index d206ed3..0000000
--- a/src/com/android/settings/core/lifecycle/events/SetPreferenceScreen.java
+++ /dev/null
@@ -1,24 +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.core.lifecycle.events;
-
-import android.support.v7.preference.PreferenceScreen;
-
-public interface SetPreferenceScreen {
-
-    void setPreferenceScreen(PreferenceScreen preferenceScreen);
-}
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index f3a78aa..9f6c61c 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -41,12 +41,13 @@
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
 import com.android.settings.dashboard.suggestions.SuggestionsChecks;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.DashboardCategory;
 import com.android.settingslib.drawer.SettingsDrawerActivity;
 import com.android.settingslib.drawer.SettingsDrawerActivity.CategoryListener;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionList;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -257,7 +258,9 @@
             final Context context = getContext();
             boolean isSmartSuggestionEnabled =
                     mSuggestionFeatureProvider.isSmartSuggestionEnabled(context);
-            List<Tile> suggestions = mSuggestionParser.getSuggestions(isSmartSuggestionEnabled);
+            final SuggestionList sl = mSuggestionParser.getSuggestions(isSmartSuggestionEnabled);
+            final List<Tile> suggestions = sl.getSuggestions();
+
             if (isSmartSuggestionEnabled) {
                 List<String> suggestionIds = new ArrayList<>(suggestions.size());
                 for (Tile suggestion : suggestions) {
@@ -275,6 +278,9 @@
                     suggestions.remove(i--);
                 }
             }
+            if (sl.isExclusiveSuggestionCategory()) {
+                mSuggestionFeatureProvider.filterExclusiveSuggestions(suggestions);
+            }
             return suggestions;
         }
 
diff --git a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
index 0cc3d15..92055be 100644
--- a/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
+++ b/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java
@@ -30,10 +30,10 @@
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.Instrumentable;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnCreate;
-import com.android.settings.core.lifecycle.events.OnSaveInstanceState;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
 import java.util.ArrayList;
 import java.util.Collections;
diff --git a/src/com/android/settings/dashboard/SupportDashboardActivity.java b/src/com/android/settings/dashboard/SupportDashboardActivity.java
index 6cd6612..6787089 100644
--- a/src/com/android/settings/dashboard/SupportDashboardActivity.java
+++ b/src/com/android/settings/dashboard/SupportDashboardActivity.java
@@ -27,8 +27,6 @@
  */
 public class SupportDashboardActivity extends Activity {
 
-    public SupportDashboardActivity() {}
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
diff --git a/src/com/android/settings/dashboard/conditional/ConditionManager.java b/src/com/android/settings/dashboard/conditional/ConditionManager.java
index c67fb32..e1ca617 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionManager.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionManager.java
@@ -21,9 +21,9 @@
 import android.util.Log;
 import android.util.Xml;
 
-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.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 import org.xmlpull.v1.XmlSerializer;
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java b/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
index 820963f..776bd1e 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
@@ -22,8 +22,8 @@
 
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 public class SuggestionDismissController extends ItemTouchHelper.SimpleCallback {
 
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
index 14f5e9c..a5a6d7a 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProvider.java
@@ -18,8 +18,8 @@
 
 import android.content.Context;
 
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 import java.util.List;
 
@@ -46,6 +46,11 @@
     void rankSuggestions(final List<Tile> suggestions, List<String> suggestionIds);
 
     /**
+     * Only keep top few suggestions from exclusive suggestions.
+     */
+    void filterExclusiveSuggestions(List<Tile> suggestions);
+
+    /**
      * Dismisses a suggestion.
      */
     void dismissSuggestion(Context context, SuggestionParser parser, Tile suggestion);
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
index 01097bc..0a14232 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java
@@ -18,17 +18,21 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.util.Log;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 import java.util.List;
 
 public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider {
 
+    private static final String TAG = "SuggestionFeature";
+    private static final int EXCLUSIVE_SUGGESTION_MAX_COUNT = 3;
+
     private final SuggestionRanker mSuggestionRanker;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
@@ -62,6 +66,17 @@
     }
 
     @Override
+    public void filterExclusiveSuggestions(List<Tile> suggestions) {
+        if (suggestions == null) {
+            return;
+        }
+        for (int i = suggestions.size() - 1; i >= EXCLUSIVE_SUGGESTION_MAX_COUNT; i--) {
+            Log.d(TAG, "Removing exclusive suggestion");
+            suggestions.remove(i);
+        }
+    }
+
+    @Override
     public void dismissSuggestion(Context context, SuggestionParser parser, Tile suggestion) {
         if (parser == null || suggestion == null || context == null) {
             return;
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index 96740e2..af6306d 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -14,8 +14,6 @@
 
 package com.android.settings.datausage;
 
-import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
-
 import android.app.Activity;
 import android.app.LoaderManager;
 import android.content.Context;
@@ -23,18 +21,15 @@
 import android.content.Loader;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
-import android.content.pm.UserInfo;
 import android.graphics.drawable.Drawable;
 import android.net.INetworkStatsSession;
 import android.net.NetworkPolicy;
 import android.net.NetworkStatsHistory;
 import android.net.NetworkTemplate;
 import android.net.TrafficStats;
-import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.UserHandle;
-import android.os.UserManager;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
@@ -46,20 +41,15 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.applications.AppHeaderController;
 import com.android.settings.applications.AppInfoBase;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.AppItem;
-import com.android.settingslib.Utils;
 import com.android.settingslib.net.ChartData;
 import com.android.settingslib.net.ChartDataLoader;
 import com.android.settingslib.net.UidDetail;
 import com.android.settingslib.net.UidDetailProvider;
 
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
 
 public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener,
         DataSaverBackend.Listener {
@@ -79,6 +69,7 @@
     private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
 
     private static final int LOADER_CHART_DATA = 2;
+    private static final int LOADER_APP_PREF = 3;
 
     private final ArraySet<String> mPackages = new ArraySet<>();
     private Preference mTotalUsage;
@@ -105,12 +96,6 @@
     private SwitchPreference mUnrestrictedData;
     private DataSaverBackend mDataSaverBackend;
 
-    // Parameters to construct an efficient ThreadPoolExecutor
-    private static final int CPU_COUNT = Runtime.getRuntime().availableProcessors();
-    private static final int CORE_POOL_SIZE = Math.max(2, Math.min(CPU_COUNT - 1, 4));
-    private static final int MAXIMUM_POOL_SIZE = CPU_COUNT * 2 + 1;
-    private static final int KEEP_ALIVE_SECONDS = 30;
-
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -197,14 +182,7 @@
 
             if (mPackages.size() > 1) {
                 mAppList = (PreferenceCategory) findPreference(KEY_APP_LIST);
-                final int packageSize = mPackages.size();
-                final BlockingQueue<Runnable> workQueue = new LinkedBlockingQueue<>(packageSize);
-                final ThreadPoolExecutor executor = new ThreadPoolExecutor(CORE_POOL_SIZE,
-                        MAXIMUM_POOL_SIZE, KEEP_ALIVE_SECONDS, TimeUnit.SECONDS, workQueue);
-                for (int i = 1; i < mPackages.size(); i++) {
-                    final AppPrefLoader loader = new AppPrefLoader();
-                        loader.executeOnExecutor(executor, mPackages.valueAt(i));
-                }
+                getLoaderManager().initLoader(LOADER_APP_PREF, Bundle.EMPTY, mAppPrefCallbacks);
             } else {
                 removePreference(KEY_APP_LIST);
             }
@@ -344,17 +322,21 @@
         } catch (PackageManager.NameNotFoundException e) {
         }
 
+        final boolean showInfoButton = mAppItem.key > 0;
+
         final Activity activity = getActivity();
-        final Preference pref = FeatureFactory.getFactory(activity)
-            .getApplicationFeatureProvider(activity)
-            .newAppHeaderController(this, null /* appHeader */)
-            .setIcon(mIcon)
-            .setLabel(mLabel)
-            .setPackageName(pkg)
-            .setUid(uid)
-            .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
-                AppHeaderController.ActionType.ACTION_NONE)
-            .done(activity, getPrefContext());
+        final Preference pref = EntityHeaderController
+                .newInstance(activity, this, null /* header */)
+                .setRecyclerView(getListView(), getLifecycle())
+                .setButtonActions(showInfoButton
+                                ? EntityHeaderController.ActionType.ACTION_APP_INFO
+                                : EntityHeaderController.ActionType.ACTION_NONE,
+                        EntityHeaderController.ActionType.ACTION_NONE)
+                .setIcon(mIcon)
+                .setLabel(mLabel)
+                .setPackageName(pkg)
+                .setUid(uid)
+                .done(activity, getPrefContext());
         getPreferenceScreen().addPreference(pref);
     }
 
@@ -399,30 +381,27 @@
         }
     };
 
-    private class AppPrefLoader extends AsyncTask<String, Void, Preference> {
-        @Override
-        protected Preference doInBackground(String... params) {
-            PackageManager pm = getPackageManager();
-            String pkg = params[0];
-            try {
-                ApplicationInfo info = pm.getApplicationInfo(pkg, 0);
-                Preference preference = new Preference(getPrefContext());
-                preference.setIcon(info.loadIcon(pm));
-                preference.setTitle(info.loadLabel(pm));
-                preference.setSelectable(false);
-                return preference;
-            } catch (PackageManager.NameNotFoundException e) {
+    private final LoaderManager.LoaderCallbacks<ArraySet<Preference>> mAppPrefCallbacks =
+        new LoaderManager.LoaderCallbacks<ArraySet<Preference>>() {
+            @Override
+            public Loader<ArraySet<Preference>> onCreateLoader(int i, Bundle bundle) {
+                return new AppPrefLoader(getPrefContext(), mPackages, getPackageManager());
             }
-            return null;
-        }
 
-        @Override
-        protected void onPostExecute(Preference pref) {
-            if (pref != null && mAppList != null) {
-                mAppList.addPreference(pref);
+            @Override
+            public void onLoadFinished(Loader<ArraySet<Preference>> loader,
+                    ArraySet<Preference> preferences) {
+                if (preferences != null && mAppList != null) {
+                    for (Preference preference : preferences) {
+                        mAppList.addPreference(preference);
+                    }
+                }
             }
-        }
-    }
+
+            @Override
+            public void onLoaderReset(Loader<ArraySet<Preference>> loader) {
+            }
+        };
 
     @Override
     public void onDataSaverChanged(boolean isDataSaving) {
diff --git a/src/com/android/settings/datausage/AppPrefLoader.java b/src/com/android/settings/datausage/AppPrefLoader.java
new file mode 100644
index 0000000..30e30eb
--- /dev/null
+++ b/src/com/android/settings/datausage/AppPrefLoader.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.support.v7.preference.Preference;
+import android.util.ArraySet;
+import com.android.settings.utils.AsyncLoader;
+
+public class AppPrefLoader extends AsyncLoader<ArraySet<Preference>> {
+    private ArraySet<String> mPackages;
+    private PackageManager mPackageManager;
+    private Context mPrefContext;
+
+    public AppPrefLoader(Context prefContext, ArraySet<String> pkgs, PackageManager pm) {
+        super(prefContext);
+        mPackages = pkgs;
+        mPackageManager = pm;
+        mPrefContext = prefContext;
+    }
+
+    @Override
+    public ArraySet<Preference> loadInBackground() {
+        ArraySet<Preference> results = new ArraySet<>();
+        for (int i = 1, size = mPackages.size(); i < size; i++) {
+            try {
+                ApplicationInfo info = mPackageManager.getApplicationInfo(mPackages.valueAt(i), 0);
+                Preference preference = new Preference(mPrefContext);
+                preference.setIcon(info.loadIcon(mPackageManager));
+                preference.setTitle(info.loadLabel(mPackageManager));
+                preference.setSelectable(false);
+                results.add(preference);
+            } catch (PackageManager.NameNotFoundException e) {
+            }
+        }
+        return results;
+    }
+
+    @Override
+    protected void onDiscardResult(ArraySet<Preference> result) {
+    }
+}
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 16172bd..5a84d13 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -71,10 +71,11 @@
     public static final boolean TEST_RADIOS = false;
     public static final String TEST_RADIOS_PROP = "test.radios";
 
+    public static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+    public static final String KEY_NETWORK_RESTRICTIONS = "network_restrictions";
+
     private static final String KEY_STATUS_HEADER = "status_header";
     private static final String KEY_LIMIT_SUMMARY = "limit_summary";
-    private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
-    private static final String KEY_NETWORK_RESTRICTIONS = "network_restrictions";
     private static final String KEY_WIFI_USAGE_TITLE = "wifi_category";
 
     private DataUsageController mDataUsageController;
@@ -465,7 +466,7 @@
             @Override
             public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                     boolean enabled) {
-                ArrayList<SearchIndexableResource> resources = new ArrayList<>();
+                List<SearchIndexableResource> resources = new ArrayList<>();
                 SearchIndexableResource resource = new SearchIndexableResource(context);
                 resource.xmlResId = R.xml.data_usage;
                 resources.add(resource);
@@ -485,13 +486,14 @@
 
             @Override
             public List<String> getNonIndexableKeys(Context context) {
-                ArrayList<String> keys = new ArrayList<>();
-                boolean hasMobileData = ConnectivityManager.from(context).isNetworkSupported(
-                        ConnectivityManager.TYPE_MOBILE);
+                List<String> keys = super.getNonIndexableKeys(context);
 
-                if (hasMobileData) {
+                if (hasMobileData(context)) {
                     keys.add(KEY_RESTRICT_BACKGROUND);
                 }
+                if (hasWifiRadio(context)) {
+                    keys.add(KEY_NETWORK_RESTRICTIONS);
+                }
                 keys.add(KEY_WIFI_USAGE_TITLE);
 
                 return keys;
diff --git a/src/com/android/settings/datetime/TimeChangeListenerMixin.java b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
index f3729ae..f93ee0c 100644
--- a/src/com/android/settings/datetime/TimeChangeListenerMixin.java
+++ b/src/com/android/settings/datetime/TimeChangeListenerMixin.java
@@ -21,9 +21,9 @@
 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;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class TimeChangeListenerMixin extends BroadcastReceiver
         implements LifecycleObserver, OnPause, OnResume {
diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index 2b3b826..b4dda75 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -82,13 +82,13 @@
 
 import com.android.internal.app.LocalePicker;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.DashboardFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.webview.WebViewAppPreferenceController;
diff --git a/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java b/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
new file mode 100644
index 0000000..9ea24da
--- /dev/null
+++ b/src/com/android/settings/development/DevelopmentSettingsDisabledActivity.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.widget.Toast;
+
+import com.android.settings.R;
+
+public class DevelopmentSettingsDisabledActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Toast.makeText(this, R.string.dev_settings_disabled_warning, Toast.LENGTH_SHORT).show();
+        finish();
+    }
+}
diff --git a/src/com/android/settings/development/DevelopmentSettingsEnabler.java b/src/com/android/settings/development/DevelopmentSettingsEnabler.java
index e97997e..7132631 100644
--- a/src/com/android/settings/development/DevelopmentSettingsEnabler.java
+++ b/src/com/android/settings/development/DevelopmentSettingsEnabler.java
@@ -20,9 +20,9 @@
 import android.content.SharedPreferences;
 import android.provider.Settings;
 
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class DevelopmentSettingsEnabler implements LifecycleObserver, OnResume {
 
diff --git a/src/com/android/settings/development/TelephonyMonitorPreferenceController.java b/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
index 135af7d..c21ccda 100644
--- a/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
+++ b/src/com/android/settings/development/TelephonyMonitorPreferenceController.java
@@ -23,15 +23,27 @@
 import android.support.v7.preference.PreferenceScreen;
 import android.widget.Toast;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.R;
 
 public class TelephonyMonitorPreferenceController extends PreferenceController {
 
     private static final String KEY_TELEPHONY_MONITOR_SWITCH = "telephony_monitor_switch";
+    @VisibleForTesting
     static final String BUILD_TYPE = "ro.build.type";
+    @VisibleForTesting
     static final String PROPERTY_TELEPHONY_MONITOR = "persist.radio.enable_tel_mon";
 
+    @VisibleForTesting
+    static final String ENABLED_STATUS = "enabled";
+    @VisibleForTesting
+    static final String DISABLED_STATUS = "disabled";
+    @VisibleForTesting
+    static final String USER_ENABLED_STATUS = "user_enabled";
+    @VisibleForTesting
+    static final String USER_DISABLED_STATUS = "user_disabled";
+
     private SwitchPreference mPreference;
 
     public TelephonyMonitorPreferenceController(Context context) {
@@ -43,7 +55,7 @@
         super.displayPreference(screen);
         if (isAvailable()) {
             mPreference = (SwitchPreference) screen.findPreference(KEY_TELEPHONY_MONITOR_SWITCH);
-            mPreference.setChecked(SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false));
+            mPreference.setChecked(isTelephonyMonitorEnabled());
         }
     }
 
@@ -69,7 +81,7 @@
         if (KEY_TELEPHONY_MONITOR_SWITCH.equals(preference.getKey())) {
             final SwitchPreference switchPreference = (SwitchPreference) preference;
             SystemProperties.set(PROPERTY_TELEPHONY_MONITOR,
-                    switchPreference.isChecked() ? "true" : "false");
+                    switchPreference.isChecked() ? USER_ENABLED_STATUS : USER_DISABLED_STATUS);
             Toast.makeText(mContext, R.string.telephony_monitor_toast,
                     Toast.LENGTH_LONG).show();
             return true;
@@ -87,9 +99,14 @@
         if (!isAvailable()) {
             return false;
         }
-        final boolean enabled = SystemProperties.getBoolean(PROPERTY_TELEPHONY_MONITOR, false);
+        final boolean enabled = isTelephonyMonitorEnabled();
         mPreference.setChecked(enabled);
         return enabled;
     }
 
+    private boolean isTelephonyMonitorEnabled() {
+        final String tmStatus = SystemProperties.get(PROPERTY_TELEPHONY_MONITOR, DISABLED_STATUS);
+        return ENABLED_STATUS.equals(tmStatus) || USER_ENABLED_STATUS.equals(tmStatus);
+    }
+
 }
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index bee1351..9232838 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -30,18 +30,18 @@
 import android.widget.Toast;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.development.DevelopmentSettings;
 import com.android.settings.development.DevelopmentSettingsEnabler;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class BuildNumberPreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume {
diff --git a/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceController.java b/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceController.java
index e8792f2..1b56301 100644
--- a/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceController.java
@@ -27,10 +27,10 @@
 import android.util.Log;
 
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 
 public class FirmwareVersionPreferenceController extends PreferenceController
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java b/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
index 4724c3d..88b9487 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
@@ -25,11 +25,11 @@
 
 import com.android.settings.R;
 import com.android.settings.applications.PackageManagerWrapper;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnCreateOptionsMenu;
-import com.android.settings.core.lifecycle.events.OnOptionsItemSelected;
-import com.android.settings.core.lifecycle.events.OnPrepareOptionsMenu;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreateOptionsMenu;
+import com.android.settingslib.core.lifecycle.events.OnOptionsItemSelected;
+import com.android.settingslib.core.lifecycle.events.OnPrepareOptionsMenu;
 
 import java.util.Objects;
 
diff --git a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
index 57f7345..4974f78 100644
--- a/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageDashboardFragment.java
@@ -133,7 +133,11 @@
 
         mPreferenceController.onLoadFinished(mAppsResult.get(UserHandle.myUserId()));
         updateSecondaryUserControllers(mSecondaryUsers, mAppsResult);
-        setLoading(false, true);
+
+        // setLoading always causes a flicker, so let's avoid doing it.
+        if (getView().findViewById(R.id.loading_container).getVisibility() == View.VISIBLE) {
+            setLoading(false, true);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index b2bad3a..ce9ea9b 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -235,7 +235,7 @@
             args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
             Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
                     StorageDashboardFragment.class.getName(), args, null,
-                    R.string.storage_settings_2, null, false, getMetricsCategory());
+                    R.string.storage_settings, null, false, getMetricsCategory());
             intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
             getActivity().startActivity(intent);
             finish();
@@ -280,7 +280,7 @@
 
                 if (VolumeInfo.ID_PRIVATE_INTERNAL.equals(vol.getId())) {
                     startFragment(this, StorageDashboardFragment.class.getCanonicalName(),
-                            R.string.storage_settings_2, 0, args);
+                            R.string.storage_settings, 0, args);
                 } else {
                     // TODO: Go to the StorageDashboardFragment once it fully handles all of the
                     //       SD card cases and other private internal storage cases.
diff --git a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
index a8ca5b9..acd34f0 100644
--- a/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/AutomaticStorageManagementSwitchPreferenceController.java
@@ -26,12 +26,12 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.deletionhelper.ActivationWarningFragment;
 import com.android.settings.widget.MasterSwitchController;
 import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settings.widget.SwitchWidgetController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class AutomaticStorageManagementSwitchPreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume, SwitchWidgetController.OnSwitchChangeListener {
diff --git a/src/com/android/settings/display/AutoRotatePreferenceController.java b/src/com/android/settings/display/AutoRotatePreferenceController.java
index af2cd85..a39cde5 100644
--- a/src/com/android/settings/display/AutoRotatePreferenceController.java
+++ b/src/com/android/settings/display/AutoRotatePreferenceController.java
@@ -21,11 +21,11 @@
 import com.android.internal.view.RotationPolicy;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-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.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class AutoRotatePreferenceController extends PreferenceController implements
         Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index a6e5ed7..3436d2d 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -31,10 +31,10 @@
 import android.util.Log;
 
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.text.NumberFormat;
 
diff --git a/src/com/android/settings/display/DozeAlwaysOnPreferenceController.java b/src/com/android/settings/display/DozeAlwaysOnPreferenceController.java
new file mode 100644
index 0000000..e3e2e2d
--- /dev/null
+++ b/src/com/android/settings/display/DozeAlwaysOnPreferenceController.java
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.display;
+
+import static android.provider.Settings.Secure.DOZE_ALWAYS_ON;
+
+
+import android.content.Context;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+import android.support.v7.preference.Preference;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.settings.core.PreferenceController;
+
+public class DozeAlwaysOnPreferenceController extends PreferenceController implements
+        Preference.OnPreferenceChangeListener {
+
+    private static final String KEY_DOZE_ALWAYS_ON = "doze_always_on";
+    private static final int MY_USER = UserHandle.myUserId();
+
+    private final AmbientDisplayConfiguration mConfig;
+
+    public DozeAlwaysOnPreferenceController(Context context, AmbientDisplayConfiguration config) {
+        super(context);
+        mConfig = config;
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_DOZE_ALWAYS_ON;
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        ((SwitchPreference) preference).setChecked(mConfig.alwaysOnEnabled(MY_USER));
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        int enabled = (boolean) newValue ? 1 : 0;
+        Settings.Secure.putInt(mContext.getContentResolver(), DOZE_ALWAYS_ON, enabled);
+        return true;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mConfig.alwaysOnAvailable();
+    }
+}
diff --git a/src/com/android/settings/display/DozePreferenceController.java b/src/com/android/settings/display/DozePreferenceController.java
index ad72053..36c850e 100644
--- a/src/com/android/settings/display/DozePreferenceController.java
+++ b/src/com/android/settings/display/DozePreferenceController.java
@@ -14,16 +14,15 @@
 package com.android.settings.display;
 
 import android.content.Context;
-import android.os.Build;
-import android.os.SystemProperties;
+import android.os.UserHandle;
 import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
 import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
-import android.text.TextUtils;
 
+import com.android.internal.hardware.AmbientDisplayConfiguration;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.overlay.FeatureFactory;
 
 import static android.provider.Settings.Secure.DOZE_ENABLED;
 import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_AMBIENT_DISPLAY;
@@ -31,13 +30,18 @@
 public class DozePreferenceController extends PreferenceController implements
         Preference.OnPreferenceChangeListener {
 
-    private static final String KEY_DOZE = "doze";
+    @VisibleForTesting
+    static final String KEY_DOZE = "doze";
+    private static final int MY_USER = UserHandle.myUserId();
 
     private final MetricsFeatureProvider mMetricsFeatureProvider;
+    private final AmbientDisplayConfiguration mConfig;
 
-    public DozePreferenceController(Context context) {
+    public DozePreferenceController(Context context, AmbientDisplayConfiguration config,
+            MetricsFeatureProvider metricsFeatureProvider) {
         super(context);
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        mMetricsFeatureProvider = metricsFeatureProvider;
+        mConfig = config;
     }
 
     @Override
@@ -55,8 +59,7 @@
 
     @Override
     public void updateState(Preference preference) {
-        int value = Settings.Secure.getInt(mContext.getContentResolver(), DOZE_ENABLED, 1);
-        ((SwitchPreference) preference).setChecked(value != 0);
+        ((SwitchPreference) preference).setChecked(mConfig.pulseOnNotificationEnabled(MY_USER));
     }
 
     @Override
@@ -68,11 +71,6 @@
 
     @Override
     public boolean isAvailable() {
-        String name = Build.IS_DEBUGGABLE ? SystemProperties.get("debug.doze.component") : null;
-        if (TextUtils.isEmpty(name)) {
-            name = mContext.getResources().getString(
-                    com.android.internal.R.string.config_dozeComponent);
-        }
-        return !TextUtils.isEmpty(name);
+        return mConfig.pulseOnNotificationAvailable();
     }
 }
diff --git a/src/com/android/settings/display/NightDisplaySettings.java b/src/com/android/settings/display/NightDisplaySettings.java
index 1da16fe..799ab2d 100644
--- a/src/com/android/settings/display/NightDisplaySettings.java
+++ b/src/com/android/settings/display/NightDisplaySettings.java
@@ -28,7 +28,7 @@
 import com.android.internal.app.NightDisplayController;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.SeekBarPreference;
+import com.android.settings.widget.SeekBarPreference;
 import com.android.settings.SettingsPreferenceFragment;
 
 import java.text.DateFormat;
diff --git a/src/com/android/settings/display/ThemePreferenceController.java b/src/com/android/settings/display/ThemePreferenceController.java
index 99a19f8..c38ed28 100644
--- a/src/com/android/settings/display/ThemePreferenceController.java
+++ b/src/com/android/settings/display/ThemePreferenceController.java
@@ -90,11 +90,20 @@
         pref.setEntries(labels);
         pref.setEntryValues(pkgs);
         String theme = getCurrentTheme();
-        if (TextUtils.isEmpty(theme)) {
-            theme = mContext.getString(R.string.default_theme);
-            pref.setSummary(theme);
+        CharSequence themeLabel = null;
+
+        for (int i = 0; i < pkgs.length; i++) {
+            if (TextUtils.equals(pkgs[i], theme)) {
+                themeLabel = labels[i];
+                break;
+            }
         }
-        pref.setSummary(theme);
+
+        if (TextUtils.isEmpty(themeLabel)) {
+            themeLabel = mContext.getString(R.string.default_theme);
+        }
+
+        pref.setSummary(themeLabel);
         pref.setValue(theme);
     }
 
@@ -127,7 +136,7 @@
                     UserHandle.myUserId());
             for (int i = 0, size = infos.size(); i < size; i++) {
                 if (infos.get(i).isEnabled() &&
-                         isChangeableOverlay(infos.get(i).packageName)) {
+                        isChangeableOverlay(infos.get(i).packageName)) {
                     return infos.get(i).packageName;
                 }
             }
diff --git a/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
index 003ed11..be41e4d 100644
--- a/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedCameraPermissionPreferenceController.java
@@ -17,7 +17,7 @@
 import android.Manifest;
 import android.content.Context;
 
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AdminGrantedCameraPermissionPreferenceController extends
         AdminGrantedPermissionsPreferenceControllerBase {
diff --git a/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
index 5343483..77c6040 100644
--- a/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedLocationPermissionsPreferenceController.java
@@ -17,7 +17,7 @@
 import android.Manifest;
 import android.content.Context;
 
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AdminGrantedLocationPermissionsPreferenceController extends
         AdminGrantedPermissionsPreferenceControllerBase {
diff --git a/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java b/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
index 64396c5..9896420 100644
--- a/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
+++ b/src/com/android/settings/enterprise/AdminGrantedMicrophonePermissionPreferenceController.java
@@ -17,7 +17,7 @@
 import android.Manifest;
 import android.content.Context;
 
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AdminGrantedMicrophonePermissionPreferenceController extends
         AdminGrantedPermissionsPreferenceControllerBase {
diff --git a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
index f0aca01..1fe35a3 100644
--- a/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/AdminGrantedPermissionsPreferenceControllerBase.java
@@ -21,8 +21,8 @@
 import com.android.settings.R;
 import com.android.settings.applications.ApplicationFeatureProvider;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public abstract class AdminGrantedPermissionsPreferenceControllerBase
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
index e98ece8..a2ff5b6 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnCurrentUserPreferenceController.java
@@ -18,8 +18,8 @@
 
 import com.android.settings.R;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AlwaysOnVpnCurrentUserPreferenceController
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
index 4796b75..9851252 100644
--- a/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/AlwaysOnVpnManagedProfilePreferenceController.java
@@ -16,8 +16,8 @@
 import android.content.Context;
 
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AlwaysOnVpnManagedProfilePreferenceController
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/CaCertsPreferenceController.java b/src/com/android/settings/enterprise/CaCertsPreferenceController.java
index d020676..c5203c7 100644
--- a/src/com/android/settings/enterprise/CaCertsPreferenceController.java
+++ b/src/com/android/settings/enterprise/CaCertsPreferenceController.java
@@ -20,8 +20,8 @@
 
 import com.android.settings.R;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class CaCertsPreferenceController extends DynamicAvailabilityPreferenceController {
 
diff --git a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
index acbcc2e..9a64788 100644
--- a/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseInstalledPackagesPreferenceController.java
@@ -19,8 +19,8 @@
 import com.android.settings.R;
 import com.android.settings.applications.ApplicationFeatureProvider;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class EnterpriseInstalledPackagesPreferenceController
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
index 69e0416..e45373d 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacyPreferenceController.java
@@ -18,8 +18,8 @@
 
 import com.android.settings.R;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class EnterprisePrivacyPreferenceController extends DynamicAvailabilityPreferenceController {
 
diff --git a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
index a80dec0..b6860e3 100644
--- a/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
+++ b/src/com/android/settings/enterprise/EnterprisePrivacySettings.java
@@ -22,10 +22,10 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
index 2f43a61..946631e 100644
--- a/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
+++ b/src/com/android/settings/enterprise/EnterpriseSetDefaultAppsPreferenceController.java
@@ -21,9 +21,9 @@
 import com.android.settings.applications.ApplicationFeatureProvider;
 import com.android.settings.applications.EnterpriseDefaultApps;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.users.UserFeatureProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class EnterpriseSetDefaultAppsPreferenceController
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java b/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
index d3f9a98..d7f8dc0 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipeCurrentUserPreferenceController.java
@@ -15,7 +15,7 @@
 
 import android.content.Context;
 
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class FailedPasswordWipeCurrentUserPreferenceController
         extends FailedPasswordWipePreferenceControllerBase {
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java b/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
index 205d7c1..739003a 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipeManagedProfilePreferenceController.java
@@ -14,7 +14,7 @@
 package com.android.settings.enterprise;
 
 import android.content.Context;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class FailedPasswordWipeManagedProfilePreferenceController
         extends FailedPasswordWipePreferenceControllerBase {
diff --git a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
index 2f35da6..530de1c 100644
--- a/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
+++ b/src/com/android/settings/enterprise/FailedPasswordWipePreferenceControllerBase.java
@@ -20,8 +20,8 @@
 
 import com.android.settings.R;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public abstract class FailedPasswordWipePreferenceControllerBase
         extends DynamicAvailabilityPreferenceController {
diff --git a/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java b/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
index 6ee7fc4..277b623 100644
--- a/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
+++ b/src/com/android/settings/enterprise/GlobalHttpProxyPreferenceController.java
@@ -16,8 +16,8 @@
 import android.content.Context;
 
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class GlobalHttpProxyPreferenceController extends DynamicAvailabilityPreferenceController {
 
diff --git a/src/com/android/settings/enterprise/ImePreferenceController.java b/src/com/android/settings/enterprise/ImePreferenceController.java
index b090bed..f2d5ddf 100644
--- a/src/com/android/settings/enterprise/ImePreferenceController.java
+++ b/src/com/android/settings/enterprise/ImePreferenceController.java
@@ -20,8 +20,8 @@
 
 import com.android.settings.R;
 import com.android.settings.core.DynamicAvailabilityPreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class ImePreferenceController extends DynamicAvailabilityPreferenceController {
 
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
index d581804..df7bf3c 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
@@ -26,9 +26,9 @@
 import android.widget.Button;
 import android.widget.TextView;
 
-import com.android.settings.ChooseLockSettingsHelper;
-import com.android.settings.core.InstrumentedActivity;
 import com.android.settings.R;
+import com.android.settings.core.InstrumentedActivity;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.setupwizardlib.GlifLayout;
 
 /**
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
index e6e6bcd..964e046 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
@@ -40,9 +40,9 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 /**
  * Activity which handles the actual enrolling for fingerprint.
@@ -159,6 +159,14 @@
         startIconAnimation();
     }
 
+    @Override
+    protected void onPause() {
+        super.onPause();
+        if (mSidecar != null) {
+            mSidecar.setListener(null);
+        }
+    }
+
     private void startIconAnimation() {
         mIconAnimationDrawable.start();
     }
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
index 510e953..2aad313 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
@@ -22,10 +22,10 @@
 import android.os.UserHandle;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.fingerprint.FingerprintEnrollSidecar.Listener;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 /**
  * Activity explaining the fingerprint sensor location for fingerprint enrollment.
@@ -82,9 +82,7 @@
             @Override
             public void onEnrollmentProgressChange(int steps, int remaining) {
                 mNextClicked = true;
-                if (!mSidecar.cancelEnrollment()) {
-                    proceedToEnrolling();
-                }
+                proceedToEnrolling(true /* cancelEnrollment */);
             }
 
             @Override
@@ -95,7 +93,7 @@
             public void onEnrollmentError(int errMsgId, CharSequence errString) {
                 if (mNextClicked && errMsgId == FingerprintManager.FINGERPRINT_ERROR_CANCELED) {
                     mNextClicked = false;
-                    proceedToEnrolling();
+                    proceedToEnrolling(false /* cancelEnrollment */);
                 }
             }
         });
@@ -123,15 +121,23 @@
     @Override
     protected void onNextButtonClick() {
         mNextClicked = true;
-        if (mSidecar == null || (mSidecar != null && !mSidecar.cancelEnrollment())) {
-            proceedToEnrolling();
-        }
+        proceedToEnrolling(true /* cancelEnrollment */);
     }
 
-    private void proceedToEnrolling() {
-        getFragmentManager().beginTransaction().remove(mSidecar).commit();
-        mSidecar = null;
-        startActivityForResult(getEnrollingIntent(), ENROLLING);
+    private void proceedToEnrolling(boolean cancelEnrollment) {
+        if (mSidecar != null) {
+            if (cancelEnrollment) {
+                if (mSidecar.cancelEnrollment()) {
+                    // Enrollment cancel requested. When the cancellation is successful,
+                    // onEnrollmentError will be called with FINGERPRINT_ERROR_CANCELED, calling
+                    // this again.
+                    return;
+                }
+            }
+            getFragmentManager().beginTransaction().remove(mSidecar).commitAllowingStateLoss();
+            mSidecar = null;
+            startActivityForResult(getEnrollingIntent(), ENROLLING);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
index 551564d..dd83121 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java
@@ -29,10 +29,10 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockGeneric;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.Utils;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.setupwizardlib.span.LinkSpan;
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
index e0c5d65..9ab561d 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollSidecar.java
@@ -26,14 +26,18 @@
 import android.os.UserHandle;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.Utils;
-import com.android.settings.core.InstrumentedPreferenceFragment;
+import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.password.ChooseLockSettingsHelper;
+
+import com.android.settings.password.IFingerprintManager;
+
+import java.util.ArrayList;
 
 /**
  * Sidecar fragment to handle the state around fingerprint enrollment.
  */
-public class FingerprintEnrollSidecar extends InstrumentedPreferenceFragment {
+public class FingerprintEnrollSidecar extends InstrumentedFragment {
 
     private int mEnrollmentSteps = -1;
     private int mEnrollmentRemaining = 0;
@@ -44,7 +48,58 @@
     private byte[] mToken;
     private boolean mDone;
     private int mUserId;
-    private FingerprintManager mFingerprintManager;
+    private IFingerprintManager mFingerprintManager;
+    private ArrayList<QueuedEvent> mQueuedEvents;
+
+    private abstract class QueuedEvent {
+        public abstract void send(Listener listener);
+    }
+
+    private class QueuedEnrollmentProgress extends QueuedEvent {
+        int enrollmentSteps;
+        int remaining;
+        public QueuedEnrollmentProgress(int enrollmentSteps, int remaining) {
+            this.enrollmentSteps = enrollmentSteps;
+            this.remaining = remaining;
+        }
+
+        @Override
+        public void send(Listener listener) {
+            listener.onEnrollmentProgressChange(enrollmentSteps, remaining);
+        }
+    }
+
+    private class QueuedEnrollmentHelp extends QueuedEvent {
+        int helpMsgId;
+        CharSequence helpString;
+        public QueuedEnrollmentHelp(int helpMsgId, CharSequence helpString) {
+            this.helpMsgId = helpMsgId;
+            this.helpString = helpString;
+        }
+
+        @Override
+        public void send(Listener listener) {
+            listener.onEnrollmentHelp(helpString);
+        }
+    }
+
+    private class QueuedEnrollmentError extends QueuedEvent {
+        int errMsgId;
+        CharSequence errString;
+        public QueuedEnrollmentError(int errMsgId, CharSequence errString) {
+            this.errMsgId = errMsgId;
+            this.errString = errString;
+        }
+
+        @Override
+        public void send(Listener listener) {
+            listener.onEnrollmentError(errMsgId, errString);
+        }
+    }
+
+    public FingerprintEnrollSidecar() {
+        mQueuedEvents = new ArrayList<>();
+    }
 
     @Override
     public void onCreate(@Nullable Bundle savedInstanceState) {
@@ -55,7 +110,7 @@
     @Override
     public void onAttach(Activity activity) {
         super.onAttach(activity);
-        mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
+        mFingerprintManager = Utils.getFingerprintManagerWrapperOrNull(activity);
         mToken = activity.getIntent().getByteArrayExtra(
                 ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
         mUserId = activity.getIntent().getIntExtra(Intent.EXTRA_USER_ID, UserHandle.USER_NULL);
@@ -102,6 +157,13 @@
 
     public void setListener(Listener listener) {
         mListener = listener;
+        if (mListener != null) {
+            for (int i=0; i<mQueuedEvents.size(); i++) {
+                QueuedEvent event = mQueuedEvents.get(i);
+                event.send(mListener);
+            }
+            mQueuedEvents.clear();
+        }
     }
 
     public int getEnrollmentSteps() {
@@ -128,6 +190,8 @@
             mDone = remaining == 0;
             if (mListener != null) {
                 mListener.onEnrollmentProgressChange(mEnrollmentSteps, remaining);
+            } else {
+                mQueuedEvents.add(new QueuedEnrollmentProgress(mEnrollmentSteps, remaining));
             }
         }
 
@@ -135,6 +199,8 @@
         public void onEnrollmentHelp(int helpMsgId, CharSequence helpString) {
             if (mListener != null) {
                 mListener.onEnrollmentHelp(helpString);
+            } else {
+                mQueuedEvents.add(new QueuedEnrollmentHelp(helpMsgId, helpString));
             }
         }
 
@@ -142,6 +208,8 @@
         public void onEnrollmentError(int errMsgId, CharSequence errString) {
             if (mListener != null) {
                 mListener.onEnrollmentError(errMsgId, errString);
+            } else {
+                mQueuedEvents.add(new QueuedEnrollmentError(errMsgId, errString));
             }
             mEnrolling = false;
         }
diff --git a/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java b/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
index eda4c82..462d09e 100644
--- a/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
+++ b/src/com/android/settings/fingerprint/FingerprintRemoveSidecar.java
@@ -53,7 +53,7 @@
     private FingerprintManager.RemovalCallback
             mRemoveCallback = new FingerprintManager.RemovalCallback() {
         @Override
-        public void onRemovalSucceeded(Fingerprint fingerprint) {
+        public void onRemovalSucceeded(Fingerprint fingerprint, int remaining) {
             if (mListener != null) {
                 mListener.onRemovalSucceeded(fingerprint);
             } else {
diff --git a/src/com/android/settings/fingerprint/FingerprintSettings.java b/src/com/android/settings/fingerprint/FingerprintSettings.java
index fb59c59..a5595f9 100644
--- a/src/com/android/settings/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/fingerprint/FingerprintSettings.java
@@ -46,8 +46,8 @@
 import android.text.SpannableString;
 import android.text.SpannableStringBuilder;
 import android.text.TextPaint;
-import android.text.style.URLSpan;
 import android.text.TextUtils;
+import android.text.style.URLSpan;
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.View;
@@ -56,21 +56,20 @@
 import android.widget.Toast;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockGeneric;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.SubSettings;
 import com.android.settings.Utils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.widget.FooterPreference;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settingslib.HelpUtils;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import com.android.settingslib.widget.FooterPreference;
 
-import java.util.List;
 import java.util.HashMap;
-
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+import java.util.List;
 
 /**
  * Settings screen for fingerprints
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
index aff1028..d7a4a73 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
@@ -21,9 +21,9 @@
 import android.os.UserHandle;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSensor {
 
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
index 92ea5cb..4d7395d 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
@@ -23,9 +23,9 @@
 import android.widget.TextView;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
+import com.android.settings.password.ChooseLockSettingsHelper;
 
 public class SetupFingerprintEnrollFinish extends FingerprintEnrollFinish {
 
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
index 3951aff..26b3427 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -17,6 +17,7 @@
 package com.android.settings.fingerprint;
 
 import android.app.KeyguardManager;
+import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.UserHandle;
@@ -26,14 +27,20 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
-import com.android.settings.SetupChooseLockGeneric;
 import com.android.settings.SetupWizardUtils;
+import com.android.settings.password.ChooseLockGeneric;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.password.SetupChooseLockGeneric;
 
 public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntroduction {
 
     @Override
     protected Intent getChooseLockIntent() {
-        Intent intent = new Intent(this, SetupChooseLockGeneric.class);
+        Intent intent = new Intent(this, SetupChooseLockGeneric.class)
+                .putExtra(
+                        LockPatternUtils.PASSWORD_TYPE_KEY,
+                        DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
         SetupWizardUtils.copySetupExtras(getIntent(), intent);
         return intent;
     }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 7a2e4c0..9bab3ce 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -37,13 +37,12 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
-import com.android.settings.applications.AppHeaderController;
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.enterprise.DevicePolicyManagerWrapperImpl;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 
@@ -180,14 +179,14 @@
 
     @VisibleForTesting
     void initHeader() {
-        final View appSnippet = mHeaderPreference.findViewById(R.id.app_snippet);
+        final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
         final Activity context = getActivity();
         final Bundle bundle = getArguments();
-        AppHeaderController controller = FeatureFactory.getFactory(context)
-                .getApplicationFeatureProvider(context)
-                .newAppHeaderController(this, appSnippet)
-                .setButtonActions(AppHeaderController.ActionType.ACTION_NONE,
-                        AppHeaderController.ActionType.ACTION_NONE);
+        EntityHeaderController controller = EntityHeaderController
+                .newInstance(context, this, appSnippet)
+                .setRecyclerView(getListView(), getLifecycle())
+                .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
+                        EntityHeaderController.ActionType.ACTION_NONE);
 
         if (mAppEntry == null) {
             controller.setLabel(bundle.getString(EXTRA_LABEL));
@@ -224,7 +223,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return R.xml.power_usage_detail_ia;
+        return R.xml.power_usage_detail;
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
index 49a0179..f4f6c36 100644
--- a/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/AppButtonsPreferenceController.java
@@ -52,16 +52,16 @@
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnDestroy;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.ArrayList;
 import java.util.HashSet;
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java
index 34c9a26..5d64f1c 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverController.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverController.java
@@ -31,13 +31,13 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnStart;
-import com.android.settings.core.lifecycle.events.OnStop;
 import com.android.settings.dashboard.conditional.BatterySaverCondition;
 import com.android.settings.dashboard.conditional.ConditionManager;
 import com.android.settings.widget.MasterSwitchPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 import static android.os.PowerManager.ACTION_POWER_SAVE_MODE_CHANGING;
 
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 1c8acd0..3888ece 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -22,7 +22,9 @@
 import android.support.annotation.IntDef;
 import android.support.annotation.Nullable;
 import android.support.annotation.VisibleForTesting;
+import android.text.format.DateUtils;
 import android.util.Log;
+import android.util.SparseLongArray;
 
 import com.android.internal.os.BatterySipper;
 import com.android.settings.overlay.FeatureFactory;
@@ -115,25 +117,64 @@
     }
 
     /**
-     * Remove the {@link BatterySipper} that we should hide.
+     * Remove the {@link BatterySipper} that we should hide and smear the screen usage based on
+     * foreground activity time.
      *
      * @param sippers sipper list that need to check and remove
      * @return the total power of the hidden items of {@link BatterySipper}
+     * for proportional smearing
      */
     public double removeHiddenBatterySippers(List<BatterySipper> sippers) {
-        double totalPowerMah = 0;
+        double proportionalSmearPowerMah = 0;
+        BatterySipper screenSipper = null;
         for (int i = sippers.size() - 1; i >= 0; i--) {
             final BatterySipper sipper = sippers.get(i);
             if (shouldHideSipper(sipper)) {
                 sippers.remove(i);
-                if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED) {
-                    // Don't add it if it is overcounted
-                    totalPowerMah += sipper.totalPowerMah;
+                if (sipper.drainType != BatterySipper.DrainType.OVERCOUNTED
+                        && sipper.drainType != BatterySipper.DrainType.SCREEN
+                        && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED) {
+                    // Don't add it if it is overcounted, unaccounted or screen
+                    proportionalSmearPowerMah += sipper.totalPowerMah;
                 }
             }
+
+            if (sipper.drainType == BatterySipper.DrainType.SCREEN) {
+                screenSipper = sipper;
+            }
         }
 
-        return totalPowerMah;
+        smearScreenBatterySipper(sippers, screenSipper);
+
+        return proportionalSmearPowerMah;
+    }
+
+    /**
+     * Smear the screen on power usage among {@code sippers}, based on ratio of foreground activity
+     * time.
+     */
+    @VisibleForTesting
+    void smearScreenBatterySipper(List<BatterySipper> sippers, BatterySipper screenSipper) {
+        final long rawRealtimeMs = SystemClock.elapsedRealtime();
+        long totalActivityTimeMs = 0;
+        final SparseLongArray activityTimeArray = new SparseLongArray();
+        for (int i = 0, size = sippers.size(); i < size; i++) {
+            final BatteryStats.Uid uid = sippers.get(i).uidObj;
+            if (uid != null) {
+                final long timeMs = getForegroundActivityTotalTimeMs(uid, rawRealtimeMs);
+                activityTimeArray.put(uid.getUid(), timeMs);
+                totalActivityTimeMs += timeMs;
+            }
+        }
+
+        if (totalActivityTimeMs >= 10 * DateUtils.MINUTE_IN_MILLIS) {
+            final double screenPowerMah = screenSipper.totalPowerMah;
+            for (int i = 0, size = sippers.size(); i < size; i++) {
+                final BatterySipper sipper = sippers.get(i);
+                sipper.totalPowerMah += screenPowerMah * activityTimeArray.get(sipper.getUid(), 0)
+                        / totalActivityTimeMs;
+            }
+        }
     }
 
     /**
@@ -144,9 +185,7 @@
 
         return drainType == BatterySipper.DrainType.IDLE
                 || drainType == BatterySipper.DrainType.CELL
-                || drainType == BatterySipper.DrainType.WIFI
                 || drainType == BatterySipper.DrainType.SCREEN
-                || drainType == BatterySipper.DrainType.BLUETOOTH
                 || drainType == BatterySipper.DrainType.UNACCOUNTED
                 || drainType == BatterySipper.DrainType.OVERCOUNTED
                 || (sipper.totalPowerMah * SECONDS_IN_HOUR) < MIN_POWER_THRESHOLD_MILLI_AMP
@@ -186,5 +225,15 @@
         return mPackageManager == null;
     }
 
+    @VisibleForTesting
+    long getForegroundActivityTotalTimeMs(BatteryStats.Uid uid, long rawRealtimeMs) {
+        final BatteryStats.Timer timer = uid.getForegroundActivityTimer();
+        if (timer != null) {
+            return timer.getTotalTimeLocked(rawRealtimeMs, BatteryStats.STATS_SINCE_CHARGED);
+        }
+
+        return 0;
+    }
+
 }
 
diff --git a/src/com/android/settings/fuelgauge/FakeUid.java b/src/com/android/settings/fuelgauge/FakeUid.java
index 51ab73f..6cb5c64 100644
--- a/src/com/android/settings/fuelgauge/FakeUid.java
+++ b/src/com/android/settings/fuelgauge/FakeUid.java
@@ -45,6 +45,11 @@
     }
 
     @Override
+    public Timer getAggregatedPartialWakelockTimer() {
+        return null;
+    }
+
+    @Override
     public ArrayMap<String, ? extends Timer> getSyncStats() {
         return null;
     }
@@ -305,4 +310,14 @@
     public long getMobileRadioApWakeupCount(int which) {
         return 0;
     }
+
+    @Override
+    public long[] getCpuFreqTimes(int which) {
+        return null;
+    }
+
+    @Override
+    public long[] getScreenOffCpuFreqTimes(int which) {
+        return null;
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/PowerUsageBase.java b/src/com/android/settings/fuelgauge/PowerUsageBase.java
index aee55d6..060abdd 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageBase.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageBase.java
@@ -57,7 +57,7 @@
 
         mBatteryBroadcastReceiver = new BatteryBroadcastReceiver(getContext());
         mBatteryBroadcastReceiver.setBatteryChangedListener(() -> {
-            getLoaderManager().restartLoader(0, null, this);
+            restartBatteryStatsLoader();
         });
 
         getLoaderManager().initLoader(0, icicle, this);
@@ -95,6 +95,10 @@
         }
     }
 
+    protected void restartBatteryStatsLoader() {
+        getLoaderManager().restartLoader(0, Bundle.EMPTY, this);
+    }
+
     protected abstract void refreshUi();
 
     protected void updatePreference(BatteryHistoryPreference historyPref) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index d22ceef..63d703b 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -72,8 +72,8 @@
 import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settings.widget.FooterPreferenceMixin;
 import com.android.settingslib.BatteryInfo;
+import com.android.settingslib.widget.FooterPreferenceMixin;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -106,7 +106,8 @@
 
     @VisibleForTesting
     static final int ANOMALY_LOADER = 1;
-    private static final int BATTERY_ESTIMATE_LOADER = 2;
+    @VisibleForTesting
+    static final int BATTERY_ESTIMATE_LOADER = 2;
     private static final int MENU_STATS_TYPE = Menu.FIRST;
     @VisibleForTesting
     static final int MENU_HIGH_POWER_APPS = Menu.FIRST + 3;
@@ -173,6 +174,7 @@
                 @Override
                 public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
                     final Uri queryUri = mPowerFeatureProvider.getEnhancedBatteryPredictionUri();
+
                     return new CursorLoader(getContext(), queryUri, null, null, null, null);
                 }
 
@@ -181,13 +183,9 @@
                     if (cursor == null) {
                         return;
                     }
-                    try {
-                        if (cursor.moveToFirst()) {
-                            mEnhancedEstimate =
-                                    mPowerFeatureProvider.getTimeRemainingEstimate(cursor);
-                        }
-                    } finally {
-                        cursor.close();
+                    if (cursor.moveToFirst()) {
+                        mEnhancedEstimate =
+                                mPowerFeatureProvider.getTimeRemainingEstimate(cursor);
                     }
                     final long elapsedRealtimeUs =
                             mBatteryUtils.convertMsToUs(SystemClock.elapsedRealtime());
@@ -220,10 +218,7 @@
         mAnomalySparseArray = new SparseArray<>();
 
         initFeatureProvider();
-        if (mPowerFeatureProvider != null) {
-            getLoaderManager().initLoader(BATTERY_ESTIMATE_LOADER, Bundle.EMPTY,
-                    mBatteryPredictionLoaderCallbacks);
-        }
+        initializeBatteryEstimateLoader();
     }
 
     @Override
@@ -353,7 +348,7 @@
                 item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps);
                 metricsFeatureProvider.action(context,
                         MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps);
-                refreshUi();
+                restartBatteryStatsLoader();
                 return true;
             default:
                 return super.onOptionsItemSelected(item);
@@ -703,7 +698,7 @@
             final CharSequence timeSequence = Utils.formatElapsedTime(getContext(), usageTimeMs,
                     false);
             preference.setSummary(
-                    TextUtils.expandTemplate(getText(R.string.battery_used_for), timeSequence));
+                    TextUtils.expandTemplate(getText(R.string.battery_screen_usage), timeSequence));
         }
     }
 
@@ -761,6 +756,15 @@
         return batteryInfo;
     }
 
+    @VisibleForTesting
+    void initializeBatteryEstimateLoader() {
+        if (mPowerFeatureProvider != null
+                && mPowerFeatureProvider.isEnhancedBatteryPredictionEnabled(getContext())) {
+            getLoaderManager().initLoader(BATTERY_ESTIMATE_LOADER, Bundle.EMPTY,
+                    mBatteryPredictionLoaderCallbacks);
+        }
+    }
+
     private static List<BatterySipper> getFakeStats() {
         ArrayList<BatterySipper> stats = new ArrayList<>();
         float use = 5;
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java
new file mode 100644
index 0000000..eacb31f
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicy.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.anomaly;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
+import android.text.format.DateUtils;
+import android.util.KeyValueListParser;
+import android.util.Log;
+
+/**
+ * Class to store the policy for anomaly detection, which comes from
+ * {@link android.provider.Settings.Global}
+ */
+public class AnomalyDetectionPolicy {
+    public static final String TAG = "AnomalyDetectionPolicy";
+
+    @VisibleForTesting
+    static final String KEY_ANOMALY_DETECTION_ENABLED = "anomaly_detection_enabled";
+    @VisibleForTesting
+    static final String KEY_WAKELOCK_DETECTION_ENABLED = "wakelock_enabled";
+    @VisibleForTesting
+    static final String KEY_WAKELOCK_THRESHOLD = "wakelock_threshold";
+
+    /**
+     * {@code true} if general anomaly detection is enabled
+     *
+     * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
+     * @see #KEY_ANOMALY_DETECTION_ENABLED
+     */
+    public final boolean anomalyDetectionEnabled;
+
+    /**
+     * {@code true} if wakelock anomaly detection is enabled
+     *
+     * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
+     * @see #KEY_WAKELOCK_DETECTION_ENABLED
+     */
+    public final boolean wakeLockDetectionEnabled;
+
+    /**
+     * Threshold for wakelock time in milli seconds
+     *
+     * @see Settings.Global#ANOMALY_DETECTION_CONSTANTS
+     * @see #KEY_WAKELOCK_THRESHOLD
+     */
+    public final long wakeLockThreshold;
+
+    private final KeyValueListParserWrapper mParserWrapper;
+
+    public AnomalyDetectionPolicy(Context context) {
+        this(context, new KeyValueListParserWrapperImpl(new KeyValueListParser(',')));
+    }
+
+    @VisibleForTesting
+    AnomalyDetectionPolicy(Context context, KeyValueListParserWrapper parserWrapper) {
+        mParserWrapper = parserWrapper;
+        final String value = Settings.Global.getString(context.getContentResolver(),
+                Settings.Global.ANOMALY_DETECTION_CONSTANTS);
+
+        try {
+            mParserWrapper.setString(value);
+        } catch (IllegalArgumentException e) {
+            Log.e(TAG, "Bad anomaly detection constants");
+        }
+
+        anomalyDetectionEnabled = mParserWrapper.getBoolean(KEY_ANOMALY_DETECTION_ENABLED, true);
+        wakeLockDetectionEnabled = mParserWrapper.getBoolean(KEY_WAKELOCK_DETECTION_ENABLED, true);
+        wakeLockThreshold = mParserWrapper.getLong(KEY_WAKELOCK_THRESHOLD,
+                DateUtils.HOUR_IN_MILLIS);
+    }
+
+}
diff --git a/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapper.java b/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapper.java
new file mode 100644
index 0000000..4a9c2a9
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapper.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.anomaly;
+
+import android.util.KeyValueListParser;
+
+/**
+ * This interface replicates a subset of the {@link KeyValueListParser}. The interface
+ * exists so that we can use a thin wrapper around the PM in production code and a mock in tests.
+ * We cannot directly mock or shadow the {@link KeyValueListParser}, because some of the methods
+ * we rely on are newer than the API version supported by Robolectric.
+ */
+public interface KeyValueListParserWrapper {
+
+    /**
+     * Get real {@link KeyValueListParser}
+     */
+    KeyValueListParser getKeyValueListParser();
+
+    /**
+     * Resets the parser with a new string to parse. The string is expected to be in the following
+     * format:
+     * <pre>key1=value,key2=value,key3=value</pre>
+     *
+     * where the delimiter is a comma.
+     *
+     * @param str the string to parse.
+     * @throws IllegalArgumentException if the string is malformed.
+     */
+    void setString(String str) throws IllegalArgumentException;
+
+    /**
+     * Get the value for key as a boolean.
+     * @param key The key to lookup.
+     * @param defaultValue The value to return if the key was not found.
+     * @return the string value associated with the key.
+     */
+    boolean getBoolean(String key, boolean defaultValue);
+
+    /**
+     * Get the value for key as a long.
+     * @param key The key to lookup.
+     * @param defaultValue The value to return if the key was not found, or the value was not a
+     *                     long.
+     * @return the long value associated with the key.
+     */
+    long getLong(String key, long defaultValue);
+}
diff --git a/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapperImpl.java b/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapperImpl.java
new file mode 100644
index 0000000..f724034
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/anomaly/KeyValueListParserWrapperImpl.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.anomaly;
+
+import android.util.KeyValueListParser;
+
+/**
+ * Impl of {@link KeyValueListParser}
+ */
+public class KeyValueListParserWrapperImpl implements KeyValueListParserWrapper {
+    private KeyValueListParser mParser;
+
+    public KeyValueListParserWrapperImpl(KeyValueListParser parser) {
+        mParser = parser;
+    }
+
+    @Override
+    public KeyValueListParser getKeyValueListParser() {
+        return mParser;
+    }
+
+    @Override
+    public void setString(String str) throws IllegalArgumentException {
+        mParser.setString(str);
+    }
+
+    @Override
+    public boolean getBoolean(String key, boolean defaultValue) {
+        return mParser.getBoolean(key, defaultValue);
+    }
+
+    @Override
+    public long getLong(String key, long defaultValue) {
+        return mParser.getLong(key, defaultValue);
+    }
+}
diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
index f0ba888..3230804 100644
--- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
@@ -23,10 +23,10 @@
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.settings.applications.assist.AssistSettingObserver;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.Arrays;
 import java.util.List;
@@ -35,7 +35,7 @@
         implements OnPause, OnResume {
 
     private static final String PREF_KEY_VIDEO = "gesture_assist_video";
-    private static final String PREF_KEY_ASSIST_GESTURE = "gesture_assist";
+    private final String mAssistGesturePrefKey;
 
     private final AssistGestureFeatureProvider mFeatureProvider;
     private final SettingObserver mSettingObserver;
@@ -44,11 +44,12 @@
     private PreferenceScreen mScreen;
     private Preference mPreference;
 
-    public AssistGesturePreferenceController(Context context, Lifecycle lifecycle) {
+    public AssistGesturePreferenceController(Context context, Lifecycle lifecycle, String key) {
         super(context, lifecycle);
         mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
         mSettingObserver = new SettingObserver();
         mWasAvailable = isAvailable();
+        mAssistGesturePrefKey = key;
     }
 
     @Override
@@ -110,7 +111,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_ASSIST_GESTURE;
+        return mAssistGesturePrefKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/AssistGestureSensitivityPreferenceController.java b/src/com/android/settings/gestures/AssistGestureSensitivityPreferenceController.java
index 5334e62..0f42803 100644
--- a/src/com/android/settings/gestures/AssistGestureSensitivityPreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGestureSensitivityPreferenceController.java
@@ -24,13 +24,13 @@
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
-import com.android.settings.SeekBarPreference;
+import com.android.settings.widget.SeekBarPreference;
 import com.android.settings.core.PreferenceController;
-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.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class AssistGestureSensitivityPreferenceController extends PreferenceController
         implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnPause, OnResume {
diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java
index 238b8b6..a080bec 100644
--- a/src/com/android/settings/gestures/AssistGestureSettings.java
+++ b/src/com/android/settings/gestures/AssistGestureSettings.java
@@ -22,9 +22,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -34,6 +34,8 @@
 
     private static final String TAG = "AssistGesture";
 
+    private static final String KEY_ASSIST = "gesture_assist";
+
     @Override
     public int getMetricsCategory() {
         return MetricsProto.MetricsEvent.VIEW_UNKNOWN;
@@ -57,7 +59,7 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
         controllers.add(new AssistGestureSensitivityPreferenceController(context, lifecycle));
         return controllers;
     }
diff --git a/src/com/android/settings/gestures/CameraLiftTriggerPreferenceController.java b/src/com/android/settings/gestures/CameraLiftTriggerPreferenceController.java
index 3492099..35f4bc6 100644
--- a/src/com/android/settings/gestures/CameraLiftTriggerPreferenceController.java
+++ b/src/com/android/settings/gestures/CameraLiftTriggerPreferenceController.java
@@ -22,9 +22,9 @@
 
 import android.util.ArrayMap;
 import com.android.settings.R;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.search2.InlineSwitchPayload;
 import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class CameraLiftTriggerPreferenceController extends GesturePreferenceController {
 
diff --git a/src/com/android/settings/gestures/CameraLiftTriggerSettings.java b/src/com/android/settings/gestures/CameraLiftTriggerSettings.java
index eb36503..a222b0b 100644
--- a/src/com/android/settings/gestures/CameraLiftTriggerSettings.java
+++ b/src/com/android/settings/gestures/CameraLiftTriggerSettings.java
@@ -22,9 +22,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
index d38902e..d36ecc4 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerPreferenceController.java
@@ -20,18 +20,16 @@
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
 
-import android.util.ArrayMap;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DoubleTapPowerPreferenceController extends GesturePreferenceController {
 
     private static final String PREF_KEY_VIDEO = "gesture_double_tap_power_video";
-    private static final String PREF_KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
+    private final String mDoubleTapPowerKey;
 
-    public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle) {
+    public DoubleTapPowerPreferenceController(Context context, Lifecycle lifecycle, String key) {
         super(context, lifecycle);
+        mDoubleTapPowerKey = key;
     }
 
     @Override
@@ -47,7 +45,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_DOUBLE_TAP_POWER;
+        return mDoubleTapPowerKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/DoubleTapPowerSettings.java b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
index 467cec8..d38292d 100644
--- a/src/com/android/settings/gestures/DoubleTapPowerSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapPowerSettings.java
@@ -22,9 +22,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -33,6 +33,7 @@
 public class DoubleTapPowerSettings extends DashboardFragment {
 
     private static final String TAG = "DoubleTapPower";
+    private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
 
     @Override
     public int getMetricsCategory() {
@@ -57,7 +58,8 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
-        controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
+        controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+                KEY_DOUBLE_TAP_POWER));
         return controllers;
     }
 
diff --git a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
index 49e8f51..a38e4b6 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenPreferenceController.java
@@ -21,26 +21,24 @@
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
 
-import android.util.ArrayMap;
 import com.android.internal.hardware.AmbientDisplayConfiguration;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DoubleTapScreenPreferenceController extends GesturePreferenceController {
 
     private static final String PREF_KEY_VIDEO = "gesture_double_tap_screen_video";
-    private static final String PREF_KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+    private final String mDoubleTapScreenPrefKey;
 
     private final AmbientDisplayConfiguration mAmbientConfig;
     @UserIdInt
     private final int mUserId;
 
     public DoubleTapScreenPreferenceController(Context context, Lifecycle lifecycle,
-            AmbientDisplayConfiguration config, @UserIdInt int userId) {
+            AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
         super(context, lifecycle);
         mAmbientConfig = config;
         mUserId = userId;
+        mDoubleTapScreenPrefKey = key;
     }
 
     @Override
@@ -50,7 +48,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_DOUBLE_TAP_SCREEN;
+        return mDoubleTapScreenPrefKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/DoubleTapScreenSettings.java b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
index 887ac80..4a80273 100644
--- a/src/com/android/settings/gestures/DoubleTapScreenSettings.java
+++ b/src/com/android/settings/gestures/DoubleTapScreenSettings.java
@@ -24,9 +24,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -35,6 +35,7 @@
 public class DoubleTapScreenSettings extends DashboardFragment {
 
     private static final String TAG = "DoubleTapScreen";
+    private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
 
     @Override
     public int getMetricsCategory() {
@@ -60,7 +61,8 @@
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
-                new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+                new AmbientDisplayConfiguration(context), UserHandle.myUserId(),
+                KEY_DOUBLE_TAP_SCREEN));
         return controllers;
     }
 
diff --git a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
index 46a8cbb..2b46cce 100644
--- a/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
+++ b/src/com/android/settings/gestures/DoubleTwistGestureSettings.java
@@ -22,9 +22,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -33,6 +33,7 @@
 public class DoubleTwistGestureSettings extends DashboardFragment {
 
     private static final String TAG = "DoubleTwistGesture";
+    private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
 
     @Override
     public int getMetricsCategory() {
@@ -57,7 +58,7 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
-        controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
+        controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
         return controllers;
     }
 
diff --git a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
index c5174fd..69f9e8d 100644
--- a/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
+++ b/src/com/android/settings/gestures/DoubleTwistPreferenceController.java
@@ -24,19 +24,17 @@
 import android.support.v7.preference.Preference;
 import android.text.TextUtils;
 
-import android.util.ArrayMap;
 import com.android.settings.R;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DoubleTwistPreferenceController extends GesturePreferenceController {
 
     private static final String PREF_KEY_VIDEO = "gesture_double_twist_video";
-    private static final String PREF_KEY_DOUBLE_TWIST = "gesture_double_twist";
+    private final String mDoubleTwistPrefKey;
 
-    public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle) {
+    public DoubleTwistPreferenceController(Context context, Lifecycle lifecycle, String key) {
         super(context, lifecycle);
+        mDoubleTwistPrefKey = key;
     }
 
     @Override
@@ -52,7 +50,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_DOUBLE_TWIST;
+        return mDoubleTwistPrefKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/GesturePreferenceController.java b/src/com/android/settings/gestures/GesturePreferenceController.java
index ebfccb5..e647bf3 100644
--- a/src/com/android/settings/gestures/GesturePreferenceController.java
+++ b/src/com/android/settings/gestures/GesturePreferenceController.java
@@ -23,11 +23,11 @@
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnStart;
-import com.android.settings.core.lifecycle.events.OnStop;
 import com.android.settings.widget.VideoPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 public abstract class GesturePreferenceController extends PreferenceController
         implements Preference.OnPreferenceChangeListener, LifecycleObserver, OnStart, OnStop {
diff --git a/src/com/android/settings/gestures/PickupGesturePreferenceController.java b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
index ce20f15..a6ce1a1 100644
--- a/src/com/android/settings/gestures/PickupGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/PickupGesturePreferenceController.java
@@ -21,26 +21,24 @@
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
 
-import android.util.ArrayMap;
 import com.android.internal.hardware.AmbientDisplayConfiguration;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.search2.InlineSwitchPayload;
-import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class PickupGesturePreferenceController extends GesturePreferenceController {
 
     private static final String PREF_VIDEO_KEY = "gesture_pick_up_video";
-    private static final String PREF_KEY_PICK_UP = "gesture_pick_up";
+    private final String mPickUpPrefKey;
 
     private final AmbientDisplayConfiguration mAmbientConfig;
     @UserIdInt
     private final int mUserId;
 
     public PickupGesturePreferenceController(Context context, Lifecycle lifecycle,
-            AmbientDisplayConfiguration config, @UserIdInt int userId) {
+            AmbientDisplayConfiguration config, @UserIdInt int userId, String key) {
         super(context, lifecycle);
         mAmbientConfig = config;
         mUserId = userId;
+        mPickUpPrefKey = key;
     }
 
     @Override
@@ -60,7 +58,7 @@
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_PICK_UP;
+        return mPickUpPrefKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/PickupGestureSettings.java b/src/com/android/settings/gestures/PickupGestureSettings.java
index 0fe6097..6ed412f 100644
--- a/src/com/android/settings/gestures/PickupGestureSettings.java
+++ b/src/com/android/settings/gestures/PickupGestureSettings.java
@@ -24,9 +24,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -35,6 +35,7 @@
 public class PickupGestureSettings extends DashboardFragment {
 
     private static final String TAG = "PickupGestureSettings";
+    private static final String KEY_PICK_UP = "gesture_pick_up";
 
     @Override
     public int getMetricsCategory() {
@@ -60,7 +61,7 @@
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new PickupGesturePreferenceController(context, lifecycle,
-                new AmbientDisplayConfiguration(context), UserHandle.myUserId()));
+                new AmbientDisplayConfiguration(context), UserHandle.myUserId(), KEY_PICK_UP));
         return controllers;
     }
 
diff --git a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
index 89d38a1..75cffa5 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationPreferenceController.java
@@ -21,22 +21,24 @@
 import android.support.v7.preference.Preference;
 
 import android.util.ArrayMap;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.search2.InlineSwitchPayload;
 import com.android.settings.search2.ResultPayload;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class SwipeToNotificationPreferenceController extends GesturePreferenceController {
 
     private static final String PREF_KEY_VIDEO = "gesture_swipe_down_fingerprint_video";
-    private static final String PREF_KEY_SWIPE_DOWN_FINGERPRINT = "gesture_swipe_down_fingerprint";
+    private final String mSwipeDownFingerPrefKey;
 
-    public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle) {
+    public SwipeToNotificationPreferenceController(Context context, Lifecycle lifecycle,
+            String key) {
         super(context, lifecycle);
+        mSwipeDownFingerPrefKey = key;
     }
 
     @Override
     public String getPreferenceKey() {
-        return PREF_KEY_SWIPE_DOWN_FINGERPRINT;
+        return mSwipeDownFingerPrefKey;
     }
 
     @Override
diff --git a/src/com/android/settings/gestures/SwipeToNotificationSettings.java b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
index 6c136c2..00d4700 100644
--- a/src/com/android/settings/gestures/SwipeToNotificationSettings.java
+++ b/src/com/android/settings/gestures/SwipeToNotificationSettings.java
@@ -22,9 +22,9 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -34,6 +34,8 @@
 
     private static final String TAG = "SwipeToNotifSettings";
 
+    private static final String KEY = "gesture_swipe_down_fingerprint";
+
     @Override
     public int getMetricsCategory() {
         return MetricsProto.MetricsEvent.SETTINGS_GESTURE_SWIPE_TO_NOTIFICATION;
@@ -57,7 +59,7 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
-        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle, KEY));
         return controllers;
     }
 
diff --git a/src/com/android/settings/inputmethod/GameControllerPreferenceController.java b/src/com/android/settings/inputmethod/GameControllerPreferenceController.java
index f8232b8..40efb07 100644
--- a/src/com/android/settings/inputmethod/GameControllerPreferenceController.java
+++ b/src/com/android/settings/inputmethod/GameControllerPreferenceController.java
@@ -26,9 +26,9 @@
 import android.view.InputDevice;
 
 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 com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class GameControllerPreferenceController extends PreferenceController
         implements InputManager.InputDeviceListener, LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java b/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java
index aa9f5ad..03d8221 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardPreferenceController.java
@@ -22,11 +22,11 @@
 
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-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.inputmethod.PhysicalKeyboardFragment.HardKeyboardDeviceInfo;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.List;
 
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 8082f17..3818511 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -36,7 +36,6 @@
 import com.android.settings.R;
 import com.android.settings.applications.defaultapps.DefaultAutofillPreferenceController;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.gestures.AssistGesturePreferenceController;
@@ -51,6 +50,7 @@
 import com.android.settings.inputmethod.SpellCheckerPreferenceController;
 import com.android.settings.inputmethod.VirtualKeyboardPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -60,6 +60,13 @@
 
     private static final String TAG = "LangAndInputSettings";
 
+    private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
+    private static final String KEY_ASSIST = "gesture_assist_input_summary";
+    private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_input_summary";
+    private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power_input_summary";
+    private static final String KEY_DOUBLE_TWIST = "gesture_double_twist_input_summary";
+    private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_input_summary";
+    private static final String KEY_PICK_UP = "gesture_pick_up_input_summary";
     private static final String KEY_CAMERA_LIFT_TRIGGER = "gesture_camera_lift_trigger_summary";
 
     private AmbientDisplayConfiguration mAmbientDisplayConfig;
@@ -128,14 +135,16 @@
 
         controllers.add(gameControllerPreferenceController);
         // Gestures
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle));
-        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
-        controllers.add(new DoubleTwistPreferenceController(context, lifecycle));
-        controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle));
-        controllers.add(new PickupGesturePreferenceController(
-                context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
-        controllers.add(new DoubleTapScreenPreferenceController(
-                context, lifecycle, ambientDisplayConfiguration, UserHandle.myUserId()));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+                KEY_SWIPE_DOWN));
+        controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
+        controllers.add(new DoubleTapPowerPreferenceController(context, lifecycle,
+                KEY_DOUBLE_TAP_POWER));
+        controllers.add(new PickupGesturePreferenceController(context, lifecycle,
+                ambientDisplayConfiguration, UserHandle.myUserId(), KEY_PICK_UP));
+        controllers.add(new DoubleTapScreenPreferenceController(context, lifecycle,
+                ambientDisplayConfiguration, UserHandle.myUserId(), KEY_DOUBLE_TAP_SCREEN));
         controllers.add(new CameraLiftTriggerPreferenceController(context, lifecycle,
                 KEY_CAMERA_LIFT_TRIGGER));
         controllers.add(new DefaultAutofillPreferenceController(context));
@@ -199,5 +208,20 @@
                     return buildPreferenceControllers(context, null,
                             new AmbientDisplayConfiguration(context));
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    // Duplicates in summary and details pages.
+                    keys.add(KEY_TEXT_TO_SPEECH);
+                    keys.add(KEY_ASSIST);
+                    keys.add(KEY_SWIPE_DOWN);
+                    keys.add(KEY_DOUBLE_TAP_POWER);
+                    keys.add(KEY_DOUBLE_TWIST);
+                    keys.add(KEY_DOUBLE_TAP_SCREEN);
+                    keys.add(KEY_PICK_UP);
+
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/language/TtsPreferenceController.java b/src/com/android/settings/language/TtsPreferenceController.java
index 0d1c753..a734e4b 100644
--- a/src/com/android/settings/language/TtsPreferenceController.java
+++ b/src/com/android/settings/language/TtsPreferenceController.java
@@ -23,7 +23,8 @@
 
 public class TtsPreferenceController extends PreferenceController {
 
-    private static final String KEY_TTS_SETTINGS = "tts_settings";
+    private static final String KEY_VOICE_CATEGORY = "voice_category";
+    private static final String KEY_TTS_SETTINGS = "tts_settings_summary";
 
     private final TtsEngines mTtsEngines;
 
diff --git a/src/com/android/settings/location/LocationPreferenceController.java b/src/com/android/settings/location/LocationPreferenceController.java
index b90bc25..e4d4ca0 100644
--- a/src/com/android/settings/location/LocationPreferenceController.java
+++ b/src/com/android/settings/location/LocationPreferenceController.java
@@ -26,10 +26,10 @@
 import android.support.v7.preference.PreferenceScreen;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class LocationPreferenceController extends PreferenceController implements
         LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/network/AirplaneModePreferenceController.java b/src/com/android/settings/network/AirplaneModePreferenceController.java
index a25c5f8..8422ab4 100644
--- a/src/com/android/settings/network/AirplaneModePreferenceController.java
+++ b/src/com/android/settings/network/AirplaneModePreferenceController.java
@@ -29,10 +29,10 @@
 import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-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.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class AirplaneModePreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/network/MobileNetworkPreferenceController.java b/src/com/android/settings/network/MobileNetworkPreferenceController.java
index c7abf90..b91552e 100644
--- a/src/com/android/settings/network/MobileNetworkPreferenceController.java
+++ b/src/com/android/settings/network/MobileNetworkPreferenceController.java
@@ -26,9 +26,9 @@
 
 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 com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import static android.os.UserHandle.myUserId;
 import static android.os.UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS;
diff --git a/src/com/android/settings/network/MobilePlanPreferenceController.java b/src/com/android/settings/network/MobilePlanPreferenceController.java
index 9d0878f8..da4902d 100644
--- a/src/com/android/settings/network/MobilePlanPreferenceController.java
+++ b/src/com/android/settings/network/MobilePlanPreferenceController.java
@@ -32,9 +32,9 @@
 import com.android.settings.R;
 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.OnCreate;
-import com.android.settings.core.lifecycle.events.OnSaveInstanceState;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
 import java.util.List;
 
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index a28a726..869cef9 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -15,10 +15,12 @@
  */
 package com.android.settings.network;
 
+import android.app.Activity;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.Context;
 import android.provider.SearchIndexableResource;
+import android.support.annotation.VisibleForTesting;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -26,11 +28,11 @@
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.wifi.WifiMasterSwitchPreferenceController;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -133,6 +135,66 @@
         return 0;
     }
 
+    @VisibleForTesting
+    static class SummaryProvider implements SummaryLoader.SummaryProvider {
+
+        private final Context mContext;
+        private final SummaryLoader mSummaryLoader;
+        private final MobileNetworkPreferenceController mMobileNetworkPreferenceController;
+        private final TetherPreferenceController mTetherPreferenceController;
+
+        public SummaryProvider(Context context, SummaryLoader summaryLoader) {
+            this(context, summaryLoader,
+                    new MobileNetworkPreferenceController(context),
+                    new TetherPreferenceController(context, null /* lifecycle */));
+        }
+
+        @VisibleForTesting(otherwise = VisibleForTesting.NONE)
+        SummaryProvider(Context context, SummaryLoader summaryLoader,
+                MobileNetworkPreferenceController mobileNetworkPreferenceController,
+                TetherPreferenceController tetherPreferenceController) {
+            mContext = context;
+            mSummaryLoader = summaryLoader;
+            mMobileNetworkPreferenceController = mobileNetworkPreferenceController;
+            mTetherPreferenceController = tetherPreferenceController;
+        }
+
+
+        @Override
+        public void setListening(boolean listening) {
+            if (listening) {
+                String summary = mContext.getString(R.string.wifi_settings_title);
+                if (mMobileNetworkPreferenceController.isAvailable()) {
+                    final String mobileSettingSummary = mContext.getString(
+                            R.string.network_dashboard_summary_mobile);
+                    summary = mContext.getString(R.string.join_many_items_middle, summary,
+                            mobileSettingSummary);
+                }
+                final String dataUsageSettingSummary = mContext.getString(
+                        R.string.network_dashboard_summary_data_usage);
+                summary = mContext.getString(R.string.join_many_items_middle, summary,
+                        dataUsageSettingSummary);
+                if (mTetherPreferenceController.isAvailable()) {
+                    final String hotspotSettingSummary = mContext.getString(
+                            R.string.network_dashboard_summary_hotspot);
+                    summary = mContext.getString(R.string.join_many_items_middle, summary,
+                            hotspotSettingSummary);
+                }
+                mSummaryLoader.setSummary(this, summary);
+            }
+        }
+    }
+
+    public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY
+            = new SummaryLoader.SummaryProviderFactory() {
+        @Override
+        public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
+                SummaryLoader summaryLoader) {
+            return new SummaryProvider(activity, summaryLoader);
+        }
+    };
+
+
     public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider() {
                 @Override
diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java
index 19a22ba..58d45d6 100644
--- a/src/com/android/settings/network/TetherPreferenceController.java
+++ b/src/com/android/settings/network/TetherPreferenceController.java
@@ -32,11 +32,11 @@
 import com.android.settings.R;
 import com.android.settings.TetherSettings;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnDestroy;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.concurrent.atomic.AtomicReference;
 
diff --git a/src/com/android/settings/network/VpnPreferenceController.java b/src/com/android/settings/network/VpnPreferenceController.java
index 72b361a..a62be76 100644
--- a/src/com/android/settings/network/VpnPreferenceController.java
+++ b/src/com/android/settings/network/VpnPreferenceController.java
@@ -40,10 +40,10 @@
 import com.android.internal.net.VpnConfig;
 import com.android.settings.R;
 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 com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.List;
 
diff --git a/src/com/android/settings/nfc/NfcPreferenceController.java b/src/com/android/settings/nfc/NfcPreferenceController.java
index 7164b5b..0743871 100644
--- a/src/com/android/settings/nfc/NfcPreferenceController.java
+++ b/src/com/android/settings/nfc/NfcPreferenceController.java
@@ -27,12 +27,12 @@
 import android.support.v7.preference.PreferenceScreen;
 
 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 com.android.settings.network.AirplaneModePreferenceController;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.List;
 
diff --git a/src/com/android/settings/notification/AlarmVolumePreferenceController.java b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
index e9c4b57..cd1f6e3 100644
--- a/src/com/android/settings/notification/AlarmVolumePreferenceController.java
+++ b/src/com/android/settings/notification/AlarmVolumePreferenceController.java
@@ -20,8 +20,8 @@
 import android.media.AudioManager;
 
 import com.android.internal.annotations.VisibleForTesting;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class AlarmVolumePreferenceController extends
     VolumeSeekBarPreferenceController {
diff --git a/src/com/android/settings/notification/AppNotificationSettings.java b/src/com/android/settings/notification/AppNotificationSettings.java
index 2048384..e7be62f 100644
--- a/src/com/android/settings/notification/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/AppNotificationSettings.java
@@ -16,11 +16,6 @@
 
 package com.android.settings.notification;
 
-import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
-import static android.app.NotificationManager.IMPORTANCE_LOW;
-import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
-
 import android.app.Activity;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
@@ -42,37 +37,35 @@
 import com.android.settings.AppHeader;
 import com.android.settings.R;
 import com.android.settings.Utils;
-import com.android.settings.applications.AppHeaderController;
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.notification.NotificationBackend.AppRow;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.FooterPreference;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settings.widget.SwitchBar;
 import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.widget.FooterPreference;
 
-import java.text.Collator;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.List;
 
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
+
 /** These settings are per app, so should not be returned in global search results. */
 public class AppNotificationSettings extends NotificationSettingsBase {
     private static final String TAG = "AppNotificationSettings";
     private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
 
-    private static final String KEY_IMPORTANCE = "allow_sound";
+    private static String KEY_GENERAL_CATEGORY = "categories";
+    private static String KEY_DELETED = "deleted";
 
     private List<NotificationChannelGroup> mChannelGroupList;
     private List<PreferenceCategory> mChannelGroups = new ArrayList();
-    private RestrictedSwitchPreference mImportanceToggle;
-    private LayoutPreference mBlockBar;
     private FooterPreference mDeletedChannels;
-    private SwitchBar mSwitchBar;
-
-    private boolean mShowLegacyChannelConfig = false;
 
     @Override
     public int getMetricsCategory() {
@@ -92,58 +85,70 @@
         if (getPreferenceScreen() != null) {
             getPreferenceScreen().removeAll();
             mChannelGroups.clear();
+            mDeletedChannels = null;
             mShowLegacyChannelConfig = false;
         }
 
-        addPreferencesFromResource(R.xml.app_notification_settings);
+        addPreferencesFromResource(R.xml.notification_settings);
         getPreferenceScreen().setOrderingAsAdded(true);
-
-        mBadge = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BADGE);
-        mBlockedDesc = (FooterPreference) getPreferenceScreen().findPreference(KEY_BLOCKED_DESC);
-
         setupBlock();
-        setupBadge();
-        // load settings intent
-        ArrayMap<String, AppRow> rows = new ArrayMap<String, AppRow>();
+        addHeaderPref();
+        addAppLinkPref();
+
+        mShowLegacyChannelConfig = mBackend.onlyHasDefaultChannel(mAppRow.pkg, mAppRow.uid);
+        if (mShowLegacyChannelConfig) {
+            mChannel = mBackend.getChannel(
+                    mAppRow.pkg, mAppRow.uid, NotificationChannel.DEFAULT_CHANNEL_ID);
+            populateDefaultChannelPrefs();
+        } else {
+            addPreferencesFromResource(R.xml.upgraded_app_notification_settings);
+            setupBadge();
+            // Load channel settings
+            new AsyncTask<Void, Void, Void>() {
+                @Override
+                protected Void doInBackground(Void... unused) {
+                    mChannelGroupList = mBackend.getChannelGroups(mPkg, mUid).getList();
+                    Collections.sort(mChannelGroupList, mChannelGroupComparator);
+                    return null;
+                }
+
+                @Override
+                protected void onPostExecute(Void unused) {
+                    if (getHost() == null) {
+                        return;
+                    }
+                    populateChannelList();
+                }
+            }.execute();
+        }
+
+        updateDependents(mAppRow.banned);
+    }
+
+    private void addHeaderPref() {
+        ArrayMap<String, AppRow> rows = new ArrayMap<>();
         rows.put(mAppRow.pkg, mAppRow);
         collectConfigActivities(rows);
-        new AsyncTask<Void, Void, Void>() {
-            @Override
-            protected Void doInBackground(Void... unused) {
-                mChannelGroupList = mBackend.getChannelGroups(mPkg, mUid).getList();
-                Collections.sort(mChannelGroupList, mChannelGroupComparator);
-                return null;
-            }
-
-            @Override
-            protected void onPostExecute(Void unused) {
-                if (getHost() == null) {
-                    return;
-                }
-                populateChannelList();
-            }
-        }.execute();
-
         final Activity activity = getActivity();
-        final Preference pref = FeatureFactory.getFactory(activity)
-                .getApplicationFeatureProvider(activity)
-                .newAppHeaderController(this /* fragment */, null /* appHeader */)
+        final Preference pref = EntityHeaderController
+                .newInstance(activity, this /* fragment */, null /* header */)
+                .setRecyclerView(getListView(), getLifecycle())
                 .setIcon(mAppRow.icon)
                 .setLabel(mAppRow.label)
                 .setPackageName(mAppRow.pkg)
                 .setUid(mAppRow.uid)
-                .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
-                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE)
+                .setButtonActions(EntityHeaderController.ActionType.ACTION_APP_INFO,
+                        EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE)
                 .done(activity, getPrefContext());
+        pref.setKey(KEY_HEADER);
         getPreferenceScreen().addPreference(pref);
-
-        updateDependents(mAppRow.banned);
     }
 
     private void populateChannelList() {
         if (mChannelGroupList.isEmpty()) {
             PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
             groupCategory.setTitle(R.string.notification_channels);
+            groupCategory.setKey(KEY_GENERAL_CATEGORY);
             getPreferenceScreen().addPreference(groupCategory);
             mChannelGroups.add(groupCategory);
 
@@ -151,15 +156,6 @@
             empty.setTitle(R.string.no_channels);
             empty.setEnabled(false);
             groupCategory.addPreference(empty);
-
-        } else if (mChannelGroupList.size() == 1 &&
-                mChannelGroupList.get(0).getChannels().get(0).getId()
-                        .equals(NotificationChannel.DEFAULT_CHANNEL_ID)) {
-            // Legacy app using only default channel. Hoist default channel settings to main panel.
-            mShowLegacyChannelConfig = true;
-            mChannel = mChannelGroupList.get(0).getChannels().get(0);
-            populateDefaultChannelPrefs();
-
         } else {
             for (NotificationChannelGroup group : mChannelGroupList) {
                 PreferenceCategory groupCategory = new PreferenceCategory(getPrefContext());
@@ -167,10 +163,11 @@
                     groupCategory.setTitle(mChannelGroupList.size() > 1
                             ? R.string.notification_channels_other
                             : R.string.notification_channels);
+                    groupCategory.setKey(KEY_GENERAL_CATEGORY);
                 } else {
                     groupCategory.setTitle(group.getName());
+                    groupCategory.setKey(group.getId());
                 }
-                groupCategory.setKey(group.getId());
                 groupCategory.setOrderingAsAdded(true);
                 getPreferenceScreen().addPreference(groupCategory);
                 mChannelGroups.add(groupCategory);
@@ -184,13 +181,6 @@
                 }
             }
 
-            if (mAppRow.settingsIntent != null) {
-                Preference intentPref = new Preference(getPrefContext());
-                intentPref.setIntent(mAppRow.settingsIntent);
-                intentPref.setTitle(mContext.getString(R.string.app_settings_link));
-                getPreferenceScreen().addPreference(intentPref);
-            }
-
             int deletedChannelCount = mBackend.getDeletedChannelCount(mAppRow.pkg, mAppRow.uid);
             if (deletedChannelCount > 0) {
                 mDeletedChannels = new FooterPreference(getPrefContext());
@@ -198,9 +188,12 @@
                 mDeletedChannels.setTitle(getResources().getQuantityString(
                         R.plurals.deleted_channels, deletedChannelCount, deletedChannelCount));
                 mDeletedChannels.setEnabled(false);
+                mDeletedChannels.setKey(KEY_DELETED);
+                mDeletedChannels.setOrder(ORDER_LAST);
                 getPreferenceScreen().addPreference(mDeletedChannels);
             }
         }
+
         updateDependents(mAppRow.banned);
     }
 
@@ -212,7 +205,7 @@
         channelPref.setKey(channel.getId());
         channelPref.setTitle(channel.getName());
         channelPref.setChecked(channel.getImportance() != IMPORTANCE_NONE);
-        channelPref.setSummary(getImportanceSummary(channel.getImportance()));
+        channelPref.setSummary(getImportanceSummary(channel));
         Bundle channelArgs = new Bundle();
         channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
         channelArgs.putBoolean(AppHeader.EXTRA_HIDE_INFO_BUTTON, true);
@@ -234,7 +227,7 @@
                         channel.setImportance(importance);
                         channel.lockFields(
                                 NotificationChannel.USER_LOCKED_IMPORTANCE);
-                        channelPref.setSummary(getImportanceSummary(channel.getImportance()));
+                        channelPref.setSummary(getImportanceSummary(channel));
                         mBackend.updateChannel(mPkg, mUid, channel);
 
                         return true;
@@ -243,36 +236,25 @@
         groupCategory.addPreference(channelPref);
     }
 
-    private void populateDefaultChannelPrefs() {
-        addPreferencesFromResource(R.xml.legacy_channel_notification_settings);
-        mPriority = (RestrictedSwitchPreference) findPreference(KEY_BYPASS_DND);
-        mVisibilityOverride =
-                (RestrictedDropDownPreference) findPreference(KEY_VISIBILITY_OVERRIDE);
-        mImportanceToggle = (RestrictedSwitchPreference) findPreference(KEY_IMPORTANCE);
-
-        if (mPkgInfo != null && mChannel != null) {
-            setupPriorityPref(mChannel.canBypassDnd());
-            setupVisOverridePref(mChannel.getLockscreenVisibility());
-            setupImportanceToggle();
+    void setupBadge() {
+        mBadge = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BADGE);
+        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
+        if (mChannel == null) {
+            mBadge.setChecked(mAppRow.showBadge);
+        } else {
+            mBadge.setChecked(mChannel.canShowBadge());
         }
-        mSwitchBar.setChecked(!mAppRow.banned
-                && mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE);
-    }
-
-    // 'allow sound'
-    private void setupImportanceToggle() {
-        mImportanceToggle.setDisabledByAdmin(mSuspendedAppsAdmin);
-        mImportanceToggle.setChecked(mChannel.getImportance() >= IMPORTANCE_DEFAULT
-                || mChannel.getImportance() == IMPORTANCE_UNSPECIFIED);
-        mImportanceToggle.setOnPreferenceChangeListener(
-                new Preference.OnPreferenceChangeListener() {
+        mBadge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
             @Override
             public boolean onPreferenceChange(Preference preference, Object newValue) {
-                final int importance =
-                        ((Boolean) newValue ? IMPORTANCE_UNSPECIFIED : IMPORTANCE_LOW);
-                mChannel.setImportance(importance);
-                mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
-                mBackend.updateChannel(mPkg, mUid, mChannel);
+                final boolean value = (Boolean) newValue;
+                if (mChannel == null) {
+                    mBackend.setShowBadge(mPkg, mUid, value);
+                } else {
+                    mChannel.setShowBadge(value);
+                    mChannel.lockFields(NotificationChannel.USER_LOCKED_SHOW_BADGE);
+                    mBackend.updateChannel(mPkg, mUid, mChannel);
+                }
                 return true;
             }
         });
@@ -296,12 +278,13 @@
                     mBackend.updateChannel(mPkg, mUid, mChannel);
                 }
                 mBackend.setNotificationsEnabledForPackage(mPkgInfo.packageName, mUid, isChecked);
+                mAppRow.banned = true;
                 updateDependents(!isChecked);
             }
         });
 
         mBlockBar = new LayoutPreference(getPrefContext(), switchBarContainer);
-        mBlockBar.setOrder(-500);
+        mBlockBar.setOrder(ORDER_FIRST);
         mBlockBar.setKey(KEY_BLOCK);
         getPreferenceScreen().addPreference(mBlockBar);
 
@@ -312,20 +295,7 @@
         setupBlockDesc(R.string.app_notifications_off_desc);
     }
 
-    private void setupBadge() {
-        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
-        mBadge.setChecked(mAppRow.showBadge);
-        mBadge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
-            @Override
-            public boolean onPreferenceChange(Preference preference, Object newValue) {
-                final boolean value = (Boolean) newValue;
-                mBackend.setShowBadge(mPkg, mUid, value);
-                return true;
-            }
-        });
-    }
-
-    private void updateDependents(boolean banned) {
+    protected void updateDependents(boolean banned) {
         for (PreferenceCategory category : mChannelGroups) {
             setVisible(category, !banned);
         }
@@ -336,17 +306,42 @@
         setVisible(mBadge, !banned);
         if (mShowLegacyChannelConfig) {
             setVisible(mImportanceToggle, !banned);
-            setVisible(mPriority, !banned);
-            setVisible(mVisibilityOverride, !banned);
+            setVisible(mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
+                    || (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
+                    && mDndVisualEffectsSuppressed));
+            setVisible(mVisibilityOverride, !banned &&
+                    checkCanBeVisible(NotificationManager.IMPORTANCE_LOW) && isLockScreenSecure());
+        }
+        if (mAppLink != null) {
+            setVisible(mAppLink, !banned);
         }
         if (mAppRow.systemApp && !mAppRow.banned) {
             setVisible(mBlockBar, false);
         }
     }
 
+    private String getImportanceSummary(NotificationChannel channel) {
+        switch (channel.getImportance()) {
+            case NotificationManager.IMPORTANCE_UNSPECIFIED:
+                return getContext().getString(R.string.notification_importance_unspecified);
+            case NotificationManager.IMPORTANCE_NONE:
+                return getContext().getString(R.string.notification_toggle_off);
+            case NotificationManager.IMPORTANCE_MIN:
+                return getContext().getString(R.string.notification_importance_min_title);
+            case NotificationManager.IMPORTANCE_LOW:
+                return getContext().getString(R.string.notification_importance_low_title);
+            case NotificationManager.IMPORTANCE_DEFAULT:
+                return getContext().getString(R.string.notification_importance_default_title);
+            case NotificationManager.IMPORTANCE_HIGH:
+            case NotificationManager.IMPORTANCE_MAX:
+            default:
+                return getContext().getString(R.string.notification_importance_high_title);
+        }
+
+    }
+
     private Comparator<NotificationChannel> mChannelComparator =
             new Comparator<NotificationChannel>() {
-        private final Collator sCollator = Collator.getInstance();
 
         @Override
         public int compare(NotificationChannel left, NotificationChannel right) {
@@ -359,7 +354,6 @@
 
     private Comparator<NotificationChannelGroup> mChannelGroupComparator =
             new Comparator<NotificationChannelGroup>() {
-                private final Collator sCollator = Collator.getInstance();
 
                 @Override
                 public int compare(NotificationChannelGroup left, NotificationChannelGroup right) {
diff --git a/src/com/android/settings/notification/BadgingNotificationPreferenceController.java b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java
new file mode 100644
index 0000000..decbe0b
--- /dev/null
+++ b/src/com/android/settings/notification/BadgingNotificationPreferenceController.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.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 android.util.Log;
+
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+
+import static android.provider.Settings.Secure.NOTIFICATION_BADGING;
+
+public class BadgingNotificationPreferenceController extends PreferenceController implements
+        Preference.OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
+
+    private static final String TAG = "BadgeNotifPrefContr";
+    private static final String KEY_NOTIFICATION_BADGING = "notification_badging";
+    private static final int DEFAULT_VALUE = 1;
+
+    private SettingObserver mSettingObserver;
+
+    public BadgingNotificationPreferenceController(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        Preference preference = screen.findPreference(NOTIFICATION_BADGING);
+        if (preference != null) {
+            mSettingObserver = new SettingObserver(preference);
+        }
+    }
+
+    @Override
+    public void onResume() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(mContext.getContentResolver(), true /* register */);
+        }
+    }
+
+    @Override
+    public void onPause() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(mContext.getContentResolver(), false /* register */);
+        }
+    }
+
+    @Override
+    public String getPreferenceKey() {
+        return KEY_NOTIFICATION_BADGING;
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return mContext.getResources()
+                .getBoolean(com.android.internal.R.bool.config_notificationBadging);
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        final boolean checked = Settings.Secure.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BADGING, DEFAULT_VALUE) == 1;
+        ((TwoStatePreference) preference).setChecked(checked);
+    }
+
+    @Override
+    public boolean onPreferenceChange(Preference preference, Object newValue) {
+        final boolean val = (Boolean) newValue;
+        return Settings.Secure.putInt(mContext.getContentResolver(),
+                NOTIFICATION_BADGING, val ? 1 : 0);
+    }
+
+    class SettingObserver extends ContentObserver {
+
+        private final Uri NOTIFICATION_BADGING_URI =
+                Settings.Secure.getUriFor(NOTIFICATION_BADGING);
+
+        private final Preference mPreference;
+
+        public SettingObserver(Preference preference) {
+            super(new Handler());
+            mPreference = preference;
+        }
+
+        public void register(ContentResolver cr, boolean register) {
+            if (register) {
+                cr.registerContentObserver(NOTIFICATION_BADGING_URI, false, this);
+            } else {
+                cr.unregisterContentObserver(this);
+            }
+        }
+
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            super.onChange(selfChange, uri);
+            if (NOTIFICATION_BADGING_URI.equals(uri)) {
+                updateState(mPreference);
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/notification/ChannelImportanceSettings.java b/src/com/android/settings/notification/ChannelImportanceSettings.java
index b396b20..26dd57f 100644
--- a/src/com/android/settings/notification/ChannelImportanceSettings.java
+++ b/src/com/android/settings/notification/ChannelImportanceSettings.java
@@ -67,6 +67,12 @@
     }
 
     @Override
+    void setupBadge() {}
+
+    @Override
+    void updateDependents(boolean banned) {}
+
+    @Override
     public void onPause() {
         super.onPause();
     }
diff --git a/src/com/android/settings/notification/ChannelNotificationSettings.java b/src/com/android/settings/notification/ChannelNotificationSettings.java
index 0fb42d2..f7bf1ca 100644
--- a/src/com/android/settings/notification/ChannelNotificationSettings.java
+++ b/src/com/android/settings/notification/ChannelNotificationSettings.java
@@ -16,17 +16,12 @@
 
 package com.android.settings.notification;
 
-import static android.app.NotificationManager.IMPORTANCE_LOW;
-import static android.app.NotificationManager.IMPORTANCE_NONE;
-
 import android.app.Activity;
 import android.app.NotificationChannel;
 import android.app.NotificationManager;
 import android.content.Intent;
-import android.content.pm.UserInfo;
 import android.net.Uri;
 import android.os.Bundle;
-import android.os.UserHandle;
 import android.provider.Settings;
 import android.support.v7.preference.Preference;
 import android.text.TextUtils;
@@ -37,32 +32,34 @@
 import android.widget.Switch;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.AppHeader;
 import com.android.settings.R;
 import com.android.settings.RingtonePreference;
 import com.android.settings.Utils;
-import com.android.settings.applications.AppHeaderController;
 import com.android.settings.applications.AppInfoBase;
 import com.android.settings.applications.LayoutPreference;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settings.widget.FooterPreference;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settings.widget.SwitchBar;
 import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.widget.FooterPreference;
+
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
 
 public class ChannelNotificationSettings extends NotificationSettingsBase {
     private static final String TAG = "ChannelSettings";
 
-    protected static final String KEY_LIGHTS = "lights";
-    protected static final String KEY_VIBRATE = "vibrate";
-    protected static final String KEY_RINGTONE = "ringtone";
+    private static final String KEY_LIGHTS = "lights";
+    private static final String KEY_VIBRATE = "vibrate";
+    private static final String KEY_RINGTONE = "ringtone";
+    private static final String KEY_IMPORTANCE = "importance";
 
-    protected Preference mImportance;
-    protected RestrictedSwitchPreference mLights;
-    protected RestrictedSwitchPreference mVibrate;
-    protected NotificationSoundPreference mRingtone;
-
-    protected LayoutPreference mBlockBar;
+    private Preference mImportance;
+    private RestrictedSwitchPreference mLights;
+    private RestrictedSwitchPreference mVibrate;
+    private NotificationSoundPreference mRingtone;
+    private FooterPreference mFooter;
 
     @Override
     public int getMetricsCategory() {
@@ -81,66 +78,82 @@
         if (getPreferenceScreen() != null) {
             getPreferenceScreen().removeAll();
         }
-        addPreferencesFromResource(R.xml.channel_notification_settings);
+        addPreferencesFromResource(R.xml.notification_settings);
+        setupBlock();
+        addHeaderPref();
+        addAppLinkPref();
+        addFooterPref();
 
-        // load settings intent
-        ArrayMap<String, NotificationBackend.AppRow> rows = new ArrayMap<String, NotificationBackend.AppRow>();
-        rows.put(mAppRow.pkg, mAppRow);
-        collectConfigActivities(rows);
+        if (NotificationChannel.DEFAULT_CHANNEL_ID.equals(mChannel.getId())) {
+            populateDefaultChannelPrefs();
+            mShowLegacyChannelConfig = true;
+        } else {
+            populateUpgradedChannelPrefs();
+        }
 
-        mBlockedDesc = (FooterPreference) getPreferenceScreen().findPreference(KEY_BLOCKED_DESC);
-        mBadge = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BADGE);
-        mImportance = findPreference(KEY_IMPORTANCE);
-        mPriority = (RestrictedSwitchPreference) findPreference(KEY_BYPASS_DND);
-        mVisibilityOverride =
-                (RestrictedDropDownPreference) findPreference(KEY_VISIBILITY_OVERRIDE);
-        mLights = (RestrictedSwitchPreference) findPreference(KEY_LIGHTS);
-        mVibrate = (RestrictedSwitchPreference) findPreference(KEY_VIBRATE);
-        mRingtone = (NotificationSoundPreference) findPreference(KEY_RINGTONE);
+        updateDependents(mChannel.getImportance() == IMPORTANCE_NONE);
+    }
 
-
+    private void populateUpgradedChannelPrefs() {
+        addPreferencesFromResource(R.xml.upgraded_channel_notification_settings);
+        setupBadge();
         setupPriorityPref(mChannel.canBypassDnd());
         setupVisOverridePref(mChannel.getLockscreenVisibility());
         setupLights();
         setupVibrate();
         setupRingtone();
-        setupBadge();
-        setupBlock();
         setupImportance();
-        updateDependents();
+    }
 
+    private void addHeaderPref() {
+        ArrayMap<String, NotificationBackend.AppRow> rows = new ArrayMap<>();
+        rows.put(mAppRow.pkg, mAppRow);
+        collectConfigActivities(rows);
         final Activity activity = getActivity();
-        final Preference pref = FeatureFactory.getFactory(activity)
-                .getApplicationFeatureProvider(activity)
-                .newAppHeaderController(this /* fragment */, null /* appHeader */)
+        final Preference pref = EntityHeaderController
+                .newInstance(activity, this /* fragment */, null /* header */)
+                .setRecyclerView(getListView(), getLifecycle())
                 .setIcon(mAppRow.icon)
                 .setLabel(mChannel.getName())
                 .setSummary(mAppRow.label)
                 .setPackageName(mAppRow.pkg)
                 .setUid(mAppRow.uid)
-                .setButtonActions(AppHeaderController.ActionType.ACTION_APP_INFO,
-                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE)
+                .setButtonActions(EntityHeaderController.ActionType.ACTION_APP_INFO,
+                        EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE)
                 .done(activity, getPrefContext());
         getPreferenceScreen().addPreference(pref);
+    }
 
-        if (mAppRow.settingsIntent != null) {
-            Preference intentPref = new Preference(getPrefContext());
-            intentPref.setIntent(mAppRow.settingsIntent);
-            intentPref.setTitle(mContext.getString(R.string.app_settings_link));
-            getPreferenceScreen().addPreference(intentPref);
-        }
-
+    private void addFooterPref() {
         if (!TextUtils.isEmpty(mChannel.getDescription())) {
             FooterPreference descPref = new FooterPreference(getPrefContext());
+            descPref.setOrder(ORDER_LAST);
             descPref.setSelectable(false);
-            descPref.setSummary(mChannel.getDescription());
-            descPref.setEnabled(false);
+            descPref.setTitle(mChannel.getDescription());
             getPreferenceScreen().addPreference(descPref);
         }
+    }
 
+    protected void setupBadge() {
+        mBadge = (RestrictedSwitchPreference) getPreferenceScreen().findPreference(KEY_BADGE);
+        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
+        mBadge.setEnabled(mAppRow.showBadge);
+        mBadge.setChecked(mChannel.canShowBadge());
+
+        mBadge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+            @Override
+            public boolean onPreferenceChange(Preference preference, Object newValue) {
+                final boolean value = (Boolean) newValue;
+                mChannel.setShowBadge(value);
+                mChannel.lockFields(NotificationChannel.USER_LOCKED_SHOW_BADGE);
+                mBackend.updateChannel(mPkg, mUid, mChannel);
+                return true;
+            }
+        });
     }
 
     private void setupLights() {
+        mLights = (RestrictedSwitchPreference) findPreference(KEY_LIGHTS);
         mLights.setDisabledByAdmin(mSuspendedAppsAdmin);
         mLights.setChecked(mChannel.shouldShowLights());
         mLights.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@@ -156,6 +169,7 @@
     }
 
     private void setupVibrate() {
+        mVibrate = (RestrictedSwitchPreference) findPreference(KEY_VIBRATE);
         mVibrate.setDisabledByAdmin(mSuspendedAppsAdmin);
         mVibrate.setChecked(mChannel.shouldVibrate());
         mVibrate.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@@ -171,6 +185,7 @@
     }
 
     private void setupRingtone() {
+        mRingtone = (NotificationSoundPreference) findPreference(KEY_RINGTONE);
         mRingtone.setRingtone(mChannel.getSound());
         mRingtone.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
             @Override
@@ -183,27 +198,33 @@
         });
     }
 
-    protected void setupBlock() {
+    private void setupBlock() {
         View switchBarContainer = LayoutInflater.from(
                 getPrefContext()).inflate(R.layout.styled_switch_bar, null);
-        SwitchBar switchBar = switchBarContainer.findViewById(R.id.switch_bar);
-        switchBar.show();
-        switchBar.setDisabledByAdmin(mSuspendedAppsAdmin);
-        switchBar.setChecked(mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE);
-        switchBar.addOnSwitchChangeListener(new SwitchBar.OnSwitchChangeListener() {
+        mSwitchBar = switchBarContainer.findViewById(R.id.switch_bar);
+        mSwitchBar.show();
+        mSwitchBar.setDisabledByAdmin(mSuspendedAppsAdmin);
+        mSwitchBar.setChecked(mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE);
+        mSwitchBar.addOnSwitchChangeListener(new SwitchBar.OnSwitchChangeListener() {
             @Override
             public void onSwitchChanged(Switch switchView, boolean isChecked) {
-                int importance = isChecked ? IMPORTANCE_LOW : IMPORTANCE_NONE;
-                mImportance.setSummary(getImportanceSummary(importance));
+                int importance = 0;
+                if (mShowLegacyChannelConfig) {
+                    importance = isChecked ? IMPORTANCE_UNSPECIFIED : IMPORTANCE_NONE;
+                    mImportanceToggle.setChecked(importance == IMPORTANCE_UNSPECIFIED);
+                } else {
+                    importance = isChecked ? IMPORTANCE_LOW : IMPORTANCE_NONE;
+                    mImportance.setSummary(getImportanceSummary(importance));
+                }
                 mChannel.setImportance(importance);
                 mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
                 mBackend.updateChannel(mPkg, mUid, mChannel);
-                updateDependents();
+                updateDependents(mChannel.getImportance() == IMPORTANCE_NONE);
             }
         });
 
         mBlockBar = new LayoutPreference(getPrefContext(), switchBarContainer);
-        mBlockBar.setOrder(-500);
+        mBlockBar.setOrder(ORDER_FIRST);
         mBlockBar.setKey(KEY_BLOCK);
         getPreferenceScreen().addPreference(mBlockBar);
 
@@ -214,23 +235,8 @@
         setupBlockDesc(R.string.channel_notifications_off_desc);
     }
 
-    protected void setupBadge() {
-        mBadge.setDisabledByAdmin(mSuspendedAppsAdmin);
-        mBadge.setEnabled(mAppRow.showBadge);
-        mBadge.setChecked(mChannel.canShowBadge());
-        mBadge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
-            @Override
-            public boolean onPreferenceChange(Preference preference, Object newValue) {
-                final boolean value = (Boolean) newValue;
-                mChannel.setShowBadge(value);
-                mChannel.lockFields(NotificationChannel.USER_LOCKED_SHOW_BADGE);
-                mBackend.updateChannel(mPkg, mUid, mChannel);
-                return true;
-            }
-        });
-    }
-
-    protected void setupImportance() {
+    private void setupImportance() {
+        mImportance = findPreference(KEY_IMPORTANCE);
         Bundle channelArgs = new Bundle();
         channelArgs.putInt(AppInfoBase.ARG_PACKAGE_UID, mUid);
         channelArgs.putBoolean(AppHeader.EXTRA_HIDE_INFO_BUTTON, true);
@@ -245,23 +251,43 @@
         mImportance.setSummary(getImportanceSummary(mChannel.getImportance()));
     }
 
-    private boolean isLockScreenSecure() {
-        LockPatternUtils utils = new LockPatternUtils(getActivity());
-        boolean lockscreenSecure = utils.isSecure(UserHandle.myUserId());
-        UserInfo parentUser = mUm.getProfileParent(UserHandle.myUserId());
-        if (parentUser != null){
-            lockscreenSecure |= utils.isSecure(parentUser.id);
+    private String getImportanceSummary(int importance) {
+        String title;
+        String summary = null;
+        switch (importance) {
+            case IMPORTANCE_UNSPECIFIED:
+                title = getContext().getString(R.string.notification_importance_unspecified);
+                break;
+            case NotificationManager.IMPORTANCE_MIN:
+                title = getContext().getString(R.string.notification_importance_min_title);
+                summary = getContext().getString(R.string.notification_importance_min);
+                break;
+            case NotificationManager.IMPORTANCE_LOW:
+                title = getContext().getString(R.string.notification_importance_low_title);
+                summary = getContext().getString(R.string.notification_importance_low);
+                break;
+            case NotificationManager.IMPORTANCE_DEFAULT:
+                title = getContext().getString(R.string.notification_importance_default_title);
+                if (hasValidSound()) {
+                    summary = getContext().getString(R.string.notification_importance_default);
+                }
+                break;
+            case NotificationManager.IMPORTANCE_HIGH:
+            case NotificationManager.IMPORTANCE_MAX:
+                title = getContext().getString(R.string.notification_importance_high_title);
+                if (hasValidSound()) {
+                    summary = getContext().getString(R.string.notification_importance_high);
+                }
+                break;
+            default:
+                return "";
         }
 
-        return lockscreenSecure;
-    }
-
-    protected boolean checkCanBeVisible(int minImportanceVisible) {
-        int importance = mChannel.getImportance();
-        if (importance == NotificationManager.IMPORTANCE_UNSPECIFIED) {
-            return true;
+        if (summary != null) {
+            return getContext().getString(R.string.notification_importance_divider, title, summary);
+        } else {
+            return title;
         }
-        return importance >= minImportanceVisible;
     }
 
     @Override
@@ -279,9 +305,10 @@
         if (mRingtone != null) {
             mRingtone.onActivityResult(requestCode, resultCode, data);
         }
+        mImportance.setSummary(getImportanceSummary(mChannel.getImportance()));
     }
 
-    private boolean canPulseLight() {
+    boolean canPulseLight() {
         if (!getResources()
                 .getBoolean(com.android.internal.R.bool.config_intrusiveNotificationLed)) {
             return false;
@@ -290,18 +317,32 @@
                 Settings.System.NOTIFICATION_LIGHT_PULSE, 0) == 1;
     }
 
-    private void updateDependents() {
-        setVisible(mBlockedDesc, mChannel.getImportance() == IMPORTANCE_NONE);
+    boolean hasValidSound() {
+        return mChannel.getSound() != null && !Uri.EMPTY.equals(mChannel.getSound());
+    }
+
+    void updateDependents(boolean banned) {
+        if (mShowLegacyChannelConfig) {
+            setVisible(mImportanceToggle, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
+        } else {
+            setVisible(mImportance, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
+            setVisible(mLights, checkCanBeVisible(
+                    NotificationManager.IMPORTANCE_DEFAULT) && canPulseLight());
+            setVisible(mVibrate, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
+            setVisible(mRingtone, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
+        }
         setVisible(mBadge, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
-        setVisible(mImportance, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
-        setVisible(mLights, checkCanBeVisible(
-                NotificationManager.IMPORTANCE_LOW) && canPulseLight());
-        setVisible(mVibrate, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
-        setVisible(mRingtone, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT));
         setVisible(mPriority, checkCanBeVisible(NotificationManager.IMPORTANCE_DEFAULT)
                 || (checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
-                        && mDndVisualEffectsSuppressed));
-        setVisible(mVisibilityOverride, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN)
+                && mDndVisualEffectsSuppressed));
+        setVisible(mVisibilityOverride, checkCanBeVisible(NotificationManager.IMPORTANCE_LOW)
                 && isLockScreenSecure());
+        setVisible(mBlockedDesc, mChannel.getImportance() == IMPORTANCE_NONE);
+        if (mAppLink != null) {
+            setVisible(mAppLink, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
+        }
+        if (mFooter !=null) {
+            setVisible(mFooter, checkCanBeVisible(NotificationManager.IMPORTANCE_MIN));
+        }
     }
 }
diff --git a/src/com/android/settings/notification/ChargingSoundPreferenceController.java b/src/com/android/settings/notification/ChargingSoundPreferenceController.java
index 1114b4a..55cba96 100644
--- a/src/com/android/settings/notification/ChargingSoundPreferenceController.java
+++ b/src/com/android/settings/notification/ChargingSoundPreferenceController.java
@@ -22,7 +22,7 @@
 
 import android.provider.Settings.Global;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class ChargingSoundPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java
index b591d85..ad71e83 100644
--- a/src/com/android/settings/notification/ConfigureNotificationSettings.java
+++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java
@@ -22,11 +22,11 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.gestures.SwipeToNotificationPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -35,6 +35,8 @@
 public class ConfigureNotificationSettings extends DashboardFragment {
     private static final String TAG = "ConfigNotiSettings";
 
+    private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_notifications";
+
     @Override
     public int getMetricsCategory() {
         return MetricsEvent.CONFIGURE_NOTIFICATION;
@@ -58,6 +60,8 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
+        final BadgingNotificationPreferenceController badgeController =
+                new BadgingNotificationPreferenceController(context);
         final PulseNotificationPreferenceController pulseController =
                 new PulseNotificationPreferenceController(context);
         final LockScreenNotificationPreferenceController lockScreenNotificationController =
@@ -66,7 +70,9 @@
             lifecycle.addObserver(pulseController);
             lifecycle.addObserver(lockScreenNotificationController);
         }
-        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle));
+        controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
+                KEY_SWIPE_DOWN));
+        controllers.add(badgeController);
         controllers.add(pulseController);
         controllers.add(lockScreenNotificationController);
         return controllers;
diff --git a/src/com/android/settings/notification/DialPadTonePreferenceController.java b/src/com/android/settings/notification/DialPadTonePreferenceController.java
index 08e1a7d..e0ca299 100644
--- a/src/com/android/settings/notification/DialPadTonePreferenceController.java
+++ b/src/com/android/settings/notification/DialPadTonePreferenceController.java
@@ -23,7 +23,7 @@
 import android.provider.Settings.System;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DialPadTonePreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/DockAudioMediaPreferenceController.java b/src/com/android/settings/notification/DockAudioMediaPreferenceController.java
index 20c20b4..f7f13c5 100644
--- a/src/com/android/settings/notification/DockAudioMediaPreferenceController.java
+++ b/src/com/android/settings/notification/DockAudioMediaPreferenceController.java
@@ -24,7 +24,7 @@
 import android.provider.Settings.Global;
 import android.telephony.TelephonyManager;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DockAudioMediaPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/DockingSoundPreferenceController.java b/src/com/android/settings/notification/DockingSoundPreferenceController.java
index ee277f0..476fd6a 100644
--- a/src/com/android/settings/notification/DockingSoundPreferenceController.java
+++ b/src/com/android/settings/notification/DockingSoundPreferenceController.java
@@ -22,7 +22,7 @@
 import android.provider.Settings.Global;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class DockingSoundPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/EmergencyTonePreferenceController.java b/src/com/android/settings/notification/EmergencyTonePreferenceController.java
index bc21f44..a67ec8a 100644
--- a/src/com/android/settings/notification/EmergencyTonePreferenceController.java
+++ b/src/com/android/settings/notification/EmergencyTonePreferenceController.java
@@ -25,7 +25,7 @@
 import android.telephony.TelephonyManager;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class EmergencyTonePreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
index 547ff80..b84d961 100644
--- a/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/LockScreenNotificationPreferenceController.java
@@ -32,10 +32,10 @@
 import com.android.settings.R;
 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 com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import java.util.ArrayList;
 
@@ -281,6 +281,7 @@
             return;
         }
         mLockscreenSelectedValue = getSummaryResource();
+        mLockscreen.setSummary("%s");
         mLockscreen.setValue(Integer.toString(mLockscreenSelectedValue));
     }
 
diff --git a/src/com/android/settings/notification/MediaVolumePreferenceController.java b/src/com/android/settings/notification/MediaVolumePreferenceController.java
index fb8dba5..4f167f8 100644
--- a/src/com/android/settings/notification/MediaVolumePreferenceController.java
+++ b/src/com/android/settings/notification/MediaVolumePreferenceController.java
@@ -18,8 +18,8 @@
 
 import android.content.Context;
 import android.media.AudioManager;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.notification.VolumeSeekBarPreference.Callback;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class MediaVolumePreferenceController extends
     VolumeSeekBarPreferenceController {
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 6226eac..84d7e31 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -148,6 +148,15 @@
         }
     }
 
+    public boolean onlyHasDefaultChannel(String pkg, int uid) {
+        try {
+            return sINM.onlyHasDefaultChannel(pkg, uid);
+        } catch (Exception e) {
+            Log.w(TAG, "Error calling NoMan", e);
+            return false;
+        }
+    }
+
     static class Row {
         public String section;
     }
diff --git a/src/com/android/settings/notification/NotificationSettingsBase.java b/src/com/android/settings/notification/NotificationSettingsBase.java
index c08f161..e055133 100644
--- a/src/com/android/settings/notification/NotificationSettingsBase.java
+++ b/src/com/android/settings/notification/NotificationSettingsBase.java
@@ -16,12 +16,20 @@
 
 package com.android.settings.notification;
 
+import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
+import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.NotificationManager.IMPORTANCE_NONE;
+import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
+
+import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.applications.AppInfoBase;
-import com.android.settings.widget.FooterPreference;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.widget.SwitchBar;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.widget.FooterPreference;
 
 import android.app.Notification;
 import android.app.NotificationChannel;
@@ -35,6 +43,7 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.ResolveInfo;
+import android.content.pm.UserInfo;
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.os.UserManager;
@@ -60,16 +69,23 @@
             = new Intent(Intent.ACTION_MAIN)
             .addCategory(Notification.INTENT_CATEGORY_NOTIFICATION_PREFERENCES);
 
+    protected static final int ORDER_FIRST = -500;
+    protected static final int ORDER_LAST = 1000;
+
+    protected static final String KEY_APP_LINK = "app_link";
+    protected static final String KEY_HEADER = "header";
     protected static final String KEY_BLOCK = "block";
     protected static final String KEY_BADGE = "badge";
     protected static final String KEY_BYPASS_DND = "bypass_dnd";
     protected static final String KEY_VISIBILITY_OVERRIDE = "visibility_override";
-    protected static final String KEY_IMPORTANCE = "importance";
     protected static final String KEY_BLOCKED_DESC = "block_desc";
+    protected static final String KEY_ALLOW_SOUND = "allow_sound";
 
     protected PackageManager mPm;
     protected UserManager mUm;
-    protected final NotificationBackend mBackend = new NotificationBackend();
+    protected NotificationBackend mBackend = new NotificationBackend();
+    protected LockPatternUtils mLockPatternUtils;
+    protected NotificationManager mNm;
     protected Context mContext;
     protected boolean mCreated;
     protected int mUid;
@@ -79,13 +95,18 @@
     protected RestrictedSwitchPreference mBadge;
     protected RestrictedSwitchPreference mPriority;
     protected RestrictedDropDownPreference mVisibilityOverride;
+    protected RestrictedSwitchPreference mImportanceToggle;
+    protected LayoutPreference mBlockBar;
+    protected SwitchBar mSwitchBar;
     protected FooterPreference mBlockedDesc;
+    protected Preference mAppLink;
 
     protected EnforcedAdmin mSuspendedAppsAdmin;
     protected boolean mDndVisualEffectsSuppressed;
 
     protected NotificationChannel mChannel;
     protected NotificationBackend.AppRow mAppRow;
+    protected boolean mShowLegacyChannelConfig = false;
 
     @Override
     public void onActivityCreated(Bundle savedInstanceState) {
@@ -113,6 +134,7 @@
 
         mPm = getPackageManager();
         mUm = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+        mNm = NotificationManager.from(mContext);
 
         mPkg = args != null && args.containsKey(AppInfoBase.ARG_PACKAGE_NAME)
                 ? args.getString(AppInfoBase.ARG_PACKAGE_NAME)
@@ -154,8 +176,7 @@
 
         mSuspendedAppsAdmin = RestrictedLockUtils.checkIfApplicationIsSuspended(
                 mContext, mPkg, mUserId);
-        NotificationManager.Policy policy =
-                NotificationManager.from(mContext).getNotificationPolicy();
+        NotificationManager.Policy policy = mNm.getNotificationPolicy();
         mDndVisualEffectsSuppressed = policy == null ? false : policy.suppressedVisualEffects != 0;
 
         mSuspendedAppsAdmin = RestrictedLockUtils.checkIfApplicationIsSuspended(
@@ -241,26 +262,56 @@
         return null;
     }
 
-    protected String getImportanceSummary(int importance) {
-        switch (importance) {
-            case NotificationManager.IMPORTANCE_UNSPECIFIED:
-                return getContext().getString(R.string.notification_importance_unspecified);
-            case NotificationManager.IMPORTANCE_NONE:
-                return getContext().getString(R.string.notification_importance_blocked);
-            case NotificationManager.IMPORTANCE_MIN:
-                return getContext().getString(R.string.notification_importance_min);
-            case NotificationManager.IMPORTANCE_LOW:
-                return getContext().getString(R.string.notification_importance_low);
-            case NotificationManager.IMPORTANCE_DEFAULT:
-                return getContext().getString(R.string.notification_importance_default);
-            case NotificationManager.IMPORTANCE_HIGH:
-            case NotificationManager.IMPORTANCE_MAX:
-            default:
-                return getContext().getString(R.string.notification_importance_high);
+    protected void addAppLinkPref() {
+        if (mAppRow.settingsIntent != null) {
+            mAppLink = new Preference(getPrefContext());
+            mAppLink.setKey(KEY_APP_LINK);
+            mAppLink.setOrder(500);
+            mAppLink.setIntent(mAppRow.settingsIntent);
+            mAppLink.setTitle(mContext.getString(R.string.app_settings_link));
+            getPreferenceScreen().addPreference(mAppLink);
         }
     }
 
+    protected void populateDefaultChannelPrefs() {
+        if (mPkgInfo != null && mChannel != null) {
+            addPreferencesFromResource(R.xml.legacy_channel_notification_settings);
+            setupPriorityPref(mChannel.canBypassDnd());
+            setupVisOverridePref(mChannel.getLockscreenVisibility());
+            setupImportanceToggle();
+            setupBadge();
+        }
+        mSwitchBar.setChecked(!mAppRow.banned
+                && mChannel.getImportance() != NotificationManager.IMPORTANCE_NONE);
+    }
+
+    abstract void setupBadge();
+
+    abstract void updateDependents(boolean banned);
+
+    // 'allow sound'
+    private void setupImportanceToggle() {
+        mImportanceToggle = (RestrictedSwitchPreference) findPreference(KEY_ALLOW_SOUND);
+        mImportanceToggle.setDisabledByAdmin(mSuspendedAppsAdmin);
+        mImportanceToggle.setChecked(mChannel.getImportance() >= IMPORTANCE_DEFAULT
+                || mChannel.getImportance() == IMPORTANCE_UNSPECIFIED);
+        mImportanceToggle.setOnPreferenceChangeListener(
+                new Preference.OnPreferenceChangeListener() {
+                    @Override
+                    public boolean onPreferenceChange(Preference preference, Object newValue) {
+                        final int importance =
+                                ((Boolean) newValue ? IMPORTANCE_UNSPECIFIED : IMPORTANCE_LOW);
+                        mChannel.setImportance(importance);
+                        mChannel.lockFields(NotificationChannel.USER_LOCKED_IMPORTANCE);
+                        mBackend.updateChannel(mPkg, mUid, mChannel);
+                        updateDependents(mChannel.getImportance() == IMPORTANCE_NONE);
+                        return true;
+                    }
+                });
+    }
+
     protected void setupPriorityPref(boolean priority) {
+        mPriority = (RestrictedSwitchPreference) findPreference(KEY_BYPASS_DND);
         mPriority.setDisabledByAdmin(mSuspendedAppsAdmin);
         mPriority.setChecked(priority);
         mPriority.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@@ -276,6 +327,8 @@
     }
 
     protected void setupVisOverridePref(int sensitive) {
+        mVisibilityOverride =
+                (RestrictedDropDownPreference) findPreference(KEY_VISIBILITY_OVERRIDE);
         ArrayList<CharSequence> entries = new ArrayList<>();
         ArrayList<CharSequence> values = new ArrayList<>();
 
@@ -328,6 +381,8 @@
     }
 
     protected void setupBlockDesc(int summaryResId) {
+        mBlockedDesc = (FooterPreference) getPreferenceScreen().findPreference(
+                KEY_BLOCKED_DESC);
         mBlockedDesc = new FooterPreference(getPrefContext());
         mBlockedDesc.setSelectable(false);
         mBlockedDesc.setTitle(summaryResId);
@@ -336,6 +391,13 @@
         getPreferenceScreen().addPreference(mBlockedDesc);
     }
 
+    protected boolean checkCanBeVisible(int minImportanceVisible) {
+        int importance = mChannel.getImportance();
+        if (importance == NotificationManager.IMPORTANCE_UNSPECIFIED) {
+            return true;
+        }
+        return importance >= minImportanceVisible;
+    }
 
     private void setRestrictedIfNotificationFeaturesDisabled(CharSequence entry,
             CharSequence entryValue, int keyguardNotificationFeatures) {
@@ -359,7 +421,6 @@
         return globalVis;
     }
 
-
     private boolean getLockscreenNotificationsEnabled() {
         return Settings.Secure.getInt(getContentResolver(),
                 Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0) != 0;
@@ -369,4 +430,17 @@
         return Settings.Secure.getInt(getContentResolver(),
                 Settings.Secure.LOCK_SCREEN_ALLOW_PRIVATE_NOTIFICATIONS, 0) != 0;
     }
+
+    protected boolean isLockScreenSecure() {
+        if (mLockPatternUtils == null) {
+            mLockPatternUtils = new LockPatternUtils(getActivity());
+        }
+        boolean lockscreenSecure = mLockPatternUtils.isSecure(UserHandle.myUserId());
+        UserInfo parentUser = mUm.getProfileParent(UserHandle.myUserId());
+        if (parentUser != null){
+            lockscreenSecure |= mLockPatternUtils.isSecure(parentUser.id);
+        }
+
+        return lockscreenSecure;
+    }
 }
diff --git a/src/com/android/settings/notification/NotificationVolumePreferenceController.java b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
index 40448a4..5f888f8 100644
--- a/src/com/android/settings/notification/NotificationVolumePreferenceController.java
+++ b/src/com/android/settings/notification/NotificationVolumePreferenceController.java
@@ -21,8 +21,8 @@
 
 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 com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class NotificationVolumePreferenceController extends
     RingVolumePreferenceController {
diff --git a/src/com/android/settings/notification/PulseNotificationPreferenceController.java b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
index 3e37ab0..d6db8ac 100644
--- a/src/com/android/settings/notification/PulseNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/PulseNotificationPreferenceController.java
@@ -28,9 +28,9 @@
 import android.util.Log;
 
 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 com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import static android.provider.Settings.System.NOTIFICATION_LIGHT_PULSE;
 
diff --git a/src/com/android/settings/notification/RingVolumePreferenceController.java b/src/com/android/settings/notification/RingVolumePreferenceController.java
index a94d086..8b78225 100644
--- a/src/com/android/settings/notification/RingVolumePreferenceController.java
+++ b/src/com/android/settings/notification/RingVolumePreferenceController.java
@@ -33,8 +33,8 @@
 
 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 com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.Objects;
 
diff --git a/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java b/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
index f9905c0..b08b8f8 100644
--- a/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
+++ b/src/com/android/settings/notification/ScreenLockSoundPreferenceController.java
@@ -22,7 +22,7 @@
 
 import android.provider.Settings.System;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class ScreenLockSoundPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/SettingPrefController.java b/src/com/android/settings/notification/SettingPrefController.java
index 64d65bb..413b4a2 100644
--- a/src/com/android/settings/notification/SettingPrefController.java
+++ b/src/com/android/settings/notification/SettingPrefController.java
@@ -28,10 +28,10 @@
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 import java.util.List;
 
 public abstract class SettingPrefController extends PreferenceController implements
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index a92c5dd..8bee301 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -32,9 +32,9 @@
 import com.android.settings.R;
 import com.android.settings.RingtonePreference;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -43,6 +43,7 @@
 public class SoundSettings extends DashboardFragment {
     private static final String TAG = "SoundSettings";
 
+    private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
     private static final String SELECTED_PREFERENCE_KEY = "selected_preference";
     private static final int REQUEST_CODE = 200;
 
@@ -187,7 +188,7 @@
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new ZenModePreferenceController(context));
         controllers.add(new EmergencyBroadcastPreferenceController(
-                context, "cell_broadcast_settings"));
+                context, KEY_CELL_BROADCAST_SETTINGS));
         controllers.add(new VibrateWhenRingPreferenceController(context));
 
         // === Volumes ===
@@ -236,6 +237,16 @@
                     return buildPreferenceControllers(context, null /* fragment */,
                             null /* callback */, null /* lifecycle */);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    // Duplicate results
+                    keys.add((new ZenModePreferenceController(context)).getPreferenceKey());
+                    keys.add(ZenModeSettings.KEY_VISUAL_SETTINGS);
+                    keys.add(KEY_CELL_BROADCAST_SETTINGS);
+                    return keys;
+                }
             };
 
     // === Work Sound Settings ===
diff --git a/src/com/android/settings/notification/TouchSoundPreferenceController.java b/src/com/android/settings/notification/TouchSoundPreferenceController.java
index 4ca5ea0..4e25507 100644
--- a/src/com/android/settings/notification/TouchSoundPreferenceController.java
+++ b/src/com/android/settings/notification/TouchSoundPreferenceController.java
@@ -24,7 +24,7 @@
 import android.os.AsyncTask;
 import android.provider.Settings.System;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class TouchSoundPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java b/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
index 544c372..acb6b4d 100644
--- a/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateOnTouchPreferenceController.java
@@ -22,7 +22,7 @@
 import android.os.Vibrator;
 import android.provider.Settings.System;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 public class VibrateOnTouchPreferenceController extends SettingPrefController {
 
diff --git a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
index 2160f3d..338b652 100644
--- a/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateWhenRingPreferenceController.java
@@ -28,9 +28,9 @@
 
 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 com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import static android.provider.Settings.System.VIBRATE_WHEN_RINGING;
 
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 8a51961..6339008 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -31,7 +31,7 @@
 import android.widget.TextView;
 
 import com.android.settings.R;
-import com.android.settings.SeekBarPreference;
+import com.android.settings.widget.SeekBarPreference;
 
 import java.util.Objects;
 
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
index eeb9c28..501cedc 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreferenceController.java
@@ -19,11 +19,11 @@
 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;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * Base class for preference controller that handles VolumeSeekBarPreference
diff --git a/src/com/android/settings/notification/WorkSoundPreferenceController.java b/src/com/android/settings/notification/WorkSoundPreferenceController.java
index a80f503..465a2ec 100644
--- a/src/com/android/settings/notification/WorkSoundPreferenceController.java
+++ b/src/com/android/settings/notification/WorkSoundPreferenceController.java
@@ -45,10 +45,10 @@
 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.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class WorkSoundPreferenceController extends PreferenceController implements
         OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause {
diff --git a/src/com/android/settings/notification/ZenModeSettings.java b/src/com/android/settings/notification/ZenModeSettings.java
index bbcaa9c..854857a 100644
--- a/src/com/android/settings/notification/ZenModeSettings.java
+++ b/src/com/android/settings/notification/ZenModeSettings.java
@@ -53,8 +53,10 @@
 import java.util.Map.Entry;
 
 public class ZenModeSettings extends ZenModeSettingsBase {
+
+    public static final String KEY_VISUAL_SETTINGS = "visual_interruptions_settings";
+
     private static final String KEY_PRIORITY_SETTINGS = "priority_settings";
-    private static final String KEY_VISUAL_SETTINGS = "visual_interruptions_settings";
     private static final String KEY_AUTOMATIC_RULES = "automatic_rules";
 
     static final ManagedServiceSettings.Config CONFIG = getConditionProviderConfig();
diff --git a/src/com/android/settings/overlay/FeatureFactory.java b/src/com/android/settings/overlay/FeatureFactory.java
index 6f1d350..60893b2 100644
--- a/src/com/android/settings/overlay/FeatureFactory.java
+++ b/src/com/android/settings/overlay/FeatureFactory.java
@@ -30,8 +30,8 @@
 import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
 import com.android.settings.gestures.AssistGestureFeatureProvider;
 import com.android.settings.localepicker.LocaleFeatureProvider;
-import com.android.settings.security.SecurityFeatureProvider;
 import com.android.settings.search2.SearchFeatureProvider;
+import com.android.settings.security.SecurityFeatureProvider;
 import com.android.settings.users.UserFeatureProvider;
 
 /**
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
similarity index 72%
rename from src/com/android/settings/ChooseLockGeneric.java
rename to src/com/android/settings/password/ChooseLockGeneric.java
index 546b11e..3f68e5a 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PARENT_PROFILE_PASSWORD;
 import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
-import static com.android.settings.ChooseLockPassword.ChooseLockPasswordFragment.RESULT_FINISHED;
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
+
+import static com.android.settings.password.ChooseLockPassword.ChooseLockPasswordFragment.RESULT_FINISHED;
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.app.Activity;
@@ -29,7 +29,6 @@
 import android.app.FragmentManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.pm.UserInfo;
 import android.hardware.fingerprint.Fingerprint;
@@ -40,6 +39,7 @@
 import android.os.UserManager;
 import android.os.storage.StorageManager;
 import android.security.KeyStore;
+import android.support.annotation.StringRes;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 import android.text.TextUtils;
@@ -50,10 +50,17 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.EventLogTags;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.Utils;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
 import com.android.settings.fingerprint.FingerprintEnrollBase;
 import com.android.settings.fingerprint.FingerprintEnrollFindSensor;
 import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.RestrictedPreference;
 
 import java.util.List;
@@ -88,14 +95,9 @@
     }
 
     public static class ChooseLockGenericFragment extends SettingsPreferenceFragment {
+
         private static final String TAG = "ChooseLockGenericFragment";
         private static final int MIN_PASSWORD_LENGTH = 4;
-        private static final String KEY_UNLOCK_SET_OFF = "unlock_set_off";
-        private static final String KEY_UNLOCK_SET_NONE = "unlock_set_none";
-        private static final String KEY_UNLOCK_SET_PIN = "unlock_set_pin";
-        private static final String KEY_UNLOCK_SET_PASSWORD = "unlock_set_password";
-        private static final String KEY_UNLOCK_SET_PATTERN = "unlock_set_pattern";
-        private static final String KEY_UNLOCK_SET_MANAGED = "unlock_set_managed";
         private static final String KEY_SKIP_FINGERPRINT = "unlock_skip_fingerprint";
         private static final String PASSWORD_CONFIRMED = "password_confirmed";
         private static final String WAITING_FOR_CONFIRMATION = "waiting_for_confirmation";
@@ -105,6 +107,27 @@
         public static final String ENCRYPT_REQUESTED_DISABLED = "encrypt_requested_disabled";
         public static final String TAG_FRP_WARNING_DIALOG = "frp_warning_dialog";
 
+        /**
+         * Boolean extra determining whether a "screen lock options" button should be shown. This
+         * extra is both sent and received by ChooseLockGeneric.
+         *
+         * When this extra is false, nothing will be done.
+         * When ChooseLockGeneric receives this extra set as true, and if ChooseLockGeneric is
+         * starting ChooseLockPassword or ChooseLockPattern automatically without user interaction,
+         * ChooseLockGeneric will set this extra to true when starting ChooseLockPassword/Pattern.
+         *
+         * This gives the user the choice to select a different screen lock type, even if
+         * ChooseLockGeneric selected a default.
+         */
+        public static final String EXTRA_SHOW_OPTIONS_BUTTON = "show_options_button";
+
+        /**
+         * Original intent extras used to start this activity. This is passed to ChooseLockPassword
+         * when the "screen lock options" button is shown, so that when that button is clicked,
+         * ChooseLockGeneric can be relaunched with the same extras.
+         */
+        public static final String EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS = "choose_lock_generic_extras";
+
         private static final int CONFIRM_EXISTING_REQUEST = 100;
         private static final int ENABLE_ENCRYPTION_REQUEST = 101;
         private static final int CHOOSE_LOCK_REQUEST = 102;
@@ -120,7 +143,6 @@
         private boolean mWaitingForConfirmation = false;
         private int mEncryptionRequestQuality;
         private boolean mEncryptionRequestDisabled;
-        private boolean mRequirePassword;
         private boolean mForChangeCredRequiredForBoot = false;
         private String mUserPassword;
         private LockPatternUtils mLockPatternUtils;
@@ -130,6 +152,7 @@
         private ManagedLockPasswordProvider mManagedPasswordProvider;
         private boolean mIsSetNewPassword = false;
         private UserManager mUserManager;
+        private ChooseLockGenericController mController;
 
         protected boolean mForFingerprint = false;
 
@@ -186,6 +209,7 @@
                     UserManager.get(getActivity()),
                     getArguments(),
                     getActivity().getIntent().getExtras()).getIdentifier();
+            mController = new ChooseLockGenericController(getContext(), mUserId);
             if (ACTION_SET_NEW_PASSWORD.equals(chooseLockAction)
                     && UserManager.get(getActivity()).isManagedProfile(mUserId)
                     && mLockPatternUtils.isSeparateProfileChallengeEnabled(mUserId)) {
@@ -271,7 +295,7 @@
                 mEncryptionRequestDisabled = disabled;
                 // Get the intent that the encryption interstitial should start for creating
                 // the new unlock method.
-                Intent unlockMethodIntent = getIntentForUnlockMethod(quality, disabled);
+                Intent unlockMethodIntent = getIntentForUnlockMethod(quality);
                 unlockMethodIntent.putExtra(
                         ChooseLockSettingsHelper.EXTRA_KEY_FOR_CHANGE_CRED_REQUIRED_FOR_BOOT,
                         mForChangeCredRequiredForBoot);
@@ -297,8 +321,7 @@
                     finish();
                     return;
                 }
-                mRequirePassword = false; // device encryption not enabled or not device owner.
-                updateUnlockMethodAndFinish(quality, disabled);
+                updateUnlockMethodAndFinish(quality, disabled, false /* chooseLockSkipped */);
             }
         }
 
@@ -323,6 +346,15 @@
                 if (resultCode != RESULT_CANCELED || mForChangeCredRequiredForBoot) {
                     getActivity().setResult(resultCode, data);
                     finish();
+                } else {
+                    // If PASSWORD_TYPE_KEY is set, this activity is used as a trampoline to start
+                    // the actual password enrollment. If the result is canceled, which means the
+                    // user pressed back, finish the activity with result canceled.
+                    int quality = getIntent().getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, -1);
+                    if (quality != -1) {
+                        getActivity().setResult(RESULT_CANCELED, data);
+                        finish();
+                    }
                 }
             } else if (requestCode == CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST
                     && resultCode == FingerprintEnrollBase.RESULT_FINISHED) {
@@ -369,7 +401,7 @@
             if (quality == -1) {
                 // If caller didn't specify password quality, show UI and allow the user to choose.
                 quality = intent.getIntExtra(MINIMUM_QUALITY_KEY, -1);
-                quality = upgradeQuality(quality);
+                quality = mController.upgradeQuality(quality);
                 final boolean hideDisabledPrefs = intent.getBooleanExtra(
                         HIDE_DISABLED_PREFS, false);
                 final PreferenceScreen prefScreen = getPreferenceScreen();
@@ -382,7 +414,7 @@
                 updateCurrentPreference();
                 updatePreferenceSummaryIfNeeded();
             } else {
-                updateUnlockMethodAndFinish(quality, false);
+                updateUnlockMethodAndFinish(quality, false, true /* chooseLockSkipped */);
             }
         }
 
@@ -390,33 +422,26 @@
             addPreferencesFromResource(R.xml.security_settings_picker);
 
             // Used for testing purposes
-            findPreference(KEY_UNLOCK_SET_NONE).setViewId(R.id.lock_none);
+            findPreference(ScreenLockType.NONE.preferenceKey).setViewId(R.id.lock_none);
             findPreference(KEY_SKIP_FINGERPRINT).setViewId(R.id.lock_none);
-            findPreference(KEY_UNLOCK_SET_PIN).setViewId(R.id.lock_pin);
-            findPreference(KEY_UNLOCK_SET_PASSWORD).setViewId(R.id.lock_password);
+            findPreference(ScreenLockType.PIN.preferenceKey).setViewId(R.id.lock_pin);
+            findPreference(ScreenLockType.PASSWORD.preferenceKey).setViewId(R.id.lock_password);
         }
 
         private void updatePreferenceText() {
             if (mForFingerprint) {
-                final String key[] = { KEY_UNLOCK_SET_PATTERN,
-                        KEY_UNLOCK_SET_PIN,
-                        KEY_UNLOCK_SET_PASSWORD };
-                final int res[] = { R.string.fingerprint_unlock_set_unlock_pattern,
-                        R.string.fingerprint_unlock_set_unlock_pin,
-                        R.string.fingerprint_unlock_set_unlock_password };
-                for (int i = 0; i < key.length; i++) {
-                    Preference pref = findPreference(key[i]);
-                    if (pref != null) { // can be removed by device admin
-                        pref.setTitle(res[i]);
-                    }
-                }
+                setPreferenceTitle(ScreenLockType.PATTERN,
+                        R.string.fingerprint_unlock_set_unlock_pattern);
+                setPreferenceTitle(ScreenLockType.PIN, R.string.fingerprint_unlock_set_unlock_pin);
+                setPreferenceTitle(ScreenLockType.PASSWORD,
+                        R.string.fingerprint_unlock_set_unlock_password);
             }
 
             if (mManagedPasswordProvider.isSettingManagedPasswordSupported()) {
-                Preference managed = findPreference(KEY_UNLOCK_SET_MANAGED);
-                managed.setTitle(mManagedPasswordProvider.getPickerOptionTitle(mForFingerprint));
+                setPreferenceTitle(ScreenLockType.MANAGED,
+                        mManagedPasswordProvider.getPickerOptionTitle(mForFingerprint));
             } else {
-                removePreference(KEY_UNLOCK_SET_MANAGED);
+                removePreference(ScreenLockType.MANAGED.preferenceKey);
             }
 
             if (!(mForFingerprint && mIsSetNewPassword)) {
@@ -424,6 +449,27 @@
             }
         }
 
+        private void setPreferenceTitle(ScreenLockType lock, @StringRes int title) {
+            Preference preference = findPreference(lock.preferenceKey);
+            if (preference != null) {
+                preference.setTitle(title);
+            }
+        }
+
+        private void setPreferenceTitle(ScreenLockType lock, CharSequence title) {
+            Preference preference = findPreference(lock.preferenceKey);
+            if (preference != null) {
+                preference.setTitle(title);
+            }
+        }
+
+        private void setPreferenceSummary(ScreenLockType lock, @StringRes int summary) {
+            Preference preference = findPreference(lock.preferenceKey);
+            if (preference != null) {
+                preference.setSummary(summary);
+            }
+        }
+
         private void updateCurrentPreference() {
             String currentKey = getKeyForCurrent();
             Preference preference = findPreference(currentKey);
@@ -436,39 +482,12 @@
             final int credentialOwner = UserManager.get(getContext())
                     .getCredentialOwnerProfile(mUserId);
             if (mLockPatternUtils.isLockScreenDisabled(credentialOwner)) {
-                return KEY_UNLOCK_SET_OFF;
+                return ScreenLockType.NONE.preferenceKey;
             }
-            switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(credentialOwner)) {
-                case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
-                    return KEY_UNLOCK_SET_PATTERN;
-                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
-                case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
-                    return KEY_UNLOCK_SET_PIN;
-                case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
-                case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
-                case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
-                    return KEY_UNLOCK_SET_PASSWORD;
-                case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
-                    return KEY_UNLOCK_SET_MANAGED;
-                case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
-                    return KEY_UNLOCK_SET_NONE;
-            }
-            return null;
-        }
-
-        /** increases the quality if necessary */
-        private int upgradeQuality(int quality) {
-            quality = upgradeQualityForDPM(quality);
-            return quality;
-        }
-
-        private int upgradeQualityForDPM(int quality) {
-            // Compare min allowed password quality
-            int minQuality = mDPM.getPasswordQuality(null, mUserId);
-            if (quality < minQuality) {
-                quality = minQuality;
-            }
-            return quality;
+            ScreenLockType lock =
+                    ScreenLockType.fromQuality(
+                            mLockPatternUtils.getKeyguardStoredPasswordQuality(credentialOwner));
+            return lock != null ? lock.preferenceKey : null;
         }
 
         /***
@@ -496,54 +515,17 @@
             int adminEnforcedQuality = mDPM.getPasswordQuality(null, mUserId);
             EnforcedAdmin enforcedAdmin = RestrictedLockUtils.checkIfPasswordQualityIsSet(
                     getActivity(), mUserId);
-            for (int i = entries.getPreferenceCount() - 1; i >= 0; --i) {
-                Preference pref = entries.getPreference(i);
+
+            for (ScreenLockType lock : ScreenLockType.values()) {
+                String key = lock.preferenceKey;
+                Preference pref = findPreference(key);
                 if (pref instanceof RestrictedPreference) {
-                    final String key = pref.getKey();
-                    boolean enabled = true;
-                    boolean visible = true;
-                    boolean disabledByAdmin = false;
-                    if (KEY_UNLOCK_SET_OFF.equals(key)) {
-                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-                        if (getResources().getBoolean(R.bool.config_hide_none_security_option)) {
-                            enabled = false;
-                            visible = false;
-                        }
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-                    } else if (KEY_UNLOCK_SET_NONE.equals(key)) {
-                        if (getResources().getBoolean(R.bool.config_hide_swipe_security_option)) {
-                            enabled = false;
-                            visible = false;
-                        } else {
-                            if (mUserId != UserHandle.myUserId()) {
-                                // Swipe doesn't make sense for profiles.
-                                visible = false;
-                            }
-                            enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-                        }
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
-                    } else if (KEY_UNLOCK_SET_PATTERN.equals(key)) {
-                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_SOMETHING;
-                    } else if (KEY_UNLOCK_SET_PIN.equals(key)) {
-                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
-                    } else if (KEY_UNLOCK_SET_PASSWORD.equals(key)) {
-                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
-                    } else if (KEY_UNLOCK_SET_MANAGED.equals(key)) {
-                        enabled = quality <= DevicePolicyManager.PASSWORD_QUALITY_MANAGED
-                                && mManagedPasswordProvider.isManagedPasswordChoosable();
-                        disabledByAdmin = adminEnforcedQuality
-                                > DevicePolicyManager.PASSWORD_QUALITY_MANAGED;
-                    }
+                    boolean visible = mController.isScreenLockVisible(lock);
+                    boolean enabled = mController.isScreenLockEnabled(lock, quality);
+                    boolean disabledByAdmin =
+                            mController.isScreenLockDisabledByAdmin(lock, adminEnforcedQuality);
                     if (hideDisabled) {
-                        visible = enabled;
+                        visible = visible && enabled;
                     }
                     if (!visible) {
                         entries.removePreference(pref);
@@ -578,61 +560,40 @@
                 return;
             }
 
-            CharSequence summary = getString(R.string.secure_lock_encryption_warning);
+            setPreferenceSummary(ScreenLockType.PATTERN, R.string.secure_lock_encryption_warning);
+            setPreferenceSummary(ScreenLockType.PIN, R.string.secure_lock_encryption_warning);
+            setPreferenceSummary(ScreenLockType.PASSWORD, R.string.secure_lock_encryption_warning);
+            setPreferenceSummary(ScreenLockType.MANAGED, R.string.secure_lock_encryption_warning);
+        }
 
-            PreferenceScreen screen = getPreferenceScreen();
-            final int preferenceCount = screen.getPreferenceCount();
-            for (int i = 0; i < preferenceCount; i++) {
-                Preference preference = screen.getPreference(i);
-                switch (preference.getKey()) {
-                    case KEY_UNLOCK_SET_PATTERN:
-                    case KEY_UNLOCK_SET_PIN:
-                    case KEY_UNLOCK_SET_PASSWORD:
-                    case KEY_UNLOCK_SET_MANAGED: {
-                        preference.setSummary(summary);
-                    } break;
-                }
+        protected Intent getLockManagedPasswordIntent(String password) {
+            return mManagedPasswordProvider.createIntent(false, password);
+        }
+
+        protected Intent getLockPasswordIntent(int quality, int minLength, int maxLength) {
+            ChooseLockPassword.IntentBuilder builder =
+                    new ChooseLockPassword.IntentBuilder(getContext())
+                            .setPasswordQuality(quality)
+                            .setPasswordLengthRange(minLength, maxLength)
+                            .setUserId(mUserId);
+            if (mHasChallenge) {
+                builder.setChallenge(mChallenge);
+            } else {
+                builder.setPassword(mUserPassword);
             }
+            return builder.build();
         }
 
-        protected Intent getLockManagedPasswordIntent(boolean requirePassword, String password) {
-            return mManagedPasswordProvider.createIntent(requirePassword, password);
-        }
-
-        protected Intent getLockPasswordIntent(Context context, int quality,
-                int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, boolean confirmCredentials, int userId) {
-            return ChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, confirmCredentials, userId);
-        }
-
-        protected Intent getLockPasswordIntent(Context context, int quality,
-                int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, long challenge, int userId) {
-            return ChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, challenge, userId);
-        }
-
-        protected Intent getLockPasswordIntent(Context context, int quality, int minLength,
-                int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
-            return ChooseLockPassword.createIntent(context, quality, minLength, maxLength,
-                    requirePasswordToDecrypt, password, userId);
-        }
-
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final boolean confirmCredentials, int userId) {
-            return ChooseLockPattern.createIntent(context, requirePassword,
-                    confirmCredentials, userId);
-        }
-
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-               long challenge, int userId) {
-            return ChooseLockPattern.createIntent(context, requirePassword, challenge, userId);
-        }
-
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final String pattern, int userId) {
-            return ChooseLockPattern.createIntent(context, requirePassword, pattern, userId);
+        protected Intent getLockPatternIntent() {
+            ChooseLockPattern.IntentBuilder builder =
+                    new ChooseLockPattern.IntentBuilder(getContext())
+                            .setUserId(mUserId);
+            if (mHasChallenge) {
+                builder.setChallenge(mChallenge);
+            } else {
+                builder.setPattern(mUserPassword);
+            }
+            return builder.build();
         }
 
         protected Intent getEncryptionInterstitialIntent(Context context, int quality,
@@ -648,17 +609,24 @@
          *
          * @param quality the desired quality. Ignored if DevicePolicyManager requires more security
          * @param disabled whether or not to show LockScreen at all. Only meaningful when quality is
+         * @param chooseLockSkipped whether or not this activity is skipped. This is true when this
+         * activity was not shown to the user at all, instead automatically proceeding based on
+         * the given intent extras, typically {@link LockPatternUtils#PASSWORD_TYPE_KEY}.
          * {@link DevicePolicyManager#PASSWORD_QUALITY_UNSPECIFIED}
          */
-        void updateUnlockMethodAndFinish(int quality, boolean disabled) {
+        void updateUnlockMethodAndFinish(int quality, boolean disabled, boolean chooseLockSkipped) {
             // Sanity check. We should never get here without confirming user's existing password.
             if (!mPasswordConfirmed) {
                 throw new IllegalStateException("Tried to update password without confirming it");
             }
 
-            quality = upgradeQuality(quality);
-            Intent intent = getIntentForUnlockMethod(quality, disabled);
+            quality = mController.upgradeQuality(quality);
+            Intent intent = getIntentForUnlockMethod(quality);
             if (intent != null) {
+                if (getIntent().getBooleanExtra(EXTRA_SHOW_OPTIONS_BUTTON, false)) {
+                    intent.putExtra(EXTRA_SHOW_OPTIONS_BUTTON, chooseLockSkipped);
+                }
+                intent.putExtra(EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS, getIntent().getExtras());
                 startActivityForResult(intent,
                         mIsSetNewPassword && mHasChallenge
                                 ? CHOOSE_LOCK_BEFORE_FINGERPRINT_REQUEST
@@ -677,32 +645,19 @@
             }
         }
 
-        private Intent getIntentForUnlockMethod(int quality, boolean disabled) {
+        private Intent getIntentForUnlockMethod(int quality) {
             Intent intent = null;
-            final Context context = getActivity();
             if (quality >= DevicePolicyManager.PASSWORD_QUALITY_MANAGED) {
-                intent = getLockManagedPasswordIntent(mRequirePassword, mUserPassword);
+                intent = getLockManagedPasswordIntent(mUserPassword);
             } else if (quality >= DevicePolicyManager.PASSWORD_QUALITY_NUMERIC) {
                 int minLength = mDPM.getPasswordMinimumLength(null, mUserId);
                 if (minLength < MIN_PASSWORD_LENGTH) {
                     minLength = MIN_PASSWORD_LENGTH;
                 }
                 final int maxLength = mDPM.getPasswordMaximumLength(quality);
-                if (mHasChallenge) {
-                    intent = getLockPasswordIntent(context, quality, minLength,
-                            maxLength, mRequirePassword, mChallenge, mUserId);
-                } else {
-                    intent = getLockPasswordIntent(context, quality, minLength,
-                            maxLength, mRequirePassword, mUserPassword, mUserId);
-                }
+                intent = getLockPasswordIntent(quality, minLength, maxLength);
             } else if (quality == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) {
-                if (mHasChallenge) {
-                    intent = getLockPatternIntent(context, mRequirePassword,
-                            mChallenge, mUserId);
-                } else {
-                    intent = getLockPatternIntent(context, mRequirePassword,
-                            mUserPassword, mUserId);
-                }
+                intent = getLockPatternIntent();
             }
             if (intent != null) {
                 intent.putExtra(EXTRA_HIDE_DRAWER, mHideDrawer);
@@ -722,15 +677,16 @@
                                 @Override
                                 public void onRemovalError(Fingerprint fp, int errMsgId,
                                         CharSequence errString) {
-                                    Log.v(TAG, "Fingerprint removed: " + fp.getFingerId());
-                                    if (fp.getFingerId() == 0) {
-                                        removeManagedProfileFingerprintsAndFinishIfNecessary(userId);
-                                    }
+                                    Log.e(TAG, String.format(
+                                            "Can't remove fingerprint %d in group %d. Reason: %s",
+                                            fp.getFingerId(), fp.getGroupId(), errString));
+                                    // TODO: need to proceed with the removal of managed profile
+                                    // fingerprints and finish() gracefully.
                                 }
 
                                 @Override
-                                public void onRemovalSucceeded(Fingerprint fingerprint) {
-                                    if (fingerprint.getFingerId() == 0) {
+                                public void onRemovalSucceeded(Fingerprint fp, int remaining) {
+                                    if (remaining == 0) {
                                         removeManagedProfileFingerprintsAndFinishIfNecessary(userId);
                                     }
                                 }
@@ -849,35 +805,33 @@
         }
 
         private boolean isUnlockMethodSecure(String unlockMethod) {
-            return !(KEY_UNLOCK_SET_OFF.equals(unlockMethod) ||
-                    KEY_UNLOCK_SET_NONE.equals(unlockMethod));
+            return !(ScreenLockType.SWIPE.preferenceKey.equals(unlockMethod) ||
+                    ScreenLockType.NONE.preferenceKey.equals(unlockMethod));
         }
 
         private boolean setUnlockMethod(String unlockMethod) {
             EventLog.writeEvent(EventLogTags.LOCK_SCREEN_TYPE, unlockMethod);
 
-            if (KEY_UNLOCK_SET_OFF.equals(unlockMethod)) {
-                updateUnlockMethodAndFinish(
-                        DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, true /* disabled */ );
-            } else if (KEY_UNLOCK_SET_NONE.equals(unlockMethod)) {
-                updateUnlockMethodAndFinish(
-                        DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED, false /* disabled */ );
-            } else if (KEY_UNLOCK_SET_MANAGED.equals(unlockMethod)) {
-                maybeEnableEncryption(DevicePolicyManager.PASSWORD_QUALITY_MANAGED, false);
-            } else if (KEY_UNLOCK_SET_PATTERN.equals(unlockMethod)) {
-                maybeEnableEncryption(
-                        DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, false);
-            } else if (KEY_UNLOCK_SET_PIN.equals(unlockMethod)) {
-                maybeEnableEncryption(
-                        DevicePolicyManager.PASSWORD_QUALITY_NUMERIC, false);
-            } else if (KEY_UNLOCK_SET_PASSWORD.equals(unlockMethod)) {
-                maybeEnableEncryption(
-                        DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC, false);
-            } else {
-                Log.e(TAG, "Encountered unknown unlock method to set: " + unlockMethod);
-                return false;
+            ScreenLockType lock = ScreenLockType.fromKey(unlockMethod);
+            if (lock != null) {
+                switch (lock) {
+                    case NONE:
+                    case SWIPE:
+                        updateUnlockMethodAndFinish(
+                                lock.defaultQuality,
+                                lock == ScreenLockType.NONE,
+                                false /* chooseLockSkipped */);
+                        return true;
+                    case PATTERN:
+                    case PIN:
+                    case PASSWORD:
+                    case MANAGED:
+                        maybeEnableEncryption(lock.defaultQuality, false);
+                        return true;
+                }
             }
-            return true;
+            Log.e(TAG, "Encountered unknown unlock method to set: " + unlockMethod);
+            return false;
         }
 
         private void showFactoryResetProtectionWarningDialog(String unlockMethodToSet) {
@@ -923,23 +877,12 @@
                         .setTitle(args.getInt(ARG_TITLE_RES))
                         .setMessage(args.getInt(ARG_MESSAGE_RES))
                         .setPositiveButton(R.string.unlock_disable_frp_warning_ok,
-                                new DialogInterface.OnClickListener() {
-                                    @Override
-                                    public void onClick(DialogInterface dialog, int whichButton) {
-                                        ((ChooseLockGenericFragment) getParentFragment())
-                                                .setUnlockMethod(
-                                                        args.getString(ARG_UNLOCK_METHOD_TO_SET));
-                                    }
-                                }
-                        )
-                        .setNegativeButton(R.string.cancel,
-                                new DialogInterface.OnClickListener() {
-                                    @Override
-                                    public void onClick(DialogInterface dialog, int whichButton) {
-                                        dismiss();
-                                    }
-                                }
-                        )
+                                (dialog, whichButton) -> {
+                                    String unlockMethod = args.getString(ARG_UNLOCK_METHOD_TO_SET);
+                                    ((ChooseLockGenericFragment) getParentFragment())
+                                            .setUnlockMethod(unlockMethod);
+                                })
+                        .setNegativeButton(R.string.cancel, (dialog, whichButton) -> dismiss())
                         .create();
             }
 
diff --git a/src/com/android/settings/password/ChooseLockGenericController.java b/src/com/android/settings/password/ChooseLockGenericController.java
new file mode 100644
index 0000000..a6a1701
--- /dev/null
+++ b/src/com/android/settings/password/ChooseLockGenericController.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.os.UserHandle;
+import android.support.annotation.NonNull;
+import android.support.annotation.VisibleForTesting;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A controller for ChooseLockGeneric, and other similar classes which shows a list of possible
+ * screen locks for the user to choose from.
+ */
+public class ChooseLockGenericController {
+
+    private final Context mContext;
+    private final int mUserId;
+    private ManagedLockPasswordProvider mManagedPasswordProvider;
+    private DevicePolicyManager mDpm;
+
+    public ChooseLockGenericController(Context context, int userId) {
+        this(
+                context,
+                userId,
+                context.getSystemService(DevicePolicyManager.class),
+                ManagedLockPasswordProvider.get(context, userId));
+    }
+
+    @VisibleForTesting
+    ChooseLockGenericController(
+            Context context,
+            int userId,
+            DevicePolicyManager dpm,
+            ManagedLockPasswordProvider managedLockPasswordProvider) {
+        mContext = context;
+        mUserId = userId;
+        mManagedPasswordProvider = managedLockPasswordProvider;
+        mDpm = dpm;
+    }
+
+    /**
+     * @return The higher quality of either the specified {@code quality} or the quality required
+     *         by {@link DevicePolicyManager#getPasswordQuality}.
+     */
+    public int upgradeQuality(int quality) {
+        // Compare min allowed password quality
+        return Math.max(quality, mDpm.getPasswordQuality(null, mUserId));
+    }
+
+    /**
+     * Whether the given screen lock type should be visible in the given context.
+     */
+    public boolean isScreenLockVisible(ScreenLockType type) {
+        switch (type) {
+            case NONE:
+                return !mContext.getResources().getBoolean(R.bool.config_hide_none_security_option);
+            case SWIPE:
+                return !mContext.getResources().getBoolean(R.bool.config_hide_swipe_security_option)
+                    // Swipe doesn't make sense for profiles.
+                    && mUserId == UserHandle.myUserId();
+            case MANAGED:
+                return mManagedPasswordProvider.isManagedPasswordChoosable();
+        }
+        return true;
+    }
+
+    /**
+     * Whether screen lock with {@code type} should be enabled.
+     *
+     * @param type The screen lock type.
+     * @param quality The minimum required quality. This can either be requirement by device policy
+     *                manager or because some flow only makes sense with secure lock screens.
+     */
+    public boolean isScreenLockEnabled(ScreenLockType type, int quality) {
+        return type.maxQuality >= quality;
+    }
+
+    /**
+     * Whether screen lock with {@code type} is disabled by device policy admin.
+     *
+     * @param type The screen lock type.
+     * @param adminEnforcedQuality The minimum quality that the admin enforces.
+     */
+    public boolean isScreenLockDisabledByAdmin(ScreenLockType type, int adminEnforcedQuality) {
+        boolean disabledByAdmin = type.maxQuality < adminEnforcedQuality;
+        if (type == ScreenLockType.MANAGED) {
+            disabledByAdmin = disabledByAdmin
+                    || !mManagedPasswordProvider.isManagedPasswordChoosable();
+        }
+        return disabledByAdmin;
+    }
+
+    /**
+     * User friendly title for the given screen lock type.
+     */
+    public CharSequence getTitle(ScreenLockType type) {
+        switch (type) {
+            case NONE:
+                return mContext.getText(R.string.unlock_set_unlock_off_title);
+            case SWIPE:
+                return mContext.getText(R.string.unlock_set_unlock_none_title);
+            case PATTERN:
+                return mContext.getText(R.string.unlock_set_unlock_pattern_title);
+            case PIN:
+                return mContext.getText(R.string.unlock_set_unlock_pin_title);
+            case PASSWORD:
+                return mContext.getText(R.string.unlock_set_unlock_password_title);
+            case MANAGED:
+                return mManagedPasswordProvider.getPickerOptionTitle(false);
+        }
+        return null;
+    }
+
+    /**
+     * Gets a list of screen locks that should be visible for the given quality. The returned list
+     * is ordered in the natural order of the enum (the order those enums were defined).
+     *
+     * @param quality The minimum quality required in the context of the current flow. This should
+     *                be one of the constants defined in
+     *                {@code DevicePolicyManager#PASSWORD_QUALITY_*}.
+     * @param includeDisabled Whether to include screen locks disabled by {@code quality}
+     *                        requirements in the returned list.
+     */
+    @NonNull
+    public List<ScreenLockType> getVisibleScreenLockTypes(int quality, boolean includeDisabled) {
+        int upgradedQuality = upgradeQuality(quality);
+        List<ScreenLockType> locks = new ArrayList<>();
+        // EnumSet's iterator guarantees the natural order of the enums
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            if (isScreenLockVisible(lock)) {
+                if (includeDisabled || isScreenLockEnabled(lock, upgradedQuality)) {
+                    locks.add(lock);
+                }
+            }
+        }
+        return locks;
+    }
+}
diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
similarity index 90%
rename from src/com/android/settings/ChooseLockPassword.java
rename to src/com/android/settings/password/ChooseLockPassword.java
index 351c2a2..df0621e 100644
--- a/src/com/android/settings/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -14,7 +14,13 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
+
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
+import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -22,7 +28,7 @@
 import android.app.admin.PasswordMetrics;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.drawable.InsetDrawable;
+import android.graphics.Insets;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
@@ -35,12 +41,12 @@
 import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.util.Log;
-import android.view.inputmethod.EditorInfo;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View.OnClickListener;
 import android.view.ViewGroup;
+import android.view.inputmethod.EditorInfo;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.LinearLayout;
@@ -51,20 +57,17 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternUtils.RequestThrottledException;
 import com.android.internal.widget.TextViewInputDisabler;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
-import com.android.settings.password.PasswordRequirementAdapter;
 import com.android.setupwizardlib.GlifLayout;
 
 import java.util.ArrayList;
 import java.util.List;
 
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_COMPLEX;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC;
-import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
-
 public class ChooseLockPassword extends SettingsActivity {
     public static final String PASSWORD_MIN_KEY = "lockscreen.password_min";
     public static final String PASSWORD_MAX_KEY = "lockscreen.password_max";
@@ -84,58 +87,47 @@
         return modIntent;
     }
 
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt,
-            boolean confirmCredentials) {
-        Intent intent = new Intent().setClass(context, ChooseLockPassword.class);
-        intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, quality);
-        intent.putExtra(PASSWORD_MIN_KEY, minLength);
-        intent.putExtra(PASSWORD_MAX_KEY, maxLength);
-        intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, confirmCredentials);
-        intent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, requirePasswordToDecrypt);
-        return intent;
-    }
+    public static class IntentBuilder {
 
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt,
-            boolean confirmCredentials, int userId) {
-        Intent intent = createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, confirmCredentials);
-        intent.putExtra(Intent.EXTRA_USER_ID, userId);
-        return intent;
-    }
+        private final Intent mIntent;
 
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt, String password) {
-        Intent intent = createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, false);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, password);
-        return intent;
-    }
+        public IntentBuilder(Context context) {
+            mIntent = new Intent(context, ChooseLockPassword.class);
+            mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
+            mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
+        }
 
-    public static Intent createIntent(Context context, int quality, int minLength,
-            int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
-        Intent intent = createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, password);
-        intent.putExtra(Intent.EXTRA_USER_ID, userId);
-        return intent;
-    }
+        public IntentBuilder setPasswordQuality(int quality) {
+            mIntent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, quality);
+            return this;
+        }
 
-    public static Intent createIntent(Context context, int quality,
-            int minLength, final int maxLength, boolean requirePasswordToDecrypt, long challenge) {
-        Intent intent = createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, false);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
-        return intent;
-    }
+        public IntentBuilder setPasswordLengthRange(int min, int max) {
+            mIntent.putExtra(PASSWORD_MIN_KEY, min);
+            mIntent.putExtra(PASSWORD_MAX_KEY, max);
+            return this;
+        }
 
-    public static Intent createIntent(Context context, int quality, int minLength,
-            int maxLength, boolean requirePasswordToDecrypt, long challenge, int userId) {
-        Intent intent = createIntent(context, quality, minLength, maxLength,
-                requirePasswordToDecrypt, challenge);
-        intent.putExtra(Intent.EXTRA_USER_ID, userId);
-        return intent;
+        public IntentBuilder setUserId(int userId) {
+            mIntent.putExtra(Intent.EXTRA_USER_ID, userId);
+            return this;
+        }
+
+        public IntentBuilder setChallenge(long challenge) {
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
+            return this;
+        }
+
+        public IntentBuilder setPassword(String password) {
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, password);
+            return this;
+        }
+
+        public Intent build() {
+            return mIntent;
+        }
     }
 
     @Override
@@ -180,7 +172,7 @@
         private int mPasswordMinNumeric = 0;
         private int mPasswordMinNonLetter = 0;
         private int mPasswordMinLengthToFulfillAllPolicies = 0;
-        private int mUserId;
+        protected int mUserId;
         private boolean mHideDrawer = false;
         /**
          * Password requirements that we need to verify.
@@ -197,7 +189,7 @@
         private TextView mHeaderText;
         private String mFirstPin;
         private RecyclerView mPasswordRestrictionView;
-        private boolean mIsAlphaMode;
+        protected boolean mIsAlphaMode;
         private Button mCancelButton;
         private Button mNextButton;
 
@@ -300,6 +292,11 @@
         public void onViewCreated(View view, Bundle savedInstanceState) {
             super.onViewCreated(view, savedInstanceState);
 
+            // Make the password container consume the optical insets so the edit text is aligned
+            // with the sides of the parent visually.
+            ViewGroup container = view.findViewById(R.id.password_container);
+            container.setOpticalInsets(Insets.NONE);
+
             mCancelButton = (Button) view.findViewById(R.id.cancel_button);
             mCancelButton.setOnClickListener(this);
             mNextButton = (Button) view.findViewById(R.id.next_button);
@@ -357,23 +354,6 @@
                         FRAGMENT_TAG_SAVE_AND_FINISH);
             }
 
-            // Workaround to show one password requirement below EditText when IME is shown.
-            // By adding an inset to the edit text background, we make the EditText occupy more
-            // vertical space, and the keyboard will then avoid hiding it. We have also set
-            // negative margin in the layout below in order to have them show in the correct
-            // position.
-            final int visibleVerticalSpaceBelowPassword =
-                    getResources().getDimensionPixelOffset(
-                        R.dimen.visible_vertical_space_below_password);
-            InsetDrawable drawable =
-                    new InsetDrawable(
-                    mPasswordEntry.getBackground(), 0, 0, 0, visibleVerticalSpaceBelowPassword);
-            mPasswordEntry.setBackgroundDrawable(drawable);
-            LinearLayout bottomContainer = (LinearLayout) view.findViewById(R.id.bottom_container);
-            LinearLayout.LayoutParams bottomContainerLp =
-                    (LinearLayout.LayoutParams) bottomContainer.getLayoutParams();
-            bottomContainerLp.setMargins(0, -visibleVerticalSpaceBelowPassword, 0, 0);
-
             if (activity instanceof SettingsActivity) {
                 final SettingsActivity sa = (SettingsActivity) activity;
                 int id = mIsAlphaMode ? R.string.lockpassword_choose_your_password_header
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
similarity index 95%
rename from src/com/android/settings/ChooseLockPattern.java
rename to src/com/android/settings/password/ChooseLockPattern.java
index 4afeae0..a9035c2 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Activity;
 import android.app.Fragment;
@@ -37,9 +37,14 @@
 import com.android.internal.widget.LockPatternView;
 import com.android.internal.widget.LockPatternView.Cell;
 import com.android.internal.widget.LockPatternView.DisplayMode;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
 import com.android.setupwizardlib.GlifLayout;
+
 import com.google.android.collect.Lists;
 
 import java.util.ArrayList;
@@ -75,29 +80,35 @@
         return modIntent;
     }
 
-    public static Intent createIntent(Context context,
-            boolean requirePassword, boolean confirmCredentials, int userId) {
-        Intent intent = new Intent(context, ChooseLockPattern.class);
-        intent.putExtra("key_lock_method", "pattern");
-        intent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, confirmCredentials);
-        intent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, requirePassword);
-        intent.putExtra(Intent.EXTRA_USER_ID, userId);
-        return intent;
-    }
+    public static class IntentBuilder {
+        private final Intent mIntent;
 
-    public static Intent createIntent(Context context,
-            boolean requirePassword, String pattern, int userId) {
-        Intent intent = createIntent(context, requirePassword, false, userId);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pattern);
-        return intent;
-    }
+        public IntentBuilder(Context context) {
+            mIntent = new Intent(context, ChooseLockPattern.class);
+            mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
+            mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
+        }
 
-    public static Intent createIntent(Context context,
-            boolean requirePassword, long challenge, int userId) {
-        Intent intent = createIntent(context, requirePassword, false, userId);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
-        intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
-        return intent;
+        public IntentBuilder setUserId(int userId) {
+            mIntent.putExtra(Intent.EXTRA_USER_ID, userId);
+            return this;
+        }
+
+        public IntentBuilder setChallenge(long challenge) {
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true);
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, challenge);
+            return this;
+        }
+
+        public IntentBuilder setPattern(String pattern) {
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false);
+            mIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD, pattern);
+            return this;
+        }
+
+        public Intent build() {
+            return mIntent;
+        }
     }
 
     @Override
@@ -442,7 +453,7 @@
             topLayout.setDefaultTouchRecepient(mLockPatternView);
 
             final boolean confirmCredentials = getActivity().getIntent()
-                    .getBooleanExtra("confirm_credentials", true);
+                    .getBooleanExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, true);
             Intent intent = getActivity().getIntent();
             mCurrentPattern = intent.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD);
             mHasChallenge = intent.getBooleanExtra(
diff --git a/src/com/android/settings/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
similarity index 97%
rename from src/com/android/settings/ChooseLockSettingsHelper.java
rename to src/com/android/settings/password/ChooseLockSettingsHelper.java
index 6f0c453..8c73355 100644
--- a/src/com/android/settings/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.annotation.Nullable;
 import android.app.Activity;
@@ -26,11 +26,13 @@
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
 
 public final class ChooseLockSettingsHelper {
 
-    static final String EXTRA_KEY_TYPE = "type";
-    static final String EXTRA_KEY_PASSWORD = "password";
+    public static final String EXTRA_KEY_TYPE = "type";
+    public static final String EXTRA_KEY_PASSWORD = "password";
     public static final String EXTRA_KEY_RETURN_CREDENTIALS = "return_credentials";
     public static final String EXTRA_KEY_HAS_CHALLENGE = "has_challenge";
     public static final String EXTRA_KEY_CHALLENGE = "challenge";
@@ -77,7 +79,7 @@
      * @return true if one exists and we launched an activity to confirm it
      * @see Activity#onActivityResult(int, int, android.content.Intent)
      */
-    boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials) {
+    public boolean launchConfirmationActivity(int request, CharSequence title, boolean returnCredentials) {
         return launchConfirmationActivity(request, title, null, null, returnCredentials, false);
     }
 
diff --git a/src/com/android/settings/password/ChooseLockTypeDialogFragment.java b/src/com/android/settings/password/ChooseLockTypeDialogFragment.java
new file mode 100644
index 0000000..2581483
--- /dev/null
+++ b/src/com/android/settings/password/ChooseLockTypeDialogFragment.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.app.AlertDialog.Builder;
+import android.app.Dialog;
+import android.app.Fragment;
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.content.DialogInterface.OnClickListener;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.TextView;
+
+import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
+import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
+
+import java.util.List;
+
+/**
+ * A dialog fragment similar to {@link ChooseLockGeneric} where the user can select from a few
+ * lock screen types.
+ */
+public class ChooseLockTypeDialogFragment extends InstrumentedDialogFragment
+        implements OnClickListener {
+
+    private static final String ARG_USER_ID = "userId";
+    private static final String ARG_EXCLUDE_LOCK = "excludeLock";
+
+    private ScreenLockAdapter mAdapter;
+    private ChooseLockGenericController mController;
+
+    public static ChooseLockTypeDialogFragment newInstance(int userId, String excludeLock) {
+        Bundle args = new Bundle();
+        args.putInt(ARG_USER_ID, userId);
+        args.putString(ARG_EXCLUDE_LOCK, excludeLock);
+        ChooseLockTypeDialogFragment fragment = new ChooseLockTypeDialogFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    public interface OnLockTypeSelectedListener {
+        void onLockTypeSelected(ScreenLockType lock);
+    }
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        final int userId = getArguments().getInt(ARG_USER_ID);
+        mController = new ChooseLockGenericController(getContext(), userId);
+    }
+
+    @Override
+    public void onClick(DialogInterface dialogInterface, int i) {
+        OnLockTypeSelectedListener listener = null;
+        Fragment parentFragment = getParentFragment();
+        if (parentFragment instanceof OnLockTypeSelectedListener) {
+            listener = (OnLockTypeSelectedListener) parentFragment;
+        } else {
+            Context context = getContext();
+            if (context instanceof OnLockTypeSelectedListener) {
+                listener = (OnLockTypeSelectedListener) context;
+            }
+        }
+        if (listener != null) {
+            listener.onLockTypeSelected(mAdapter.getItem(i));
+        }
+    }
+
+    @Override
+    public Dialog onCreateDialog(Bundle savedInstanceState) {
+        Context context = getContext();
+        Builder builder = new Builder(context);
+        List<ScreenLockType> locks =
+                mController.getVisibleScreenLockTypes(
+                        DevicePolicyManager.PASSWORD_QUALITY_SOMETHING,
+                        false /* includeDisabled */);
+        String excludeLockName = getArguments().getString(ARG_EXCLUDE_LOCK);
+        if (excludeLockName != null) {
+            locks.remove(ScreenLockType.valueOf(excludeLockName));
+        }
+        mAdapter = new ScreenLockAdapter(context, locks, mController);
+        builder.setAdapter(mAdapter, this);
+        return builder.create();
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.SETTINGS_CHOOSE_LOCK_DIALOG;
+    }
+
+    private static class ScreenLockAdapter extends ArrayAdapter<ScreenLockType> {
+
+        private final ChooseLockGenericController mController;
+
+        ScreenLockAdapter(
+                Context context,
+                List<ScreenLockType> locks,
+                ChooseLockGenericController controller) {
+            super(context, android.R.layout.simple_list_item_1, locks);
+            mController = controller;
+        }
+
+        @Override
+        public View getView(int position, View view, ViewGroup parent) {
+            if (view == null) {
+                view = LayoutInflater.from(parent.getContext())
+                        .inflate(android.R.layout.simple_list_item_1, parent, false);
+            }
+            ((TextView) view).setText(mController.getTitle(getItem(position)));
+            return view;
+        }
+    }
+}
diff --git a/src/com/android/settings/ConfirmDeviceCredentialActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
similarity index 98%
rename from src/com/android/settings/ConfirmDeviceCredentialActivity.java
rename to src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
index 22f1e52..38b38fc 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialActivity.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Activity;
 import android.app.KeyguardManager;
@@ -27,6 +27,7 @@
 import android.util.Log;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.Utils;
 
 /**
  * Launch this when you want to confirm the user is present by asking them to enter their
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
similarity index 96%
rename from src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
rename to src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
index d36947f..2de955f 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Fragment;
 import android.app.KeyguardManager;
@@ -24,6 +24,10 @@
 import android.view.WindowManager;
 import android.widget.LinearLayout;
 
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.Utils;
+
 public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivity {
 
     private static final String STATE_IS_KEYGUARD_LOCKED = "STATE_IS_KEYGUARD_LOCKED";
diff --git a/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
similarity index 98%
rename from src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java
rename to src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
index 2c97e1a..ae2dd42 100644
--- a/src/com/android/settings/ConfirmDeviceCredentialBaseFragment.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseFragment.java
@@ -15,7 +15,7 @@
  */
 
 // TODO (b/35202196): move this class out of the root of the package.
-package com.android.settings;
+package com.android.settings.password;
 
 import android.annotation.Nullable;
 import android.app.ActivityManager;
@@ -47,6 +47,9 @@
 import android.widget.TextView;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.OptionsMenuFragment;
+import com.android.settings.R;
+import com.android.settings.Utils;
 import com.android.settings.fingerprint.FingerprintUiHelper;
 
 /**
diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/password/ConfirmLockPassword.java
similarity index 98%
rename from src/com/android/settings/ConfirmLockPassword.java
rename to src/com/android/settings/password/ConfirmLockPassword.java
index 9a285f2..ef11521 100644
--- a/src/com/android/settings/ConfirmLockPassword.java
+++ b/src/com/android/settings/password/ConfirmLockPassword.java
@@ -14,8 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
+import android.app.Activity;
 import android.app.Fragment;
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
@@ -43,6 +44,8 @@
 import com.android.internal.widget.LockPatternChecker;
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.TextViewInputDisabler;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settingslib.animation.AppearAnimationUtils;
 import com.android.settingslib.animation.DisappearAnimationUtils;
 
@@ -136,6 +139,9 @@
             mPasswordEntryInputDisabler = new TextViewInputDisabler(mPasswordEntry);
 
             mHeaderTextView = (TextView) view.findViewById(R.id.headerText);
+            if (mHeaderTextView == null) {
+                mHeaderTextView = view.findViewById(R.id.suw_layout_title);
+            }
             mDetailsTextView = (TextView) view.findViewById(R.id.detailsText);
             mErrorTextView = (TextView) view.findViewById(R.id.errorText);
             mIsAlpha = DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC == storedQuality
diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
similarity index 99%
rename from src/com/android/settings/ConfirmLockPattern.java
rename to src/com/android/settings/password/ConfirmLockPattern.java
index 56d92f1..b66edfe 100644
--- a/src/com/android/settings/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Activity;
 import android.content.Intent;
@@ -37,6 +37,8 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.internal.widget.LockPatternView;
 import com.android.internal.widget.LockPatternView.Cell;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settingslib.animation.AppearAnimationCreator;
 import com.android.settingslib.animation.AppearAnimationUtils;
 import com.android.settingslib.animation.DisappearAnimationUtils;
diff --git a/src/com/android/settings/CredentialCheckResultTracker.java b/src/com/android/settings/password/CredentialCheckResultTracker.java
similarity index 98%
rename from src/com/android/settings/CredentialCheckResultTracker.java
rename to src/com/android/settings/password/CredentialCheckResultTracker.java
index cfd6f29..a17939c 100644
--- a/src/com/android/settings/CredentialCheckResultTracker.java
+++ b/src/com/android/settings/password/CredentialCheckResultTracker.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Fragment;
 import android.content.Intent;
diff --git a/src/com/android/settings/password/FingerprintManagerWrapper.java b/src/com/android/settings/password/FingerprintManagerWrapper.java
index b00f786..51b31af 100644
--- a/src/com/android/settings/password/FingerprintManagerWrapper.java
+++ b/src/com/android/settings/password/FingerprintManagerWrapper.java
@@ -18,6 +18,8 @@
 
 import android.annotation.NonNull;
 import android.hardware.fingerprint.FingerprintManager;
+import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
+import android.os.CancellationSignal;
 
 import com.android.internal.util.Preconditions;
 
@@ -33,15 +35,33 @@
         mFingerprintManager = fingerprintManager;
     }
 
+    @Override
     public boolean isHardwareDetected() {
         return mFingerprintManager.isHardwareDetected();
     }
 
+    @Override
     public boolean hasEnrolledFingerprints(int userId) {
         return mFingerprintManager.hasEnrolledFingerprints(userId);
     }
 
+    @Override
     public long preEnroll() {
         return mFingerprintManager.preEnroll();
     }
+
+    @Override
+    public void setActiveUser(int userId) {
+        mFingerprintManager.setActiveUser(userId);
+    }
+
+    @Override
+    public void enroll(
+            byte[] token,
+            CancellationSignal cancel,
+            int flags,
+            int userId,
+            EnrollmentCallback callback) {
+        mFingerprintManager.enroll(token, cancel, flags, userId, callback);
+    }
 }
diff --git a/src/com/android/settings/password/IFingerprintManager.java b/src/com/android/settings/password/IFingerprintManager.java
index 15a9242..9402146 100644
--- a/src/com/android/settings/password/IFingerprintManager.java
+++ b/src/com/android/settings/password/IFingerprintManager.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.password;
 
+import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
+import android.os.CancellationSignal;
+
 /**
  * This is the workaround to allow us test {@link SetNewPasswordController} which uses a new hidden
  * API {@link android.hardware.fingerprint.FingerprintManager#hasEnrolledFingerprints(int)} that
@@ -28,4 +31,9 @@
     boolean hasEnrolledFingerprints(int userId);
 
     long preEnroll();
+
+    void setActiveUser(int userId);
+
+    void enroll(byte [] token, CancellationSignal cancel, int flags,
+            int userId, EnrollmentCallback callback);
 }
diff --git a/src/com/android/settings/ManagedLockPasswordProvider.java b/src/com/android/settings/password/ManagedLockPasswordProvider.java
similarity index 90%
rename from src/com/android/settings/ManagedLockPasswordProvider.java
rename to src/com/android/settings/password/ManagedLockPasswordProvider.java
index b9725d7..09fe104 100644
--- a/src/com/android/settings/ManagedLockPasswordProvider.java
+++ b/src/com/android/settings/password/ManagedLockPasswordProvider.java
@@ -14,11 +14,13 @@
  * limitations under the License
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.content.Context;
 import android.content.Intent;
 
+import com.android.settings.R;
+
 /**
  * Helper for handling managed passwords in security settings UI.
  * It provides resources that should be shown in settings UI when lock password quality is set to
@@ -28,7 +30,7 @@
  */
 public class ManagedLockPasswordProvider {
     /** Factory method to make it easier to inject extended ManagedLockPasswordProviders. */
-    static ManagedLockPasswordProvider get(Context context, int userId) {
+    public static ManagedLockPasswordProvider get(Context context, int userId) {
         return new ManagedLockPasswordProvider();
     }
 
@@ -50,7 +52,7 @@
      * Should be overridden if {@link #isManagedPasswordSupported()} returns true.
      * @param forFingerprint Whether fingerprint unlock is enabled.
      */
-    String getPickerOptionTitle(boolean forFingerprint) { return ""; }
+    CharSequence getPickerOptionTitle(boolean forFingerprint) { return ""; }
 
     /**
      * Gets resource id of the lock screen preference that should be displayed in security settings
@@ -58,7 +60,7 @@
      * {@link android.app.admin.DevicePolicyManager#PASSWORD_QUALITY_MANAGED}.
      * @param forProfile Whether the settings are shown for a user profile rather than a user.
      */
-    int getResIdForLockUnlockScreen(boolean forProfile) {
+    public int getResIdForLockUnlockScreen(boolean forProfile) {
         return forProfile ? R.xml.security_settings_password_profile
                 : R.xml.security_settings_password;
     }
@@ -68,7 +70,7 @@
      * screen preference in security settings if the current password quality is set to
      * {@link android.app.admin.DevicePolicyManager#PASSWORD_QUALITY_MANAGED}.
      */
-    int getResIdForLockUnlockSubScreen() {
+    public int getResIdForLockUnlockSubScreen() {
         return R.xml.security_settings_password_sub;
     }
 
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index b05d8b8..5fcd8a9 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -23,12 +23,10 @@
 import android.widget.TextView;
 
 import com.android.settings.R;
-
-import static com.android.settings.password.PasswordRequirementAdapter
-        .PasswordRequirementViewHolder;
+import com.android.settings.password.PasswordRequirementAdapter.PasswordRequirementViewHolder;
 
 /**
- * Used in {@link com.android.settings.ChooseLockPassword} to show password requirements.
+ * Used in {@link ChooseLockPassword} to show password requirements.
  */
 public class PasswordRequirementAdapter extends
         RecyclerView.Adapter<PasswordRequirementViewHolder> {
diff --git a/src/com/android/settings/SaveChosenLockWorkerBase.java b/src/com/android/settings/password/SaveChosenLockWorkerBase.java
similarity index 98%
rename from src/com/android/settings/SaveChosenLockWorkerBase.java
rename to src/com/android/settings/password/SaveChosenLockWorkerBase.java
index 7ce7a90..95980e9 100644
--- a/src/com/android/settings/SaveChosenLockWorkerBase.java
+++ b/src/com/android/settings/password/SaveChosenLockWorkerBase.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Fragment;
 import android.content.Context;
diff --git a/src/com/android/settings/password/ScreenLockType.java b/src/com/android/settings/password/ScreenLockType.java
new file mode 100644
index 0000000..608c8f6
--- /dev/null
+++ b/src/com/android/settings/password/ScreenLockType.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.password;
+
+import android.app.admin.DevicePolicyManager;
+
+/**
+ * List of screen lock type options that are available in ChooseLockGeneric. Provides the key and
+ * the associated quality, and also some helper functions to translate between them.
+ */
+public enum ScreenLockType {
+
+    NONE(
+            DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED,
+            "unlock_set_off"),
+    SWIPE(
+            DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED,
+            "unlock_set_none"),
+    PATTERN(
+            DevicePolicyManager.PASSWORD_QUALITY_SOMETHING,
+            "unlock_set_pattern"),
+    PIN(
+            DevicePolicyManager.PASSWORD_QUALITY_NUMERIC,
+            DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX,
+            "unlock_set_pin"),
+    PASSWORD(
+            DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC,
+            DevicePolicyManager.PASSWORD_QUALITY_COMPLEX,
+            "unlock_set_password"),
+    MANAGED(
+            DevicePolicyManager.PASSWORD_QUALITY_MANAGED,
+            "unlock_set_managed");
+
+    private static final ScreenLockType MIN_QUALITY = ScreenLockType.NONE;
+    private static final ScreenLockType MAX_QUALITY = ScreenLockType.MANAGED;
+
+    /**
+     * The default quality of the type of lock used. For example, in the case of PIN, the default
+     * quality if PASSWORD_QUALITY_NUMERIC, while the highest quality is
+     * PASSWORD_QUALITY_NUMERIC_COMPLEX.
+     */
+    public final int defaultQuality;
+
+    /**
+     * The highest quality for the given type of lock. For example, in the case of password, the
+     * default quality is PASSWORD_QUALITY_ALPHABETIC, but the highest possible quality is
+     * PASSWORD_QUALITY_COMPLEX.
+     */
+    public final int maxQuality;
+
+    public final String preferenceKey;
+
+    ScreenLockType(int quality, String preferenceKey) {
+        this(quality, quality, preferenceKey);
+    }
+
+    ScreenLockType(int defaultQuality, int maxQuality, String preferenceKey) {
+        this.defaultQuality = defaultQuality;
+        this.maxQuality = maxQuality;
+        this.preferenceKey = preferenceKey;
+    }
+
+    /**
+     * Gets the screen lock type for the given quality. Note that this method assumes that a screen
+     * lock is enabled, which means if the quality is
+     * {@link DevicePolicyManager#PASSWORD_QUALITY_UNSPECIFIED}, the returned type will be
+     * {@link #SWIPE} and not {@link #NONE}.
+     */
+    public static ScreenLockType fromQuality(int quality) {
+        switch (quality) {
+            case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
+                return ScreenLockType.PATTERN;
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
+                return ScreenLockType.PIN;
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
+            case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
+                return ScreenLockType.PASSWORD;
+            case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
+                return ScreenLockType.MANAGED;
+            case DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED:
+                return ScreenLockType.SWIPE;
+        }
+        return null;
+    }
+
+    public static ScreenLockType fromKey(String key) {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            if (lock.preferenceKey.equals(key)) {
+                return lock;
+            }
+        }
+        return null;
+    }
+}
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 4692609..99f67cb 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -25,8 +25,6 @@
 import android.os.Bundle;
 import android.util.Log;
 
-import com.android.settings.ChooseLockGeneric;
-import com.android.settings.SetupChooseLockGeneric;
 import com.android.settings.Utils;
 
 /**
diff --git a/src/com/android/settings/password/SetNewPasswordController.java b/src/com/android/settings/password/SetNewPasswordController.java
index 9443541..57aa8c1 100644
--- a/src/com/android/settings/password/SetNewPasswordController.java
+++ b/src/com/android/settings/password/SetNewPasswordController.java
@@ -19,6 +19,7 @@
 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;
@@ -34,8 +35,6 @@
 
 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;
 
 /**
diff --git a/src/com/android/settings/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
similarity index 69%
rename from src/com/android/settings/SetupChooseLockGeneric.java
rename to src/com/android/settings/password/SetupChooseLockGeneric.java
index 2c8195d..4e73b87 100644
--- a/src/com/android/settings/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.admin.DevicePolicyManager;
 import android.content.Context;
@@ -31,6 +31,9 @@
 import android.widget.LinearLayout;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.R;
+import com.android.settings.SetupEncryptionInterstitial;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.fingerprint.SetupFingerprintEnrollFindSensor;
 import com.android.settings.fingerprint.SetupSkipDialog;
 import com.android.settings.utils.SettingsDividerItemDecoration;
@@ -108,20 +111,16 @@
 
         @Override
         public void onActivityResult(int requestCode, int resultCode, Intent data) {
-            if (resultCode != RESULT_CANCELED) {
-                if (data == null) {
-                    data = new Intent();
-                }
-                // Add the password quality extra to the intent data that will be sent back for
-                // Setup Wizard.
-                LockPatternUtils lockPatternUtils = new LockPatternUtils(getActivity());
-                data.putExtra(EXTRA_PASSWORD_QUALITY,
-                        lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId()));
-
-                super.onActivityResult(requestCode, resultCode, data);
+            if (data == null) {
+                data = new Intent();
             }
-            // If the started activity was cancelled (e.g. the user presses back), then this
-            // activity will be resumed to foreground.
+            // Add the password quality extra to the intent data that will be sent back for
+            // Setup Wizard.
+            LockPatternUtils lockPatternUtils = new LockPatternUtils(getActivity());
+            data.putExtra(EXTRA_PASSWORD_QUALITY,
+                    lockPatternUtils.getKeyguardStoredPasswordQuality(UserHandle.myUserId()));
+
+            super.onActivityResult(requestCode, resultCode, data);
         }
 
         @Override
@@ -172,57 +171,17 @@
         }
 
         @Override
-        protected Intent getLockPasswordIntent(Context context, int quality,
-                int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, boolean confirmCredentials, int userId) {
-            final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, confirmCredentials);
+        protected Intent getLockPasswordIntent(int quality, int minLength, int maxLength) {
+            final Intent intent = SetupChooseLockPassword.modifyIntentForSetup(
+                    getContext(), super.getLockPasswordIntent(quality, minLength, maxLength));
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
             return intent;
         }
 
         @Override
-        protected Intent getLockPasswordIntent(Context context, int quality,
-                int minLength, final int maxLength,
-                boolean requirePasswordToDecrypt, long challenge, int userId) {
-            final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, challenge);
-            SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
-            return intent;
-        }
-
-        @Override
-        protected Intent getLockPasswordIntent(Context context, int quality, int minLength,
-                int maxLength, boolean requirePasswordToDecrypt, String password, int userId) {
-            final Intent intent = SetupChooseLockPassword.createIntent(context, quality, minLength,
-                    maxLength, requirePasswordToDecrypt, password);
-            SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
-            return intent;
-        }
-
-        @Override
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final boolean confirmCredentials, int userId) {
-            final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
-                    confirmCredentials);
-            SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
-            return intent;
-        }
-
-        @Override
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                long challenge, int userId) {
-            final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
-                    challenge);
-            SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
-            return intent;
-        }
-
-        @Override
-        protected Intent getLockPatternIntent(Context context, final boolean requirePassword,
-                final String pattern, int userId) {
-            final Intent intent = SetupChooseLockPattern.createIntent(context, requirePassword,
-                    pattern);
+        protected Intent getLockPatternIntent() {
+            final Intent intent = SetupChooseLockPattern.modifyIntentForSetup(
+                    getContext(), super.getLockPatternIntent());
             SetupWizardUtils.copySetupExtras(getActivity().getIntent(), intent);
             return intent;
         }
diff --git a/src/com/android/settings/password/SetupChooseLockPassword.java b/src/com/android/settings/password/SetupChooseLockPassword.java
new file mode 100644
index 0000000..0c62c7c
--- /dev/null
+++ b/src/com/android/settings/password/SetupChooseLockPassword.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright (C) 2014 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.app.Activity;
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.LinearLayout;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.R;
+import com.android.settings.SetupRedactionInterstitial;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.password.ChooseLockTypeDialogFragment.OnLockTypeSelectedListener;
+import com.android.setupwizardlib.util.WizardManagerHelper;
+
+/**
+ * Setup Wizard's version of ChooseLockPassword screen. It inherits the logic and basic structure
+ * from ChooseLockPassword class, and should remain similar to that behaviorally. This class should
+ * only overload base methods for minor theme and behavior differences specific to Setup Wizard.
+ * Other changes should be done to ChooseLockPassword class instead and let this class inherit
+ * those changes.
+ */
+public class SetupChooseLockPassword extends ChooseLockPassword {
+
+    public static Intent modifyIntentForSetup(
+            Context context,
+            Intent chooseLockPasswordIntent) {
+        chooseLockPasswordIntent.setClass(context, SetupChooseLockPassword.class);
+        chooseLockPasswordIntent.putExtra(EXTRA_PREFS_SHOW_BUTTON_BAR, false);
+        return chooseLockPasswordIntent;
+    }
+
+    @Override
+    protected boolean isValidFragment(String fragmentName) {
+        return SetupChooseLockPasswordFragment.class.getName().equals(fragmentName);
+    }
+
+    @Override
+    /* package */ Class<? extends Fragment> getFragmentClass() {
+        return SetupChooseLockPasswordFragment.class;
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstance) {
+        super.onCreate(savedInstance);
+        LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
+        layout.setFitsSystemWindows(false);
+    }
+
+    @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    public static class SetupChooseLockPasswordFragment extends ChooseLockPasswordFragment
+            implements OnLockTypeSelectedListener {
+
+        @VisibleForTesting
+        static final int REQUEST_SCREEN_LOCK_OPTIONS = 1;
+
+        @Override
+        public void onViewCreated(View view, Bundle savedInstanceState) {
+            super.onViewCreated(view, savedInstanceState);
+            boolean showOptionsButton = getActivity().getIntent().getBooleanExtra(
+                    ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
+            if (showOptionsButton) {
+                Button optionsButton = view.findViewById(R.id.screen_lock_options);
+                optionsButton.setVisibility(View.VISIBLE);
+                optionsButton.setOnClickListener(this);
+            }
+        }
+
+        @Override
+        public void onClick(View v) {
+            switch (v.getId()) {
+                case R.id.screen_lock_options:
+                    launchChooseLockGeneric();
+                    break;
+                default:
+                    super.onClick(v);
+            }
+        }
+
+        private void launchChooseLockGeneric() {
+            ScreenLockType currentLock = mIsAlphaMode
+                    ? ScreenLockType.PASSWORD : ScreenLockType.PIN;
+            ChooseLockTypeDialogFragment.newInstance(mUserId, currentLock.toString())
+                    .show(getChildFragmentManager(), null);
+        }
+
+        @Override
+        protected Intent getRedactionInterstitialIntent(Context context) {
+            // Setup wizard's redaction interstitial is deferred to optional step. Enable that
+            // optional step if the lock screen was set up.
+            SetupRedactionInterstitial.setEnabled(context, true);
+            return null;
+        }
+
+        @Override
+        public void onLockTypeSelected(ScreenLockType lock) {
+            Intent activityIntent = getActivity().getIntent();
+            Intent intent = new Intent(getContext(), SetupChooseLockGeneric.class);
+
+            // Copy the original extras into the new intent
+            if (activityIntent
+                    .hasExtra(ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS)) {
+                intent.putExtras(activityIntent.getBundleExtra(
+                        ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS));
+            }
+            intent.putExtra(LockPatternUtils.PASSWORD_TYPE_KEY, lock.defaultQuality);
+
+            // Propagate the fingerprint challenge
+            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE,
+                    activityIntent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE,
+                            false));
+            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE,
+                    activityIntent.getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0));
+
+            // The user is already given the choice of the what screen lock to set up. No need to
+            // show this button again.
+            intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, false);
+
+            WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
+
+            startActivityForResult(intent, REQUEST_SCREEN_LOCK_OPTIONS);
+        }
+
+        @Override
+        public void onActivityResult(int requestCode, int resultCode, Intent data) {
+            super.onActivityResult(requestCode, resultCode, data);
+            if (requestCode == REQUEST_SCREEN_LOCK_OPTIONS) {
+                if (resultCode != Activity.RESULT_CANCELED) {
+                    Activity activity = getActivity();
+                    activity.setResult(resultCode, data);
+                    activity.finish();
+                }
+            }
+        }
+    }
+}
diff --git a/src/com/android/settings/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
similarity index 67%
rename from src/com/android/settings/SetupChooseLockPattern.java
rename to src/com/android/settings/password/SetupChooseLockPattern.java
index 762d3b3..7cb5afb 100644
--- a/src/com/android/settings/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -14,13 +14,15 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import android.app.Fragment;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
-import android.os.UserHandle;
+
+import com.android.settings.SetupRedactionInterstitial;
+import com.android.settings.SetupWizardUtils;
 
 /**
  * Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure
@@ -31,26 +33,9 @@
  */
 public class SetupChooseLockPattern extends ChooseLockPattern {
 
-    public static Intent createIntent(Context context, boolean requirePassword,
-            boolean confirmCredentials) {
-        Intent intent = ChooseLockPattern.createIntent(context, requirePassword,
-                confirmCredentials, UserHandle.myUserId());
-        intent.setClass(context, SetupChooseLockPattern.class);
-        return intent;
-    }
-
-    public static Intent createIntent(Context context, boolean requirePassword, String pattern) {
-        Intent intent = ChooseLockPattern.createIntent(
-                context, requirePassword, pattern, UserHandle.myUserId());
-        intent.setClass(context, SetupChooseLockPattern.class);
-        return intent;
-    }
-
-    public static Intent createIntent(Context context, boolean requirePassword, long challenge) {
-        Intent intent = ChooseLockPattern.createIntent(
-                context, requirePassword, challenge, UserHandle.myUserId());
-        intent.setClass(context, SetupChooseLockPattern.class);
-        return intent;
+    public static Intent modifyIntentForSetup(Context context, Intent chooseLockPatternIntent) {
+        chooseLockPatternIntent.setClass(context, SetupChooseLockPattern.class);
+        return chooseLockPatternIntent;
     }
 
     @Override
diff --git a/src/com/android/settings/search/SearchIndexableResources.java b/src/com/android/settings/search/SearchIndexableResources.java
index 75ac350..ab1af49 100644
--- a/src/com/android/settings/search/SearchIndexableResources.java
+++ b/src/com/android/settings/search/SearchIndexableResources.java
@@ -40,6 +40,7 @@
 import com.android.settings.backup.BackupSettingsActivity;
 import com.android.settings.backup.BackupSettingsFragment;
 import com.android.settings.bluetooth.BluetoothSettings;
+import com.android.settings.bluetooth.BluetoothSettingsObsolete;
 import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.datausage.DataUsageMeteredSettings;
 import com.android.settings.datausage.DataUsageSummary;
@@ -110,6 +111,7 @@
         addIndex(SavedAccessPointsWifiSettings.class, NO_DATA_RES_ID,
                 R.drawable.ic_settings_wireless);
         addIndex(BluetoothSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_bluetooth);
+        addIndex(BluetoothSettingsObsolete.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);
@@ -133,8 +135,7 @@
                 R.xml.battery_saver_settings, R.drawable.ic_settings_battery);
         addIndex(AdvancedAppSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
         addIndex(ManageAssist.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
-        addIndex(SpecialAccessSettings.class,
-                R.xml.special_access, R.drawable.ic_settings_applications);
+        addIndex(SpecialAccessSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_applications);
         addIndex(UserSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_multiuser);
         addIndex(AssistGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
         addIndex(PickupGestureSettings.class, NO_DATA_RES_ID, R.drawable.ic_settings_gestures);
diff --git a/src/com/android/settings/search2/CursorToSearchResultConverter.java b/src/com/android/settings/search2/CursorToSearchResultConverter.java
index 706f33b..30afbd0 100644
--- a/src/com/android/settings/search2/CursorToSearchResultConverter.java
+++ b/src/com/android/settings/search2/CursorToSearchResultConverter.java
@@ -74,6 +74,7 @@
     private static final String[] whiteList = {
             "main_toggle_wifi",
             "main_toggle_bluetooth",
+            "main_toggle_bluetooth_obsolete",
             "toggle_airplane",
             "tether_settings",
             "battery_saver",
diff --git a/src/com/android/settings/search2/SearchFragment.java b/src/com/android/settings/search2/SearchFragment.java
index ca0c647..c230686 100644
--- a/src/com/android/settings/search2/SearchFragment.java
+++ b/src/com/android/settings/search2/SearchFragment.java
@@ -292,6 +292,9 @@
      */
     @Override
     public void onIndexingFinished() {
+        if (getActivity() == null) {
+            return;
+        }
         if (mShowingSavedQuery) {
             mSavedQueryController.loadSavedQueries();
         } else {
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index b781fbb..f3b18f2 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -22,10 +22,10 @@
 import com.android.settings.R;
 import com.android.settings.accounts.AddUserWhenLockedPreferenceController;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.notification.LockScreenNotificationPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/com/android/settings/security/OwnerInfoPreferenceController.java b/src/com/android/settings/security/OwnerInfoPreferenceController.java
index 259ef12..a687cb9 100644
--- a/src/com/android/settings/security/OwnerInfoPreferenceController.java
+++ b/src/com/android/settings/security/OwnerInfoPreferenceController.java
@@ -25,12 +25,12 @@
 import com.android.internal.widget.LockPatternUtils;
 import com.android.settings.OwnerInfoSettings;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
-import com.android.settings.core.lifecycle.events.OnResume;
 import com.android.settingslib.RestrictedLockUtils;
 import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.RestrictedPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 public class OwnerInfoPreferenceController extends PreferenceController
         implements LifecycleObserver, OnResume {
diff --git a/src/com/android/settings/survey/SurveyMixin.java b/src/com/android/settings/survey/SurveyMixin.java
index 4eb14bd..9b7a9df 100644
--- a/src/com/android/settings/survey/SurveyMixin.java
+++ b/src/com/android/settings/survey/SurveyMixin.java
@@ -18,11 +18,11 @@
 import android.app.Activity;
 import android.app.Fragment;
 import android.content.BroadcastReceiver;
-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.overlay.FeatureFactory;
 import com.android.settings.overlay.SurveyFeatureProvider;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * attaches extra, survey related work to the onResume method of registered observable classes
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index d4685bc..c04e374 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -23,11 +23,11 @@
 import com.android.settings.R;
 import com.android.settings.applications.ResetAppPrefPreferenceController;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.network.NetworkResetPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/src/com/android/settings/system/SystemDashboardFragment.java b/src/com/android/settings/system/SystemDashboardFragment.java
index 4c4ed21..1a5a182 100644
--- a/src/com/android/settings/system/SystemDashboardFragment.java
+++ b/src/com/android/settings/system/SystemDashboardFragment.java
@@ -37,6 +37,8 @@
 
     private static final String TAG = "SystemDashboardFrag";
 
+    private static final String KEY_RESET = "reset_dashboard";
+
     @Override
     public int getMetricsCategory() {
         return MetricsProto.MetricsEvent.SETTINGS_SYSTEM_CATEGORY;
@@ -82,5 +84,14 @@
                 public List<PreferenceController> getPreferenceControllers(Context context) {
                     return buildPreferenceControllers(context);
                 }
+
+                @Override
+                public List<String> getNonIndexableKeys(Context context) {
+                    List<String> keys = super.getNonIndexableKeys(context);
+                    keys.add((new BackupSettingsActivityPreferenceController(context)
+                            .getPreferenceKey()));
+                    keys.add(KEY_RESET);
+                    return keys;
+                }
             };
 }
diff --git a/src/com/android/settings/tts/TextToSpeechSettings.java b/src/com/android/settings/tts/TextToSpeechSettings.java
index 0dfdab6..e8823a6 100644
--- a/src/com/android/settings/tts/TextToSpeechSettings.java
+++ b/src/com/android/settings/tts/TextToSpeechSettings.java
@@ -36,7 +36,7 @@
 import com.android.settings.applications.LayoutPreference;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.SeekBarPreference;
+import com.android.settings.widget.SeekBarPreference;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 8026e27..5cb27f9 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -54,7 +54,6 @@
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.ChooseLockGeneric;
 import com.android.settings.DimmableIconPreference;
 import com.android.settings.OwnerInfoSettings;
 import com.android.settings.R;
@@ -62,11 +61,12 @@
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.password.ChooseLockGeneric;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
 import com.android.settings.search.SearchIndexableRaw;
 import com.android.settingslib.RestrictedLockUtils;
-import com.android.settingslib.RestrictedSwitchPreference;
+import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
 import com.android.settingslib.drawable.CircleFramedDrawable;
 
 import java.util.ArrayList;
@@ -74,8 +74,6 @@
 import java.util.HashMap;
 import java.util.List;
 
-import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
-
 /**
  * Screen that manages the list of users on the device.
  * Guest user is an always visible entry, even if the guest is not currently
diff --git a/src/com/android/settings/utils/NotificationChannelHelper.java b/src/com/android/settings/utils/NotificationChannelHelper.java
deleted file mode 100644
index bf008dc..0000000
--- a/src/com/android/settings/utils/NotificationChannelHelper.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.utils;
-
-import android.app.INotificationManager;
-import android.app.NotificationChannel;
-import android.os.RemoteException;
-
-/**
- * Wrappers around methods in {@link INotificationManager} and {@link NotificationChannel} to
- * facilitate unit testing.
- *
- * TODO: delete this class once robolectric supports Android O
- */
-public class NotificationChannelHelper {
-    private INotificationManager mNotificationManager;
-
-    public NotificationChannelHelper(
-            INotificationManager notificationManager) {
-        mNotificationManager = notificationManager;
-    }
-
-    /**
-     * Returns the notification channel settings for a app given its package name, user id, and
-     * channel id.
-     */
-    public NotificationChannelWrapper getNotificationChannelForPackage(String pkg, int uid,
-            String channelId, boolean includeDeleted) throws RemoteException {
-        NotificationChannel channel = mNotificationManager.getNotificationChannelForPackage(
-                pkg, uid, channelId, includeDeleted);
-        return channel == null ? null : new NotificationChannelWrapper(channel);
-    }
-
-    /**
-     * Wrapper around {@link NotificationChannel} to facilitate unit testing.
-     *
-     * TODO: delete this class once robolectric supports Android O
-     */
-    public class NotificationChannelWrapper {
-        private NotificationChannel mChannel;
-
-        public NotificationChannelWrapper(NotificationChannel channel) {
-            mChannel = channel;
-        }
-
-        public int getImportance() {
-            return mChannel.getImportance();
-        }
-    }
-}
diff --git a/src/com/android/settings/utils/ThreadUtils.java b/src/com/android/settings/utils/ThreadUtils.java
deleted file mode 100644
index f71a2a9..0000000
--- a/src/com/android/settings/utils/ThreadUtils.java
+++ /dev/null
@@ -1,42 +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.utils;
-
-import android.os.Looper;
-
-public class ThreadUtils {
-    private static volatile Thread sMainThread;
-
-    /**
-     * Returns true if the current thread is the UI thread.
-     */
-    public static boolean isMainThread() {
-        if (sMainThread == null) {
-            sMainThread = Looper.getMainLooper().getThread();
-        }
-        return Thread.currentThread() == sMainThread;
-    }
-
-    /**
-     * Checks that the current thread is the UI thread. Otherwise throws an exception.
-     */
-    public static void ensureMainThread() {
-        if (!isMainThread()) {
-            throw new RuntimeException("Must be called on the UI thread");
-        }
-    }
-
-}
diff --git a/src/com/android/settings/widget/ActionBarShadowController.java b/src/com/android/settings/widget/ActionBarShadowController.java
new file mode 100644
index 0000000..75bdf0e
--- /dev/null
+++ b/src/com/android/settings/widget/ActionBarShadowController.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+public class ActionBarShadowController implements LifecycleObserver, OnStart, OnStop {
+
+    private ScrollChangeWatcher mScrollChangeWatcher;
+    private RecyclerView mRecyclerView;
+    private boolean isScrollWatcherAttached;
+
+    public static ActionBarShadowController attachToRecyclerView(Activity activity,
+            Lifecycle lifecycle, RecyclerView recyclerView) {
+        return new ActionBarShadowController(activity, lifecycle, recyclerView);
+    }
+
+    private ActionBarShadowController(Activity activity, Lifecycle lifecycle,
+            RecyclerView recyclerView) {
+        mScrollChangeWatcher = new ScrollChangeWatcher(activity);
+        mRecyclerView = recyclerView;
+        attachScrollWatcher();
+        lifecycle.addObserver(this);
+    }
+
+    @Override
+    public void onStop() {
+        detachScrollWatcher();
+    }
+
+    private void detachScrollWatcher() {
+        mRecyclerView.removeOnScrollListener(mScrollChangeWatcher);
+        isScrollWatcherAttached = false;
+    }
+
+    @Override
+    public void onStart() {
+        attachScrollWatcher();
+    }
+
+    private void attachScrollWatcher() {
+        if (!isScrollWatcherAttached) {
+            isScrollWatcherAttached = true;
+            mRecyclerView.addOnScrollListener(mScrollChangeWatcher);
+            mScrollChangeWatcher.updateDropShadow(mRecyclerView);
+        }
+    }
+
+    /**
+     * Update the drop shadow as the scrollable entity is scrolled.
+     */
+    private final class ScrollChangeWatcher extends RecyclerView.OnScrollListener {
+
+        private Activity mActivity;
+
+        public ScrollChangeWatcher(Activity activity) {
+            mActivity = activity;
+        }
+
+        // RecyclerView scrolled.
+        @Override
+        public void onScrolled(RecyclerView view, int dx, int dy) {
+            updateDropShadow(view);
+        }
+
+        public void updateDropShadow(View view) {
+            final boolean shouldShowShadow = view.canScrollVertically(-1);
+            final ActionBar actionBar = mActivity.getActionBar();
+            if (actionBar != null) {
+                actionBar.setElevation(shouldShowShadow ? 8 : 0);
+            }
+        }
+    }
+
+}
diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java
new file mode 100644
index 0000000..70d3ce5
--- /dev/null
+++ b/src/com/android/settings/widget/EntityHeaderController.java
@@ -0,0 +1,343 @@
+/*
+ * 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.widget;
+
+import android.annotation.IdRes;
+import android.annotation.UserIdInt;
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.Fragment;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageInfo;
+import android.content.pm.ResolveInfo;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.UserHandle;
+import android.support.annotation.IntDef;
+import android.support.annotation.VisibleForTesting;
+import android.support.v7.widget.RecyclerView;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.settings.AppHeader;
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.applications.AppInfoBase;
+import com.android.settings.applications.InstalledAppDetails;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+public class EntityHeaderController {
+
+    @IntDef({ActionType.ACTION_NONE,
+            ActionType.ACTION_APP_INFO,
+            ActionType.ACTION_APP_PREFERENCE,
+            ActionType.ACTION_NOTIF_PREFERENCE})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface ActionType {
+        int ACTION_NONE = 0;
+        int ACTION_APP_INFO = 1;
+        int ACTION_APP_PREFERENCE = 2;
+        int ACTION_NOTIF_PREFERENCE = 3;
+    }
+
+    public static final String PREF_KEY_APP_HEADER = "pref_app_header";
+
+    private static final String TAG = "AppDetailFeature";
+
+    private final Context mAppContext;
+    private final Activity mActivity;
+    private final Fragment mFragment;
+    private final int mMetricsCategory;
+    private final View mHeader;
+    private Lifecycle mLifecycle;
+    private RecyclerView mRecyclerView;
+    private Drawable mIcon;
+    private CharSequence mLabel;
+    private CharSequence mSummary;
+    private String mPackageName;
+    private Intent mAppNotifPrefIntent;
+    @UserIdInt
+    private int mUid = UserHandle.USER_NULL;
+    @ActionType
+    private int mAction1;
+    @ActionType
+    private int mAction2;
+
+    private boolean mIsInstantApp;
+
+    /**
+     * Creates a new instance of the controller.
+     *
+     * @param fragment The fragment that header will be placed in.
+     * @param header   Optional: header view if it's already created.
+     */
+    public static EntityHeaderController newInstance(Activity activity, Fragment fragment,
+            View header) {
+        return new EntityHeaderController(activity, fragment, header);
+    }
+
+    private EntityHeaderController(Activity activity, Fragment fragment, View header) {
+        mActivity = activity;
+        mAppContext = activity.getApplicationContext();
+        mFragment = fragment;
+        mMetricsCategory = FeatureFactory.getFactory(mAppContext).getMetricsFeatureProvider()
+                .getMetricsCategory(fragment);
+        if (header != null) {
+            mHeader = header;
+        } else {
+            mHeader = LayoutInflater.from(fragment.getContext())
+                    .inflate(R.layout.settings_entity_header, null /* root */);
+        }
+    }
+
+    public EntityHeaderController setRecyclerView(RecyclerView recyclerView, Lifecycle lifecycle) {
+        mRecyclerView = recyclerView;
+        mLifecycle = lifecycle;
+        return this;
+    }
+
+    public EntityHeaderController setIcon(Drawable icon) {
+        if (icon != null) {
+            mIcon = icon.getConstantState().newDrawable(mAppContext.getResources());
+        }
+        return this;
+    }
+
+    public EntityHeaderController setIcon(ApplicationsState.AppEntry appEntry) {
+        if (appEntry.icon != null) {
+            mIcon = appEntry.icon.getConstantState().newDrawable(mAppContext.getResources());
+        }
+        return this;
+    }
+
+    public EntityHeaderController setLabel(CharSequence label) {
+        mLabel = label;
+        return this;
+    }
+
+    public EntityHeaderController setLabel(ApplicationsState.AppEntry appEntry) {
+        mLabel = appEntry.label;
+        return this;
+    }
+
+    public EntityHeaderController setSummary(CharSequence summary) {
+        mSummary = summary;
+        return this;
+    }
+
+    public EntityHeaderController setSummary(PackageInfo packageInfo) {
+        if (packageInfo != null) {
+            mSummary = packageInfo.versionName;
+        }
+        return this;
+    }
+
+    public EntityHeaderController setButtonActions(@ActionType int action1,
+            @ActionType int action2) {
+        mAction1 = action1;
+        mAction2 = action2;
+        return this;
+    }
+
+    public EntityHeaderController setPackageName(String packageName) {
+        mPackageName = packageName;
+        return this;
+    }
+
+    public EntityHeaderController setUid(int uid) {
+        mUid = uid;
+        return this;
+    }
+
+    public EntityHeaderController setAppNotifPrefIntent(Intent appNotifPrefIntent) {
+        mAppNotifPrefIntent = appNotifPrefIntent;
+        return this;
+    }
+
+    public EntityHeaderController setIsInstantApp(boolean isInstantApp) {
+        this.mIsInstantApp = isInstantApp;
+        return this;
+    }
+
+    /**
+     * Done mutating entity header, rebinds everything and return a new {@link LayoutPreference}.
+     */
+    public LayoutPreference done(Activity activity, Context uiContext) {
+        final LayoutPreference pref = new LayoutPreference(uiContext, done(activity));
+        // Makes sure it's the first preference onscreen.
+        pref.setOrder(-1000);
+        pref.setKey(PREF_KEY_APP_HEADER);
+        return pref;
+    }
+
+    /**
+     * Done mutating entity header, rebinds everything (optionally skip rebinding buttons).
+     */
+    public View done(Activity activity, boolean rebindActions) {
+        styleActionBar(activity);
+        ImageView iconView = mHeader.findViewById(R.id.entity_header_icon);
+        if (iconView != null) {
+            iconView.setImageDrawable(mIcon);
+        }
+        setText(R.id.entity_header_title, mLabel);
+        setText(R.id.entity_header_summary, mSummary);
+        if (mIsInstantApp) {
+            setText(R.id.install_type,
+                    mHeader.getResources().getString(R.string.install_type_instant));
+        }
+
+        if (rebindActions) {
+            bindHeaderButtons();
+        }
+
+        return mHeader;
+    }
+
+    /**
+     * Only binds entity header with button actions.
+     */
+    public EntityHeaderController bindHeaderButtons() {
+        ImageButton button1 = mHeader.findViewById(android.R.id.button1);
+        ImageButton button2 = mHeader.findViewById(android.R.id.button2);
+
+        bindButton(button1, mAction1);
+        bindButton(button2, mAction2);
+        return this;
+    }
+
+    public EntityHeaderController styleActionBar(Activity activity) {
+        if (activity == null) {
+            Log.w(TAG, "No activity, cannot style actionbar.");
+            return this;
+        }
+        final ActionBar actionBar = activity.getActionBar();
+        if (actionBar == null) {
+            Log.w(TAG, "No actionbar, cannot style actionbar.");
+            return this;
+        }
+        actionBar.setBackgroundDrawable(
+                new ColorDrawable(Utils.getColorAttr(activity, android.R.attr.colorSecondary)));
+        actionBar.setElevation(0);
+        if (mRecyclerView != null && mLifecycle != null) {
+            ActionBarShadowController.attachToRecyclerView(mActivity, mLifecycle, mRecyclerView);
+        }
+
+        return this;
+    }
+
+    /**
+     * Done mutating entity header, rebinds everything.
+     */
+    @VisibleForTesting
+    View done(Activity activity) {
+        return done(activity, true /* rebindActions */);
+    }
+
+    private void bindButton(ImageButton button, @ActionType int action) {
+        if (button == null) {
+            return;
+        }
+        switch (action) {
+            case ActionType.ACTION_APP_INFO: {
+                if (mPackageName == null || mPackageName.equals(Utils.OS_PKG)
+                        || mUid == UserHandle.USER_NULL
+                        || !AppHeader.includeAppInfo(mFragment)) {
+                    button.setVisibility(View.GONE);
+                } else {
+                    button.setContentDescription(
+                            mAppContext.getString(R.string.application_info_label));
+                    button.setImageResource(com.android.settings.R.drawable.ic_info);
+                    button.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            AppInfoBase.startAppInfoFragment(
+                                    InstalledAppDetails.class, R.string.application_info_label,
+                                    mPackageName, mUid, mFragment, 0 /* request */,
+                                    mMetricsCategory);
+
+                        }
+                    });
+                    button.setVisibility(View.VISIBLE);
+                }
+                return;
+            }
+            case ActionType.ACTION_NOTIF_PREFERENCE: {
+                if (mAppNotifPrefIntent == null) {
+                    button.setVisibility(View.GONE);
+                } else {
+                    button.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            mFragment.startActivity(mAppNotifPrefIntent);
+                        }
+                    });
+                    button.setVisibility(View.VISIBLE);
+                }
+                return;
+            }
+            case ActionType.ACTION_APP_PREFERENCE: {
+                final Intent intent = resolveIntent(
+                        new Intent(Intent.ACTION_APPLICATION_PREFERENCES).setPackage(mPackageName));
+                if (intent == null) {
+                    button.setVisibility(View.GONE);
+                    return;
+                }
+                button.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        mFragment.startActivity(intent);
+                    }
+                });
+                button.setVisibility(View.VISIBLE);
+                return;
+            }
+            case ActionType.ACTION_NONE: {
+                button.setVisibility(View.GONE);
+                return;
+            }
+        }
+    }
+
+    private Intent resolveIntent(Intent i) {
+        ResolveInfo result = mAppContext.getPackageManager().resolveActivity(i, 0);
+        if (result != null) {
+            return new Intent(i.getAction())
+                    .setClassName(result.activityInfo.packageName, result.activityInfo.name);
+        }
+        return null;
+    }
+
+    private void setText(@IdRes int id, CharSequence text) {
+        TextView textView = mHeader.findViewById(id);
+        if (textView != null) {
+            textView.setText(text);
+            textView.setVisibility(TextUtils.isEmpty(text) ? View.GONE : View.VISIBLE);
+        }
+    }
+}
diff --git a/src/com/android/settings/widget/FooterPreference.java b/src/com/android/settings/widget/FooterPreference.java
deleted file mode 100644
index 9cb9e11..0000000
--- a/src/com/android/settings/widget/FooterPreference.java
+++ /dev/null
@@ -1,60 +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.widget;
-
-import android.content.Context;
-import android.support.v4.content.res.TypedArrayUtils;
-import android.support.v7.preference.Preference;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.text.method.LinkMovementMethod;
-import android.util.AttributeSet;
-import android.widget.TextView;
-
-import com.android.settings.R;
-
-/**
- * A custom preference acting as "footer" of a page. It has a field for icon and text. It is added
- * to screen as the last preference.
- */
-public class FooterPreference extends Preference {
-
-    static final int ORDER_FOOTER = Integer.MAX_VALUE - 1;
-    static final String KEY_FOOTER = "footer_preference";
-
-    public FooterPreference(Context context, AttributeSet attrs) {
-        super(context, attrs, TypedArrayUtils.getAttr(
-                context, R.attr.footerPreferenceStyle, android.R.attr.preferenceStyle));
-        init();
-    }
-
-    public FooterPreference(Context context) {
-        this(context, null);
-    }
-
-    @Override
-    public void onBindViewHolder(PreferenceViewHolder holder) {
-        super.onBindViewHolder(holder);
-        TextView title = holder.itemView.findViewById(android.R.id.title);
-        title.setMovementMethod(new LinkMovementMethod());
-    }
-
-    private void init() {
-        setIcon(R.drawable.ic_info_outline_24dp);
-        setKey(KEY_FOOTER);
-        setOrder(ORDER_FOOTER);
-    }
-}
diff --git a/src/com/android/settings/widget/FooterPreferenceMixin.java b/src/com/android/settings/widget/FooterPreferenceMixin.java
deleted file mode 100644
index 53e3d75..0000000
--- a/src/com/android/settings/widget/FooterPreferenceMixin.java
+++ /dev/null
@@ -1,71 +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.widget;
-
-import android.content.Context;
-import android.support.v14.preference.PreferenceFragment;
-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.SetPreferenceScreen;
-
-public class FooterPreferenceMixin implements LifecycleObserver, SetPreferenceScreen {
-
-    private final PreferenceFragment mFragment;
-    private FooterPreference mFooterPreference;
-
-    public FooterPreferenceMixin(PreferenceFragment fragment, Lifecycle lifecycle) {
-        mFragment = fragment;
-        lifecycle.addObserver(this);
-    }
-
-    @Override
-    public void setPreferenceScreen(PreferenceScreen preferenceScreen) {
-        if (mFooterPreference != null) {
-            preferenceScreen.addPreference(mFooterPreference);
-        }
-    }
-
-    /**
-     * Creates a new {@link FooterPreference}.
-     */
-    public FooterPreference createFooterPreference() {
-        final PreferenceScreen screen = mFragment.getPreferenceScreen();
-        if (mFooterPreference != null && screen != null) {
-            screen.removePreference(mFooterPreference);
-        }
-        mFooterPreference = new FooterPreference(getPrefContext());
-
-        if (screen != null) {
-            screen.addPreference(mFooterPreference);
-        }
-        return mFooterPreference;
-    }
-
-    /**
-     * Returns an UI context with theme properly set for new Preference objects.
-     */
-    private Context getPrefContext() {
-        return mFragment.getPreferenceManager().getContext();
-    }
-
-    public boolean hasFooter() {
-        return mFooterPreference != null;
-    }
-}
-
diff --git a/src/com/android/settings/widget/ScrollToParentEditText.java b/src/com/android/settings/widget/ScrollToParentEditText.java
new file mode 100644
index 0000000..97602af
--- /dev/null
+++ b/src/com/android/settings/widget/ScrollToParentEditText.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import android.content.Context;
+import android.graphics.Rect;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.ViewParent;
+import android.widget.EditText;
+
+/**
+ * An EditText that, instead of scrolling to itself when focused, will request scrolling to its
+ * parent. This is used in ChooseLockPassword to do make a best effort for not hiding the error
+ * messages for why the password is invalid under the keyboard.
+ */
+public class ScrollToParentEditText extends EditText {
+
+    private Rect mRect = new Rect();
+
+    public ScrollToParentEditText(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public boolean requestRectangleOnScreen(Rect rectangle, boolean immediate) {
+        ViewParent parent = getParent();
+        if (parent instanceof View) {
+            // Request the entire parent view to be shown, which in ChooseLockPassword's case,
+            // will include messages for why the password is invalid (if any).
+            ((View) parent).getDrawingRect(mRect);
+            return ((View) parent).requestRectangleOnScreen(mRect, immediate);
+        } else {
+            return super.requestRectangleOnScreen(rectangle, immediate);
+        }
+    }
+}
diff --git a/src/com/android/settings/SeekBarPreference.java b/src/com/android/settings/widget/SeekBarPreference.java
similarity index 97%
rename from src/com/android/settings/SeekBarPreference.java
rename to src/com/android/settings/widget/SeekBarPreference.java
index a8d5fbf..4ab1af2 100644
--- a/src/com/android/settings/SeekBarPreference.java
+++ b/src/com/android/settings/widget/SeekBarPreference.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.widget;
 
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -22,6 +22,7 @@
 import android.os.Parcelable;
 import android.support.v4.content.res.TypedArrayUtils;
 import android.support.v7.preference.PreferenceViewHolder;
+import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.view.KeyEvent;
 import android.view.View;
@@ -89,6 +90,10 @@
         mSeekBar.setMax(mMax);
         mSeekBar.setProgress(mProgress);
         mSeekBar.setEnabled(isEnabled());
+        final CharSequence title = getTitle();
+        if (!TextUtils.isEmpty(title)) {
+            mSeekBar.setContentDescription(title);
+        }
         if (mSeekBar instanceof DefaultIndicatorSeekBar) {
             ((DefaultIndicatorSeekBar) mSeekBar).setDefaultProgress(mDefaultProgress);
         }
diff --git a/src/com/android/settings/wifi/ConfigureWifiSettings.java b/src/com/android/settings/wifi/ConfigureWifiSettings.java
index 24d62ad..84c299e 100644
--- a/src/com/android/settings/wifi/ConfigureWifiSettings.java
+++ b/src/com/android/settings/wifi/ConfigureWifiSettings.java
@@ -15,13 +15,15 @@
  */
 package com.android.settings.wifi;
 
-import android.app.INotificationManager;
+import static android.content.Context.NETWORK_SCORE_SERVICE;
+import static android.content.Context.WIFI_SERVICE;
+
 import android.content.Context;
 import android.content.Intent;
 import android.net.NetworkScoreManager;
 import android.net.wifi.WifiManager;
-import android.os.ServiceManager;
 import android.provider.SearchIndexableResource;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -32,7 +34,6 @@
 import com.android.settings.network.WifiCallingPreferenceController;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.search.Indexable;
-import com.android.settings.utils.NotificationChannelHelper;
 import com.android.settings.wifi.p2p.WifiP2pPreferenceController;
 
 import java.util.ArrayList;
@@ -72,20 +73,15 @@
     protected List<PreferenceController> getPreferenceControllers(Context context) {
         final NetworkScoreManagerWrapper networkScoreManagerWrapper =
                 new NetworkScoreManagerWrapper(context.getSystemService(NetworkScoreManager.class));
-        final NotificationChannelHelper notificationChannelHelper =
-                new NotificationChannelHelper(INotificationManager.Stub.asInterface(
-                        ServiceManager.getService(Context.NOTIFICATION_SERVICE)));
-        final WifiManager wifiManager = context.getSystemService(WifiManager.class);
         mUseOpenWifiPreferenceController = new UseOpenWifiPreferenceController(context, this,
                 networkScoreManagerWrapper, getLifecycle());
+        final WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new WifiWakeupPreferenceController(context, getLifecycle()));
         controllers.add(new NetworkScorerPickerPreferenceController(context,
                 networkScoreManagerWrapper));
-        controllers.add(new NotifyOpenNetworksPreferenceController(context,
-                networkScoreManagerWrapper, notificationChannelHelper, getPackageManager()));
+        controllers.add(new NotifyOpenNetworksPreferenceController(context, getLifecycle()));
         controllers.add(mUseOpenWifiPreferenceController);
-        controllers.add(new WifiSleepPolicyPreferenceController(context));
         controllers.add(new WifiInfoPreferenceController(context, getLifecycle(), wifiManager));
         controllers.add(new CellularFallbackPreferenceController(context));
         controllers.add(new WifiP2pPreferenceController(context, getLifecycle(), wifiManager));
diff --git a/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java b/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java
index a85a266..7cf19f2 100644
--- a/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java
+++ b/src/com/android/settings/wifi/NotifyOpenNetworksPreferenceController.java
@@ -16,46 +16,75 @@
 
 package com.android.settings.wifi;
 
-import android.app.NotificationChannel;
-import android.app.NotificationManager;
+import android.content.ContentResolver;
 import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.net.NetworkScorerAppData;
-import android.os.RemoteException;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
 import android.provider.Settings;
-import android.support.annotation.Nullable;
+import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
 import android.text.TextUtils;
-import android.util.Log;
-import com.android.settings.R;
+
 import com.android.settings.core.PreferenceController;
-import com.android.settings.network.NetworkScoreManagerWrapper;
-import com.android.settings.utils.NotificationChannelHelper;
-import com.android.settings.utils.NotificationChannelHelper.NotificationChannelWrapper;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
- * {@link PreferenceController} that shows whether we should notify user when open network is
- * available. The preference links to {@link NotificationChannel} settings.
+ * {@link PreferenceController} that controls whether we should notify user when open network is
+ * available.
  */
-public class NotifyOpenNetworksPreferenceController extends PreferenceController {
+public class NotifyOpenNetworksPreferenceController extends PreferenceController implements
+        LifecycleObserver, OnResume, OnPause {
 
-    private static final String TAG = "OpenNetworks";
     private static final String KEY_NOTIFY_OPEN_NETWORKS = "notify_open_networks";
+    private SettingObserver mSettingObserver;
 
-    private NetworkScoreManagerWrapper mNetworkScoreManager;
-    private NotificationChannelHelper mNotificationChannelHelper;
-    private PackageManager mPackageManager;
-
-    public NotifyOpenNetworksPreferenceController(
-            Context context,
-            NetworkScoreManagerWrapper networkScoreManager,
-            NotificationChannelHelper notificationChannelHelper,
-            PackageManager packageManager) {
+    public NotifyOpenNetworksPreferenceController(Context context, Lifecycle lifecycle) {
         super(context);
-        mNetworkScoreManager = networkScoreManager;
-        mNotificationChannelHelper = notificationChannelHelper;
-        mPackageManager = packageManager;
+        lifecycle.addObserver(this);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mSettingObserver = new SettingObserver(screen.findPreference(KEY_NOTIFY_OPEN_NETWORKS));
+    }
+
+    @Override
+    public void onResume() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(mContext.getContentResolver(), true /* register */);
+        }
+    }
+
+    @Override
+    public void onPause() {
+        if (mSettingObserver != null) {
+            mSettingObserver.register(mContext.getContentResolver(), false /* register */);
+        }
+    }
+
+    @Override
+    public boolean isAvailable() {
+        return true;
+    }
+
+    @Override
+    public boolean handlePreferenceTreeClick(Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), KEY_NOTIFY_OPEN_NETWORKS)) {
+            return false;
+        }
+        if (!(preference instanceof SwitchPreference)) {
+            return false;
+        }
+        Settings.Global.putInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON,
+                ((SwitchPreference) preference).isChecked() ? 1 : 0);
+        return true;
     }
 
     @Override
@@ -64,59 +93,40 @@
     }
 
     @Override
-    public boolean isAvailable() {
-        return getNotificationChannel() != null;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        if (!TextUtils.equals(preference.getKey(), KEY_NOTIFY_OPEN_NETWORKS)) {
-            return false;
-        }
-        NetworkScorerAppData scorer = mNetworkScoreManager.getActiveScorer();
-        if (scorer == null) {
-            return false;
-        }
-
-        Intent intent = new Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS);
-        intent.putExtra(Settings.EXTRA_CHANNEL_ID,
-                scorer.getNetworkAvailableNotificationChannelId());
-        intent.putExtra(Settings.EXTRA_APP_PACKAGE, scorer.getRecommendationServicePackageName());
-        mContext.startActivity(intent);
-        return true;
-    }
-
-    @Override
     public void updateState(Preference preference) {
-        NotificationChannelWrapper channel = getNotificationChannel();
-        if (channel == null) {
-            preference.setSummary(null);
-        } else {
-            preference.setSummary(channel.getImportance() != NotificationManager.IMPORTANCE_NONE ?
-                    R.string.notification_toggle_on : R.string.notification_toggle_off);
+        if (!(preference instanceof SwitchPreference)) {
+            return;
         }
+        final SwitchPreference notifyOpenNetworks = (SwitchPreference) preference;
+        notifyOpenNetworks.setChecked(Settings.Global.getInt(mContext.getContentResolver(),
+                Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0) == 1);
     }
 
-    @Nullable
-    private NotificationChannelWrapper getNotificationChannel() {
-        NetworkScorerAppData scorer = mNetworkScoreManager.getActiveScorer();
-        if (scorer == null) {
-            return null;
+    class SettingObserver extends ContentObserver {
+        private final Uri NETWORKS_AVAILABLE_URI = Settings.Global.getUriFor(
+                Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON);
+
+        private final Preference mPreference;
+
+        public SettingObserver(Preference preference) {
+            super(new Handler());
+            mPreference = preference;
         }
-        String packageName = scorer.getRecommendationServicePackageName();
-        String channelId = scorer.getNetworkAvailableNotificationChannelId();
-        if (packageName == null || channelId == null) {
-            return null;
+
+        public void register(ContentResolver cr, boolean register) {
+            if (register) {
+                cr.registerContentObserver(NETWORKS_AVAILABLE_URI, false, this);
+            } else {
+                cr.unregisterContentObserver(this);
+            }
         }
-        try {
-            return mNotificationChannelHelper.getNotificationChannelForPackage(
-                    packageName,
-                    mPackageManager.getPackageUid(packageName, 0 /* flags */),
-                    channelId,
-                    false /* includeDeleted */ );
-        } catch (RemoteException | PackageManager.NameNotFoundException e) {
-            Log.d(TAG, "Failed to get notification channel.", e);
-            return null;
+
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            super.onChange(selfChange, uri);
+            if (NETWORKS_AVAILABLE_URI.equals(uri)) {
+                updateState(mPreference);
+            }
         }
     }
 }
diff --git a/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java b/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java
index 09f5e92..37cd692 100644
--- a/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java
+++ b/src/com/android/settings/wifi/UseOpenWifiPreferenceController.java
@@ -22,10 +22,10 @@
 
 import com.android.settings.network.NetworkScoreManagerWrapper;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * {@link PreferenceController} that controls whether a user wants to enable the "use open networks
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 8590650..fb01f1f 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -372,7 +372,11 @@
         group.addView(row);
     }
 
-    private String getSignalString() {
+    @VisibleForTesting
+    String getSignalString() {
+        if (!mAccessPoint.isReachable()) {
+            return null;
+        }
         final int level = mAccessPoint.getLevel();
 
         return (level > -1 && level < mLevels.length) ? mLevels[level] : null;
diff --git a/src/com/android/settings/wifi/WifiInfoPreferenceController.java b/src/com/android/settings/wifi/WifiInfoPreferenceController.java
index f88e38b..238f0e1 100644
--- a/src/com/android/settings/wifi/WifiInfoPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiInfoPreferenceController.java
@@ -29,10 +29,10 @@
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * {@link PreferenceController} that updates MAC/IP address.
diff --git a/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java b/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
index 09b3331..bc61cff 100644
--- a/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
@@ -20,14 +20,14 @@
 
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-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.core.lifecycle.events.OnStart;
-import com.android.settings.core.lifecycle.events.OnStop;
 import com.android.settings.widget.SummaryUpdater;
 import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settings.widget.MasterSwitchController;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStart;
+import com.android.settingslib.core.lifecycle.events.OnStop;
 
 public class WifiMasterSwitchPreferenceController extends PreferenceController
         implements SummaryUpdater.OnSummaryChangeListener,
diff --git a/src/com/android/settings/wifi/WifiSleepPolicyPreferenceController.java b/src/com/android/settings/wifi/WifiSleepPolicyPreferenceController.java
deleted file mode 100644
index 3e7911b..0000000
--- a/src/com/android/settings/wifi/WifiSleepPolicyPreferenceController.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi;
-
-import android.content.Context;
-import android.provider.Settings;
-import android.support.v7.preference.ListPreference;
-import android.support.v7.preference.Preference;
-import android.util.Log;
-import android.widget.Toast;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settings.core.PreferenceController;
-
-import static com.android.internal.os.MemoryPowerCalculator.TAG;
-
-public class WifiSleepPolicyPreferenceController extends PreferenceController implements
-        Preference.OnPreferenceChangeListener {
-
-    private static final String KEY_SLEEP_POLICY = "sleep_policy";
-
-    public WifiSleepPolicyPreferenceController(Context context) {
-        super(context);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_SLEEP_POLICY;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        ListPreference sleepPolicyPref = (ListPreference) preference;
-        if (sleepPolicyPref != null) {
-            if (Utils.isWifiOnly(mContext)) {
-                sleepPolicyPref.setEntries(R.array.wifi_sleep_policy_entries_wifi_only);
-            }
-            int value = Settings.Global.getInt(mContext.getContentResolver(),
-                    Settings.Global.WIFI_SLEEP_POLICY,
-                    Settings.Global.WIFI_SLEEP_POLICY_NEVER);
-            String stringValue = String.valueOf(value);
-            sleepPolicyPref.setValue(stringValue);
-            updateSleepPolicySummary(sleepPolicyPref, stringValue);
-        }
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        try {
-            String stringValue = (String) newValue;
-            Settings.Global.putInt(mContext.getContentResolver(), Settings.Global.WIFI_SLEEP_POLICY,
-                    Integer.parseInt(stringValue));
-            updateSleepPolicySummary(preference, stringValue);
-        } catch (NumberFormatException e) {
-            Toast.makeText(mContext, R.string.wifi_setting_sleep_policy_error,
-                    Toast.LENGTH_SHORT).show();
-            return false;
-        }
-        return true;
-    }
-
-    private void updateSleepPolicySummary(Preference sleepPolicyPref, String value) {
-        if (value != null) {
-            String[] values = mContext.getResources().getStringArray(R.array
-                    .wifi_sleep_policy_values);
-            final int summaryArrayResId = Utils.isWifiOnly(mContext)
-                    ? R.array.wifi_sleep_policy_entries_wifi_only
-                    : R.array.wifi_sleep_policy_entries;
-            String[] summaries = mContext.getResources().getStringArray(summaryArrayResId);
-            for (int i = 0; i < values.length; i++) {
-                if (value.equals(values[i])) {
-                    if (i < summaries.length) {
-                        sleepPolicyPref.setSummary(summaries[i]);
-                        return;
-                    }
-                }
-            }
-        }
-
-        sleepPolicyPref.setSummary("");
-        Log.e(TAG, "Invalid sleep policy value: " + value);
-    }
-
-}
diff --git a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
index 9eea74a..9ec4c59 100644
--- a/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
+++ b/src/com/android/settings/wifi/WifiWakeupPreferenceController.java
@@ -29,10 +29,10 @@
 import com.android.settings.R;
 
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * {@link PreferenceController} that controls whether the Wi-Fi Wakeup feature should be enabled.
diff --git a/src/com/android/settings/wifi/WpsPreferenceController.java b/src/com/android/settings/wifi/WpsPreferenceController.java
index 736d231..7aaa7eb 100644
--- a/src/com/android/settings/wifi/WpsPreferenceController.java
+++ b/src/com/android/settings/wifi/WpsPreferenceController.java
@@ -31,10 +31,10 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * {@link PreferenceController} that shows Dialog for WPS progress. Disabled when Wi-Fi is off.
@@ -151,4 +151,4 @@
             return new WpsDialog(getActivity(), mWpsSetup);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
index dd1e4a4..39d90e1 100644
--- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
+++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java
@@ -53,12 +53,12 @@
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.core.PreferenceController;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-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.vpn2.ConnectivityManagerWrapper;
 import com.android.settings.wifi.WifiDetailPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 import com.android.settingslib.wifi.AccessPoint;
 
 import java.net.Inet4Address;
@@ -225,7 +225,7 @@
 
         mButtonsPref = (LayoutPreference) screen.findPreference(KEY_BUTTONS_PREF);
         mSignInButton = (Button) mButtonsPref.findViewById(R.id.right_button);
-        mSignInButton.setText(com.android.internal.R.string.network_available_sign_in);
+        mSignInButton.setText(R.string.support_sign_in_button_text);
         mSignInButton.setOnClickListener(
             view -> mConnectivityManagerWrapper.startCaptivePortalApp(mNetwork));
 
diff --git a/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java b/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java
index df871ab..3eb2b7b 100644
--- a/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java
+++ b/src/com/android/settings/wifi/p2p/WifiP2pPreferenceController.java
@@ -25,10 +25,10 @@
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.settings.core.PreferenceController;
-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.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 /**
  * {@link PreferenceController} to toggle Wifi Direct preference on Wi-Fi state.
diff --git a/tests/app/src/com/android/settings/ChooseLockGenericTest.java b/tests/app/src/com/android/settings/password/ChooseLockGenericTest.java
similarity index 98%
rename from tests/app/src/com/android/settings/ChooseLockGenericTest.java
rename to tests/app/src/com/android/settings/password/ChooseLockGenericTest.java
index 924e716..e2bd6ee 100644
--- a/tests/app/src/com/android/settings/ChooseLockGenericTest.java
+++ b/tests/app/src/com/android/settings/password/ChooseLockGenericTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import static android.support.test.InstrumentationRegistry.getInstrumentation;
 import static android.support.test.InstrumentationRegistry.getTargetContext;
@@ -56,7 +56,7 @@
  * m SettingsTests &&
  * adb install \
  * -r -g  ${ANDROID_PRODUCT_OUT}/data/app/SettingsTests/SettingsTests.apk &&
- * adb shell am instrument -e class com.android.settings.ChooseLockGenericTest \
+ * adb shell am instrument -e class com.android.settings.password.ChooseLockGenericTest \
  * -w com.android.settings.tests/android.support.test.runner.AndroidJUnitRunner
  */
 @RunWith(AndroidJUnit4.class)
diff --git a/tests/app/src/com/android/settings/ConfirmLockPasswordTest.java b/tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java
similarity index 97%
rename from tests/app/src/com/android/settings/ConfirmLockPasswordTest.java
rename to tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java
index 05464ad..25e7da0 100644
--- a/tests/app/src/com/android/settings/ConfirmLockPasswordTest.java
+++ b/tests/app/src/com/android/settings/password/ConfirmLockPasswordTest.java
@@ -14,7 +14,7 @@
  * limitations under the License
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
 import static android.support.test.espresso.Espresso.onView;
 import static android.support.test.espresso.action.ViewActions.pressKey;
@@ -30,6 +30,8 @@
 import android.support.test.runner.AndroidJUnit4;
 import android.view.KeyEvent;
 
+import com.android.settings.R;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tests/robotests/assets/grandfather_not_implementing_index_provider b/tests/robotests/assets/grandfather_not_implementing_index_provider
index 2421cbb..c668779 100644
--- a/tests/robotests/assets/grandfather_not_implementing_index_provider
+++ b/tests/robotests/assets/grandfather_not_implementing_index_provider
@@ -1,9 +1,8 @@
 com.android.settings.bluetooth.DevicePickerFragment
-com.android.settings.language.LanguageAndRegionSettings
+com.android.settings.bluetooth.BluetoothPairingDetail
 com.android.settings.notification.ZenModePrioritySettings
 com.android.settings.accounts.AccountDetailDashboardFragment
 com.android.settings.fuelgauge.PowerUsageAnomalyDetails
-com.android.settings.fuelgauge.PowerUsageDetail
 com.android.settings.fuelgauge.AdvancedPowerUsageDetail
 com.android.settings.deviceinfo.StorageProfileFragment
 com.android.settings.wifi.details.WifiNetworkDetailsFragment
diff --git a/tests/robotests/assets/grandfather_not_implementing_indexable b/tests/robotests/assets/grandfather_not_implementing_indexable
index ca6d764..47711b0 100644
--- a/tests/robotests/assets/grandfather_not_implementing_indexable
+++ b/tests/robotests/assets/grandfather_not_implementing_indexable
@@ -18,16 +18,12 @@
 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
@@ -35,36 +31,28 @@
 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.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard
 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.assistant.ManageAssist
 com.android.settings.applications.ConfirmConvertToFbe
 com.android.settings.deviceinfo.PublicVolumeSettings
 com.android.settings.applications.InstalledAppDetails
@@ -78,15 +66,12 @@
 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.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
 com.android.settings.qstile.DevelopmentTileConfigActivity$DevelopmentTileConfigFragment
 com.android.settings.applications.ExternalSourcesDetails
@@ -96,10 +81,10 @@
 com.android.settings.SecuritySettings$SecuritySubSettings
 com.android.settings.PrivacySettings
 com.android.settings.WifiCallingSettings
-com.android.settings.SetupChooseLockGeneric$SetupChooseLockGenericFragment
+com.android.settings.password.SetupChooseLockGeneric$SetupChooseLockGenericFragment
 com.android.settings.SetupRedactionInterstitial$SetupRedactionInterstitialFragment
 com.android.settings.TrustAgentSettings
-com.android.settings.ChooseLockGeneric$ChooseLockGenericFragment
+com.android.settings.password.ChooseLockGeneric$ChooseLockGenericFragment
 com.android.settings.IccLockSettings
 com.android.settings.TetherSettings
 com.android.settings.ApplicationSettings
diff --git a/tests/robotests/assets/grandfather_not_implementing_instrumentable b/tests/robotests/assets/grandfather_not_implementing_instrumentable
index 649f617..992f25a 100644
--- a/tests/robotests/assets/grandfather_not_implementing_instrumentable
+++ b/tests/robotests/assets/grandfather_not_implementing_instrumentable
@@ -1,13 +1,11 @@
 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
 com.android.settings.CustomEditTextPreference$CustomPreferenceDialogFragment
 com.android.settings.CustomListPreference$CustomListPreferenceDialogFragment
-com.android.settings.ChooseLockPassword$SaveAndFinishWorker
-com.android.settings.ChooseLockPattern$SaveAndFinishWorker
+com.android.settings.password.ChooseLockPassword$SaveAndFinishWorker
+com.android.settings.password.ChooseLockPattern$SaveAndFinishWorker
 com.android.settings.RestrictedListPreference$RestrictedListPreferenceDialogFragment
 com.android.settings.CustomDialogPreference$CustomPreferenceDialogFragment
-com.android.settings.ConfirmDeviceCredentialBaseFragment$LastTryDialog
-com.android.settings.CredentialCheckResultTracker
+com.android.settings.password.ConfirmDeviceCredentialBaseFragment$LastTryDialog
+com.android.settings.password.CredentialCheckResultTracker
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
index a95fc0b..948b14a 100644
--- a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
+++ b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
@@ -1,2 +1 @@
 com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
-com.android.settings.print.PrintServiceSettingsFragment
diff --git a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider b/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
index 8184d2c..1712f19 100644
--- a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
+++ b/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
@@ -1,5 +1,2 @@
-com.android.settings.language.LanguageAndInputSettings
-com.android.settings.enterprise.EnterprisePrivacySettings
 com.android.settings.applications.AdvancedAppSettings
 com.android.settings.fuelgauge.PowerUsageSummary
-com.android.settings.inputmethod.InputMethodAndLanguageSettings
diff --git a/tests/robotests/assets/whitelist_duplicate_index_key b/tests/robotests/assets/whitelist_duplicate_index_key
index 4446403..0b8d675 100644
--- a/tests/robotests/assets/whitelist_duplicate_index_key
+++ b/tests/robotests/assets/whitelist_duplicate_index_key
@@ -1,12 +1,6 @@
-dashboard_tile_placeholder
-gesture_pick_up
 add_users_when_locked
 additional_system_update_settings
-gesture_assist
 screen_zoom
-gesture_swipe_down_fingerprint
-gesture_double_twist
+dashboard_tile_placeholder
 lock_screen_notifications
-gesture_double_tap_power
-gesture_double_tap_screen
 usage_access
\ No newline at end of file
diff --git a/tests/robotests/src/android/app/admin/PasswordMetrics.java b/tests/robotests/src/android/app/admin/PasswordMetrics.java
new file mode 100644
index 0000000..a461306
--- /dev/null
+++ b/tests/robotests/src/android/app/admin/PasswordMetrics.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.admin;
+
+import android.annotation.NonNull;
+
+/**
+ * Stub implementation of framework's PasswordMetrics for Robolectric tests. Otherwise Robolectric
+ * is throwing ClassNotFoundError.
+ *
+ * TODO: Remove this class when Robolectric supports O
+ */
+public class PasswordMetrics {
+
+    // Maximum allowed number of repeated or ordered characters in a sequence before we'll
+    // consider it a complex PIN/password.
+    public static final int MAX_ALLOWED_SEQUENCE = 3;
+
+    public int length = 0;
+    public int letters = 0;
+    public int upperCase = 0;
+    public int lowerCase = 0;
+    public int numeric = 0;
+    public int symbols = 0;
+    public int nonLetter = 0;
+
+    public static int maxLengthSequence(@NonNull String string) {
+        // Stub implementation
+        return 1;
+    }
+
+    public static PasswordMetrics computeForPassword(@NonNull String password) {
+        return new PasswordMetrics();
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/core/lifecycle/events/OnOptionsItemSelected.java b/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
similarity index 77%
rename from src/com/android/settings/core/lifecycle/events/OnOptionsItemSelected.java
rename to tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
index b34b407..40b76df 100644
--- a/src/com/android/settings/core/lifecycle/events/OnOptionsItemSelected.java
+++ b/tests/robotests/src/android/bluetooth/BluetoothCodecConfig.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package com.android.settings.core.lifecycle.events;
+package android.bluetooth;
 
-import android.view.MenuItem;
-
-public interface OnOptionsItemSelected {
-    boolean onOptionsItemSelected(MenuItem menuItem);
+/**
+ * A placeholder class to prevent ClassNotFound exceptions caused by lack of visibility.
+ */
+public class BluetoothCodecConfig {
 }
diff --git a/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java b/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java
index ffa6d96..9ac077d 100644
--- a/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java
+++ b/tests/robotests/src/com/android/internal/hardware/AmbientDisplayConfiguration.java
@@ -16,7 +16,6 @@
 
 package com.android.internal.hardware;
 
-import android.provider.Settings;
 import android.content.Context;
 
 /**
@@ -42,4 +41,20 @@
     public boolean pulseOnDoubleTapEnabled(int user) {
         return true;
     }
+
+    public boolean pulseOnNotificationEnabled(int user) {
+        return true;
+    }
+
+    public boolean pulseOnNotificationAvailable() {
+        return true;
+    }
+
+    public boolean alwaysOnEnabled(int user) {
+        return true;
+    }
+
+    public boolean alwaysOnAvailable() {
+        return true;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
index c43ad3c..c64e582 100644
--- a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java
@@ -28,6 +28,8 @@
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowUtils;
 import com.android.settingslib.DeviceInfoUtils;
 
 import org.junit.Before;
@@ -36,8 +38,11 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.util.List;
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class DeviceInfoSettingsTest {
@@ -75,4 +80,17 @@
 
         verify(mSummaryLoader).setSummary(mProvider, Build.MODEL + DeviceInfoUtils.getMsvSuffix());
     }
+
+    @Test
+    @Config(shadows = ShadowUtils.class)
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = RuntimeEnvironment.application;
+        final List<String> niks = DeviceInfoSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new DeviceInfoSettings()).getPreferenceScreenResId();
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+        assertThat(keys).containsAllIn(niks);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/DisplaySettingsTest.java b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
new file mode 100644
index 0000000..716eacf
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/DisplaySettingsTest.java
@@ -0,0 +1,44 @@
+package com.android.settings;
+
+import android.content.Context;
+import android.os.PowerManager;
+import com.android.settings.core.PreferenceController;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DisplaySettingsTest {
+
+    @Test
+    @Config(shadows = ShadowPowerManagerWrapper.class)
+    public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+        final Context context = RuntimeEnvironment.application;
+//        PowerManager wrapper = mock(PowerManager.class);
+//        doReturn(wrapper).when(context).getSystemService(Context.POWER_SERVICE);
+        final DisplaySettings fragment = new DisplaySettings();
+        final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+                fragment.getPreferenceScreenResId());
+        final List<String> preferenceKeys = new ArrayList<>();
+
+        for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+            preferenceKeys.add(controller.getPreferenceKey());
+        }
+        // Nightmode is currently hidden
+        preferenceKeys.remove("night_mode");
+
+        assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/LegalSettingsTest.java b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
new file mode 100644
index 0000000..6cfe211
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/LegalSettingsTest.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings;
+
+import android.content.Context;
+
+import com.android.settings.testutils.XmlTestUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.spy;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class LegalSettingsTest {
+
+    @Test
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = RuntimeEnvironment.application;
+        final List<String> niks = LegalSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context,
+                R.xml.about_legal);
+
+        assertThat(keys).containsAllIn(niks);
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java
index 4b78ee7..5238a39 100644
--- a/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java
+++ b/tests/robotests/src/com/android/settings/SetupChooseLockPatternTest.java
@@ -25,7 +25,9 @@
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
 
-import com.android.settings.ChooseLockPattern.ChooseLockPatternFragment;
+import com.android.settings.password.ChooseLockPattern.ChooseLockPatternFragment;
+import com.android.settings.password.ChooseLockPattern.IntentBuilder;
+import com.android.settings.password.SetupChooseLockPattern;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
 import com.android.settings.testutils.shadow.ShadowEventLogWriter;
@@ -63,11 +65,11 @@
 
         mActivity =  Robolectric.buildActivity(
                 SetupChooseLockPattern.class,
-                SetupChooseLockPattern.createIntent(
+                SetupChooseLockPattern.modifyIntentForSetup(
                         application,
-                        false, /* requirePassword */
-                        false, /* confirmCredentials */
-                        UserHandle.myUserId()))
+                        new IntentBuilder(application)
+                                .setUserId(UserHandle.myUserId())
+                                .build()))
                 .setup().get();
     }
 
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
index 90728e8..a215d13 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java
@@ -17,7 +17,6 @@
 
 import android.accounts.Account;
 import android.accounts.AccountManager;
-import android.accounts.AuthenticatorDescription;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -26,8 +25,6 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.testutils.shadow.ShadowAccountManager;
-import com.android.settings.testutils.shadow.ShadowContentResolver;
 import com.android.settingslib.drawer.CategoryKey;
 import com.android.settingslib.drawer.Tile;
 
@@ -41,11 +38,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Answers.RETURNS_DEEP_STUBS;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Mockito.doReturn;
 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)
@@ -54,7 +47,6 @@
     private static final String METADATA_CATEGORY = "com.android.settings.category";
     private static final String METADATA_ACCOUNT_TYPE = "com.android.settings.ia.account";
     private static final String METADATA_USER_HANDLE = "user_handle";
-    private static final String PREF_ACCOUNT_HEADER = "account_header";
 
     @Mock(answer = RETURNS_DEEP_STUBS)
     private AccountManager mAccountManager;
@@ -118,20 +110,4 @@
 
         assertThat(mFragment.displayTile(tile)).isFalse();
     }
-
-    @Test
-    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
-    public void updateAccountHeader_shouldShowAccountName() throws Exception {
-        when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
-            new AuthenticatorDescription[0]);
-        when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
-        when(mFragment.getContext()).thenReturn(mContext);
-        doReturn(mScreen).when(mFragment).getPreferenceScreen();
-        doReturn(mPreference).when(mFragment).findPreference(PREF_ACCOUNT_HEADER);
-
-        mFragment.updateUi();
-
-        verify(mPreference).setTitle("name1@abc.com");
-    }
-
 }
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java
new file mode 100644
index 0000000..64c2e9e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accounts/AccountHeaderPreferenceControllerTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accounts;
+
+import android.accounts.Account;
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.UserHandle;
+import android.support.v14.preference.PreferenceFragment;
+import android.support.v7.preference.PreferenceScreen;
+import android.widget.TextView;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.accounts.AuthenticatorHelper;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.when;
+
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AccountHeaderPreferenceControllerTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private Activity mActivity;
+    @Mock
+    private PreferenceFragment mFragment;
+    @Mock
+    private PreferenceScreen mScreen;
+
+    private LayoutPreference mHeaderPreference;
+
+    private AccountHeaderPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+        mHeaderPreference = new LayoutPreference(
+                RuntimeEnvironment.application, R.layout.settings_entity_header);
+    }
+
+    @Test
+    public void isAvailable_noArgs_shouldReturnNull() {
+        mController = new AccountHeaderPreferenceController(RuntimeEnvironment.application,
+                new Lifecycle(), mActivity, mFragment, null /* args */);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    @Config(shadows = ShadowAuthenticatorHelper.class)
+    public void displayPreference_shouldDisplayAccountInEntityHeader() {
+        final Account account = new Account("name1@abc.com", "com.abc");
+        Bundle args = new Bundle();
+        args.putParcelable(AccountDetailDashboardFragment.KEY_ACCOUNT, account);
+        args.putParcelable(AccountDetailDashboardFragment.KEY_USER_HANDLE, UserHandle.CURRENT);
+        mController = new AccountHeaderPreferenceController(RuntimeEnvironment.application,
+                new Lifecycle(), mActivity, mFragment, args);
+
+        assertThat(mController.isAvailable()).isTrue();
+
+        when(mScreen.findPreference(anyString())).thenReturn(mHeaderPreference);
+
+        mController.displayPreference(mScreen);
+
+        final CharSequence label =
+                ((TextView) mHeaderPreference.findViewById(R.id.entity_header_title)).getText();
+
+        assertThat(label).isEqualTo(account.name);
+
+    }
+
+    @Implements(AuthenticatorHelper.class)
+    public static class ShadowAuthenticatorHelper {
+        @Implementation
+        public void onAccountsUpdated(Account[] accounts) {
+
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
index 8453da5..f1ad142 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountPreferenceControllerTest.java
@@ -26,8 +26,8 @@
 import android.support.v7.preference.PreferenceGroup;
 import android.support.v7.preference.PreferenceManager;
 import android.support.v7.preference.PreferenceScreen;
-
 import android.text.TextUtils;
+
 import com.android.settings.AccessiblePreferenceCategory;
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
@@ -92,7 +92,7 @@
         when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
         when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
-            new AuthenticatorDescription[0]);
+                new AuthenticatorDescription[0]);
         when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
         mController = new AccountPreferenceController(mContext, mFragment, null, mAccountHelper);
     }
@@ -367,6 +367,51 @@
 
     @Test
     @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+    public void onResume_twoAccountsOfSameName_shouldAddFivePreferences() {
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        final Account[] accountType1 = new Account[2];
+        accountType1[0] = new Account("Account1", "com.acct1");
+        accountType1[1] = new Account("Account2", "com.acct1");
+        final Account[] accountType2 = new Account[2];
+        accountType2[0] = new Account("Account1", "com.acct2");
+        accountType2[1] = new Account("Account2", "com.acct2");
+        final Account[] allAccounts = new Account[4];
+        allAccounts[0] = accountType1[0];
+        allAccounts[1] = accountType1[1];
+        allAccounts[2] = accountType2[0];
+        allAccounts[3] = accountType2[1];
+        final AuthenticatorDescription[] authDescs = {
+                new AuthenticatorDescription("com.acct1", "com.android.settings",
+                        R.string.account_settings_title, 0, 0, 0, false),
+                new AuthenticatorDescription("com.acct2", "com.android.settings",
+                        R.string.account_settings_title, 0, 0, 0, false)
+        };
+
+        when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(allAccounts);
+        when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct1"), any(UserHandle.class)))
+                .thenReturn(accountType1);
+        when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct2"), any(UserHandle.class)))
+                .thenReturn(accountType2);
+        when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
+
+        AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+        when(preferenceGroup.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+        when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+                preferenceGroup);
+
+        mController.onResume();
+
+        // should add 4 individual account and the Add account preference
+        verify(preferenceGroup, times(5)).addPreference(any(Preference.class));
+    }
+
+    @Test
+    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
     public void onResume_noAccountChange_shouldNotAddAccountPreference() {
         final List<UserInfo> infos = new ArrayList<>();
         infos.add(new UserInfo(1, "user 1", 0));
@@ -448,6 +493,42 @@
 
     @Test
     @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
+    public void onResume_oneNewAccountType_shouldAddOneAccountPreference() {
+        final List<UserInfo> infos = new ArrayList<>();
+        infos.add(new UserInfo(1, "user 1", 0));
+        infos.add(new UserInfo(2, "user 2", UserInfo.FLAG_MANAGED_PROFILE));
+        when(mUserManager.isManagedProfile()).thenReturn(false);
+        when(mUserManager.isLinkedUser()).thenReturn(false);
+        when(mUserManager.getProfiles(anyInt())).thenReturn(infos);
+
+        AccessiblePreferenceCategory preferenceGroup = mock(AccessiblePreferenceCategory.class);
+        when(preferenceGroup.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
+        when(mAccountHelper.createAccessiblePreferenceCategory(any(Context.class))).thenReturn(
+            preferenceGroup);
+
+        // First time resume will build the UI with no account
+        mController.onResume();
+
+        // Add new account
+        Account[] accounts = {new Account("Acct1", "com.acct1")};
+        when(mAccountManager.getAccountsAsUser(2)).thenReturn(accounts);
+        when(mAccountManager.getAccountsByTypeAsUser(eq("com.acct1"), any(UserHandle.class)))
+            .thenReturn(accounts);
+
+        AuthenticatorDescription[] authDescs = {
+            new AuthenticatorDescription("com.acct1", "com.android.settings",
+                R.string.account_settings_title, 0, 0, 0, false)
+        };
+        when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(authDescs);
+
+        // Resume should show the newly added account
+        mController.onResume();
+
+        verify(preferenceGroup).addPreference(argThat(new PreferenceMatcher("Acct1")));
+    }
+
+    @Test
+    @Config(shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
     public void onResume_oneAccountRemoved_shouldRemoveOneAccountPreference() {
         final List<UserInfo> infos = new ArrayList<>();
         infos.add(new UserInfo(1, "user 1", 0));
diff --git a/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java b/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
index bedb0a5..0c3c160 100644
--- a/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AdvancedAppSettingsTest.java
@@ -26,6 +26,7 @@
 import com.android.settings.applications.defaultapps.DefaultPhonePreferenceController;
 import com.android.settings.applications.defaultapps.DefaultSmsPreferenceController;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.XmlTestUtils;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,11 +35,14 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
+import java.util.List;
+
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -136,4 +140,16 @@
 
     }
 
+
+    @Test
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = spy(RuntimeEnvironment.application);
+        final List<String> niks = AdvancedAppSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new AdvancedAppSettings()).getPreferenceScreenResId();
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+        assertThat(keys).containsAllIn(niks);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/AppAndNotificationDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/applications/AppAndNotificationDashboardFragmentTest.java
new file mode 100644
index 0000000..32b447a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/applications/AppAndNotificationDashboardFragmentTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications;
+
+import android.content.Context;
+
+import android.os.UserManager;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AppAndNotificationDashboardFragmentTest {
+
+    @Test
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = spy(RuntimeEnvironment.application);
+        UserManager manager = mock(UserManager.class);
+        when(manager.isAdminUser()).thenReturn(true);
+        when(context.getSystemService(Context.USER_SERVICE)).thenReturn(manager);
+        final List<String> niks = AppAndNotificationDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new AppAndNotificationDashboardFragment()).getPreferenceScreenResId();
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+        assertThat(keys).containsAllIn(niks);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
index 68c153c..5a526e7 100644
--- a/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
+++ b/tests/robotests/src/com/android/settings/applications/AppInfoWithHeaderTest.java
@@ -28,9 +28,12 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -47,10 +50,13 @@
 import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = ShadowEntityHeaderController.class)
 public class AppInfoWithHeaderTest {
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private EntityHeaderController mHeaderController;
 
     private FakeFeatureFactory mFactory;
     private TestFragment mAppInfoWithHeader;
@@ -64,16 +70,16 @@
         when(mFactory.metricsFeatureProvider.getMetricsCategory(any(Object.class)))
                 .thenReturn(MetricsProto.MetricsEvent.SETTINGS_APP_NOTIF_CATEGORY);
         mAppInfoWithHeader = new TestFragment();
+        ShadowEntityHeaderController.setUseMock(mHeaderController);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowEntityHeaderController.reset();
     }
 
     @Test
     public void testAppHeaderIsAdded() {
-        final AppHeaderController appHeaderController = new AppHeaderController(
-                ShadowApplication.getInstance().getApplicationContext(),
-                mAppInfoWithHeader,
-                null);
-        when(mFactory.applicationFeatureProvider.newAppHeaderController(mAppInfoWithHeader, null))
-                .thenReturn(appHeaderController);
         mAppInfoWithHeader.onActivityCreated(null);
 
         verify(mAppInfoWithHeader.mScreen).addPreference(any(LayoutPreference.class));
@@ -93,7 +99,7 @@
             mPackageInfo.applicationInfo = new ApplicationInfo();
             mShadowContext = ShadowApplication.getInstance().getApplicationContext();
             ReflectionHelpers.setStaticField(AppUtils.class, "sInstantAppDataProvider",
-                                             (InstantAppDataProvider) (info -> false));
+                    (InstantAppDataProvider) (info -> false));
             when(mManager.getContext()).thenReturn(mShadowContext);
         }
 
diff --git a/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
index ee184fd..0bff497 100644
--- a/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/ManageApplicationsTest.java
@@ -28,12 +28,12 @@
 import com.android.settings.Settings;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.SettingsShadowResources.SettingsShadowTheme;
 import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
 import com.android.settings.testutils.shadow.ShadowEventLogWriter;
 import com.android.settingslib.applications.ApplicationsState;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/applications/assist/AssistContextPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/assist/AssistContextPreferenceControllerTest.java
index da8473f..161e376 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/AssistContextPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/assist/AssistContextPreferenceControllerTest.java
@@ -24,7 +24,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
index 0b2378c..63977cd 100644
--- a/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/assist/AssistFlashScreenPreferenceControllerTest.java
@@ -25,8 +25,8 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java
index 6d6e2f8..21537f5 100644
--- a/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/defaultapps/DefaultHomePreferenceControllerTest.java
@@ -17,6 +17,7 @@
 package com.android.settings.applications.defaultapps;
 
 
+import android.content.ComponentName;
 import android.content.Context;
 import android.os.UserManager;
 import android.support.v7.preference.Preference;
@@ -84,4 +85,33 @@
 
         verify(mPackageManager).getHomeActivities(anyList());
     }
+
+    @Test
+    public void testIsHomeDefault_noDefaultSet_shouldReturnTrue() {
+        when(mPackageManager.getHomeActivities(anyList())).thenReturn(null);
+        assertThat(DefaultHomePreferenceController.isHomeDefault("test.pkg", mPackageManager))
+                .isTrue();
+    }
+
+    @Test
+    public void testIsHomeDefault_defaultSetToPkg_shouldReturnTrue() {
+        final String pkgName = "test.pkg";
+        final ComponentName defaultHome = new ComponentName(pkgName, "class");
+
+        when(mPackageManager.getHomeActivities(anyList())).thenReturn(defaultHome);
+
+        assertThat(DefaultHomePreferenceController.isHomeDefault(pkgName, mPackageManager))
+                .isTrue();
+    }
+
+    @Test
+    public void testIsHomeDefault_defaultSetToOtherPkg_shouldReturnFalse() {
+        final String pkgName = "test.pkg";
+        final ComponentName defaultHome = new ComponentName("not" + pkgName, "class");
+
+        when(mPackageManager.getHomeActivities(anyList())).thenReturn(defaultHome);
+
+        assertThat(DefaultHomePreferenceController.isHomeDefault(pkgName, mPackageManager))
+                .isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
new file mode 100644
index 0000000..70a95dd
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceControllerTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.Fragment;
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.os.StrictMode;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BluetoothDeviceNamePreferenceControllerTest {
+    private static final String DEVICE_NAME = "Nightshade";
+    private static final int ORDER = 1;
+
+    private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Fragment mFragment;
+    @Mock
+    private Lifecycle mLifecycle;
+    @Mock
+    private LocalBluetoothAdapter mLocalAdapter;
+    @Mock
+    private FragmentManager mFragmentManager;
+    @Mock
+    private FragmentTransaction mFragmentTransaction;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    private Preference mPreference;
+
+    private BluetoothDeviceNamePreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(RuntimeEnvironment.application);
+
+        doReturn(mContext).when(mPreferenceScreen).getContext();
+        mPreference = new Preference(mContext);
+        mPreference.setKey(BluetoothDeviceNamePreferenceController.KEY_DEVICE_NAME);
+        mController = new BluetoothDeviceNamePreferenceController(
+                mContext, mFragment, mLocalAdapter);
+    }
+
+    @Test
+    public void testUpdateDeviceName_showSummaryWithDeviceName() {
+        mController.updateDeviceName(mPreference, DEVICE_NAME);
+
+        final CharSequence summary = mPreference.getSummary();
+        final Object[] spans = ((SpannableStringBuilder) summary).getSpans(0, summary.length(),
+                Object.class);
+        assertThat(summary.toString())
+                .isEqualTo("Visible as Nightshade to other devices");
+
+        // Test summary only has one color span
+        assertThat(spans).asList().hasSize(1);
+        assertThat(spans[0]).isInstanceOf(ForegroundColorSpan.class);
+    }
+
+    @Test
+    public void testCreateBluetoothDeviceNamePreference() {
+        Preference preference = mController.createBluetoothDeviceNamePreference(mPreferenceScreen,
+                ORDER);
+
+        assertThat(preference.getKey()).isEqualTo(mController.KEY_DEVICE_NAME);
+        assertThat(preference.getOrder()).isEqualTo(ORDER);
+        verify(mPreferenceScreen).addPreference(preference);
+    }
+
+    @Test
+    public void testOnStart_receiverRegistered() {
+        mController.onStart();
+        verify(mContext).registerReceiver(eq(mController.mReceiver), any());
+    }
+
+    @Test
+    public void testOnStop_receiverUnregistered() {
+        // register it first
+        mContext.registerReceiver(mController.mReceiver, null);
+
+        mController.onStop();
+        verify(mContext).unregisterReceiver(mController.mReceiver);
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick_startDialogFragment() {
+        when(mFragment.getFragmentManager().beginTransaction()).thenReturn(mFragmentTransaction);
+
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mFragmentTransaction).add(any(), anyString());
+        verify(mFragmentTransaction).commit();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceControllerTest.java
index 177130e..f0fb91c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothMasterSwitchPreferenceControllerTest.java
@@ -16,14 +16,18 @@
 
 package com.android.settings.bluetooth;
 
+import android.app.Fragment;
 import android.content.Context;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.Preference.OnPreferenceChangeListener;
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settingslib.bluetooth.BluetoothCallback;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
@@ -38,7 +42,10 @@
 import org.robolectric.annotation.Config;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -54,17 +61,26 @@
     private MasterSwitchPreference mPreference;
     @Mock
     private RestrictionUtils mRestrictionUtils;
+    @Mock
+    private Fragment mFragment;
+    @Mock
+    private SettingsActivity mActivity;
 
     private Context mContext;
     private BluetoothMasterSwitchPreferenceController mController;
+    private FakeFeatureFactory mFeatureFactory;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application.getApplicationContext();
+        mContext = spy(RuntimeEnvironment.application.getApplicationContext());
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+
         mController = new BluetoothMasterSwitchPreferenceController(
-                mContext, mBluetoothManager, mRestrictionUtils);
+                mContext, mBluetoothManager, mRestrictionUtils, mFragment, mActivity);
         when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference);
+        when(mPreference.getKey()).thenReturn(mController.getPreferenceKey());
     }
 
     @Test
@@ -84,7 +100,7 @@
         mController.onPause();
 
         verify(mBluetoothManager.getEventManager()).unregisterCallback(
-            any(BluetoothCallback.class));
+                any(BluetoothCallback.class));
     }
 
     @Test
@@ -114,4 +130,22 @@
         verify(mPreference).setSummary("test summary");
     }
 
+    @Test
+    public void testHandlePreferenceTreeClick_pairPageEnabled_showNewPage() {
+        when(mFeatureFactory.bluetoothFeatureProvider.isPairingPageEnabled()).thenReturn(true);
+
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mActivity).startPreferencePanelAsUser(eq(mFragment),
+                eq(BluetoothSettings.class.getName()), any(), eq(R.string.bluetooth), any(), any());
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick_pairPageDisabled_showOldPage() {
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mActivity).startPreferencePanelAsUser(eq(mFragment),
+                eq(BluetoothSettingsObsolete.class.getName()), any(), eq(R.string.bluetooth), any(),
+                any());
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java
new file mode 100644
index 0000000..6774ba9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.UserManager;
+import android.support.v7.preference.PreferenceGroup;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settingslib.bluetooth.BluetoothDeviceFilter;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.widget.FooterPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BluetoothPairingDetailTest {
+
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private Resources mResource;
+    @Mock
+    private LocalBluetoothAdapter mLocalAdapter;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private LocalBluetoothManager mLocalManager;
+    @Mock
+    private PreferenceGroup mPreferenceGroup;
+    private BluetoothPairingDetail mFragment;
+    private Context mContext;
+    private BluetoothProgressCategory mAvailableDevicesCategory;
+    private FooterPreference mFooterPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        mFragment = spy(new BluetoothPairingDetail());
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mResource).when(mFragment).getResources();
+
+        mAvailableDevicesCategory = spy(new BluetoothProgressCategory(mContext));
+        mFooterPreference = new FooterPreference(mContext);
+
+        mFragment.mLocalAdapter = mLocalAdapter;
+        mFragment.mLocalManager = mLocalManager;
+        mFragment.mDeviceListGroup = mPreferenceGroup;
+    }
+
+    @Test
+    public void testInitPreferencesFromPreferenceScreen_findPreferences() {
+        doReturn(mAvailableDevicesCategory).when(mFragment).findPreference(
+                BluetoothPairingDetail.KEY_AVAIL_DEVICES);
+        doReturn(mFooterPreference).when(mFragment).findPreference(
+                BluetoothPairingDetail.KEY_FOOTER_PREF);
+
+        mFragment.initPreferencesFromPreferenceScreen();
+
+        assertThat(mFragment.mAvailableDevicesCategory).isEqualTo(mAvailableDevicesCategory);
+        assertThat(mFragment.mFooterPreference).isEqualTo(mFooterPreference);
+    }
+
+    @Test
+    public void testStartScanning_startScanAndRemoveDevices() {
+        mFragment.mAvailableDevicesCategory = mAvailableDevicesCategory;
+        mFragment.mDeviceListGroup = mAvailableDevicesCategory;
+
+        mFragment.startScanning();
+
+        verify(mLocalAdapter).startScanning(true);
+        verify(mAvailableDevicesCategory).removeAll();
+    }
+
+    @Test
+    public void testUpdateContent_stateOn_addDevices() {
+        mFragment.mAvailableDevicesCategory = mAvailableDevicesCategory;
+        mFragment.mFooterPreference = mFooterPreference;
+        doNothing().when(mFragment).addDeviceCategory(any(), anyInt(), any(), anyBoolean());
+
+        mFragment.updateContent(BluetoothAdapter.STATE_ON);
+
+        verify(mFragment).addDeviceCategory(mAvailableDevicesCategory,
+                R.string.bluetooth_preference_found_devices,
+                BluetoothDeviceFilter.UNBONDED_DEVICE_FILTER, false);
+        verify(mLocalAdapter).setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE);
+    }
+
+    @Test
+    public void testUpdateContent_stateOff_finish() {
+        mFragment.updateContent(BluetoothAdapter.STATE_OFF);
+
+        verify(mFragment).finish();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
new file mode 100644
index 0000000..937b31f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingPreferenceControllerTest.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import 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.Matchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.FragmentManager;
+import android.app.FragmentTransaction;
+import android.content.Context;
+import android.support.v14.preference.PreferenceFragment;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+
+import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BluetoothPairingPreferenceControllerTest {
+    private static final int ORDER = 1;
+    private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private PreferenceFragment mFragment;
+    @Mock
+    private Lifecycle mLifecycle;
+    @Mock
+    private LocalBluetoothAdapter mLocalAdapter;
+    @Mock
+    private FragmentManager mFragmentManager;
+    @Mock
+    private FragmentTransaction mFragmentTransaction;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private SettingsActivity mSettingsActivity;
+    private Preference mPreference;
+
+    private BluetoothPairingPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = RuntimeEnvironment.application;
+        when(mFragment.getPreferenceScreen().getContext()).thenReturn(mContext);
+
+        mPreference = new Preference(mContext);
+        mPreference.setKey(BluetoothPairingPreferenceController.KEY_PAIRING);
+
+        mController = new BluetoothPairingPreferenceController(mContext, mFragment,
+                mSettingsActivity);
+    }
+
+    @Test
+    public void testCreateBluetoothPairingPreference() {
+        Preference pref = mController.createBluetoothPairingPreference(ORDER);
+
+        assertThat(pref.getKey()).isEqualTo(BluetoothPairingPreferenceController.KEY_PAIRING);
+        assertThat(pref.getIcon()).isEqualTo(mContext.getDrawable(R.drawable.ic_add));
+        assertThat(pref.getOrder()).isEqualTo(ORDER);
+        assertThat(pref.getTitle()).isEqualTo(
+                mContext.getString(R.string.bluetooth_pairing_pref_title));
+    }
+
+    @Test
+    public void testHandlePreferenceTreeClick_startFragment() {
+        mController.handlePreferenceTreeClick(mPreference);
+
+        verify(mSettingsActivity).startPreferencePanelAsUser(eq(mFragment), anyString(), any(),
+                anyInt(), any(), any());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsObsoleteTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsObsoleteTest.java
new file mode 100644
index 0000000..549eeb7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsObsoleteTest.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+
+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 java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BluetoothSettingsObsoleteTest {
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    private BluetoothSettingsObsolete mFragment;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+
+        mFragment = spy(new BluetoothSettingsObsolete());
+        doReturn(mContext).when(mFragment).getContext();
+    }
+
+    @Test
+    public void testSearchIndexProvider_pairPageEnabled_keyAdded() {
+        doReturn(true).when(mFeatureFactory.bluetoothFeatureProvider).isPairingPageEnabled();
+
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
+
+        assertThat(keys).contains(BluetoothSettingsObsolete.DATA_KEY_REFERENCE);
+    }
+
+    @Test
+    public void testSearchIndexProvider_pairPageDisabled_keyNotAdded() {
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
+
+        assertThat(keys).doesNotContain(BluetoothSettingsObsolete.DATA_KEY_REFERENCE);
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsTest.java
index 35207f5..6ceca41 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothSettingsTest.java
@@ -23,24 +23,33 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.res.Resources;
 import android.os.UserManager;
 import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceGroup;
+import android.view.View;
+import android.widget.TextView;
 
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.widget.FooterPreference;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.util.List;
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class BluetoothSettingsTest {
@@ -51,23 +60,42 @@
     @Mock
     private Resources mResource;
     @Mock
-    private Context mContext;
-    @Mock
     private LocalBluetoothAdapter mLocalAdapter;
+    @Mock
+    private Activity mActivity;
+    @Mock
+    private PreferenceGroup mPairedDevicesCategory;
+    @Mock
+    private BluetoothPairingPreferenceController mPairingPreferenceController;
+    private Context mContext;
     private BluetoothSettings mFragment;
-    private Preference mMyDevicePreference;
+    private FakeFeatureFactory mFeatureFactory;
+    private Preference mFooterPreference;
+    private TextView mEmptyMessage;
+    private View mContainer;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        mContext = spy(RuntimeEnvironment.application);
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+
         mFragment = spy(new BluetoothSettings());
+
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mResource).when(mFragment).getResources();
+        doReturn(mActivity).when(mFragment).getActivity();
 
-        mMyDevicePreference = new Preference(RuntimeEnvironment.application);
+        mContainer = new View(mContext);
+        mEmptyMessage = new TextView(mContext);
+        doReturn(mContainer).when(mActivity).findViewById(android.R.id.list_container);
+        doReturn(mEmptyMessage).when(mActivity).findViewById(android.R.id.empty);
 
+        mFooterPreference = new FooterPreference(RuntimeEnvironment.application);
         mFragment.setLocalBluetoothAdapter(mLocalAdapter);
+        mFragment.mPairingPrefController = mPairingPreferenceController;
     }
 
     @Test
@@ -81,9 +109,56 @@
         doReturn(FOOTAGE_MAC_STRING).when(mFragment).getString(
                 eq(R.string.bluetooth_footer_mac_message), any());
 
-        mFragment.updateMyDevicePreference(mMyDevicePreference);
+        mFragment.updateFooterPreference(mFooterPreference);
 
-        assertThat(mMyDevicePreference.getTitle()).isEqualTo(FOOTAGE_MAC_STRING);
+        assertThat(mFooterPreference.getTitle()).isEqualTo(FOOTAGE_MAC_STRING);
+    }
+
+    @Test
+    public void testDisplayEmptyMessage_showEmptyMessage() {
+        mFragment.displayEmptyMessage(true);
+
+        assertThat(mContainer.getVisibility()).isEqualTo(View.INVISIBLE);
+        assertThat(mEmptyMessage.getVisibility()).isEqualTo(View.VISIBLE);
+    }
+
+    @Test
+    public void testDisplayEmptyMessage_hideEmptyMessage() {
+        mFragment.displayEmptyMessage(false);
+
+        assertThat(mContainer.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(mEmptyMessage.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void testInitPreferencesFromPreferenceScreen() {
+        doReturn(mPairedDevicesCategory).when(mFragment).findPreference(
+                BluetoothSettings.KEY_PAIRED_DEVICES);
+        doReturn(mFooterPreference).when(mFragment).findPreference(
+                BluetoothSettings.KEY_FOOTER_PREF);
+
+        mFragment.initPreferencesFromPreferenceScreen();
+
+        assertThat(mFragment.mPairedDevicesCategory).isEqualTo(mPairedDevicesCategory);
+        assertThat(mFragment.mFooterPreference).isEqualTo(mFooterPreference);
+    }
+
+    @Test
+    public void testSearchIndexProvider_pairPageEnabled_keyNotAdded() {
+        doReturn(true).when(mFeatureFactory.bluetoothFeatureProvider).isPairingPageEnabled();
+
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
+
+        assertThat(keys).doesNotContain(BluetoothSettings.DATA_KEY_REFERENCE);
+    }
+
+    @Test
+    public void testSearchIndexProvider_pairPageDisabled_keyAdded() {
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
+
+        assertThat(keys).contains(BluetoothSettings.DATA_KEY_REFERENCE);
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.java
new file mode 100644
index 0000000..bbb7359
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/DeviceListPreferenceFragmentTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.os.UserManager;
+import android.support.v7.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.PreferenceController;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DeviceListPreferenceFragmentTest {
+    private static final String FOOTAGE_MAC_STRING = "Bluetooth mac: xxxx";
+
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private Resources mResource;
+    @Mock
+    private Context mContext;
+    @Mock
+    private LocalBluetoothAdapter mLocalAdapter;
+    private TestFragment mFragment;
+    private Preference mMyDevicePreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mFragment = spy(new TestFragment());
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mResource).when(mFragment).getResources();
+        mFragment.mLocalAdapter = mLocalAdapter;
+
+        mMyDevicePreference = new Preference(RuntimeEnvironment.application);
+    }
+
+    @Test
+    public void setUpdateMyDevicePreference_setTitleCorrectly() {
+        doReturn(FOOTAGE_MAC_STRING).when(mFragment).getString(
+                eq(R.string.bluetooth_footer_mac_message), any());
+
+        mFragment.updateFooterPreference(mMyDevicePreference);
+
+        assertThat(mMyDevicePreference.getTitle()).isEqualTo(FOOTAGE_MAC_STRING);
+    }
+
+    /**
+     * Fragment to test since {@code DeviceListPreferenceFragment} is abstract
+     */
+    public static class TestFragment extends DeviceListPreferenceFragment {
+
+        public TestFragment() {
+            super("");
+        }
+
+        @Override
+        public int getMetricsCategory() {
+            return 0;
+        }
+
+        @Override
+        public void onDeviceBondStateChanged(CachedBluetoothDevice cachedDevice, int bondState) {
+
+        }
+
+        @Override
+        void initPreferencesFromPreferenceScreen() {
+
+        }
+
+        @Override
+        public String getDeviceListKey() {
+            return null;
+        }
+
+        @Override
+        protected String getLogTag() {
+            return null;
+        }
+
+        @Override
+        protected int getPreferenceScreenResId() {
+            return 0;
+        }
+
+        @Override
+        protected List<PreferenceController> getPreferenceControllers(Context context) {
+            return null;
+        }
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java b/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java
new file mode 100644
index 0000000..c61823c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/DeviceProfilesSettingsTest.java
@@ -0,0 +1,206 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.bluetooth;
+
+import android.app.Activity;
+import android.content.Context;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.CheckBox;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowEventLogWriter;
+import com.android.settingslib.R;
+import com.android.settingslib.bluetooth.A2dpProfile;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.CachedBluetoothDeviceManager;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+import com.android.settingslib.bluetooth.LocalBluetoothProfile;
+import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.FragmentTestUtil;
+import org.robolectric.util.ReflectionHelpers;
+import org.robolectric.RuntimeEnvironment;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+
+import java.util.ArrayList;
+
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, shadows = {
+        ShadowEventLogWriter.class
+})
+public class DeviceProfilesSettingsTest {
+    Context mContext;
+    @Mock Activity mActivity;
+    @Mock LocalBluetoothManager mManager;
+    @Mock LocalBluetoothAdapter mAdapter;
+    @Mock LocalBluetoothProfileManager mProfileManager;
+    @Mock CachedBluetoothDeviceManager mDeviceManager;
+    @Mock CachedBluetoothDevice mCachedDevice;
+    @Mock A2dpProfile mProfile;
+
+    ArrayList<LocalBluetoothProfile> mProfiles;
+    DeviceProfilesSettings mFragment;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = RuntimeEnvironment.application;
+
+        when(mProfile.getNameResource(any())).thenReturn(R.string.bluetooth_profile_a2dp);
+        mProfiles = new ArrayList<>();
+        mProfiles.add(mProfile);
+        when(mCachedDevice.getConnectableProfiles()).thenReturn(mProfiles);
+
+        mFragment = new DeviceProfilesSettings();
+        mFragment.setArguments(new Bundle());
+
+        ReflectionHelpers.setStaticField(LocalBluetoothManager.class, "sInstance", mManager);
+        when(mManager.getCachedDeviceManager()).thenReturn(mDeviceManager);
+        when(mManager.getBluetoothAdapter()).thenReturn(mAdapter);
+        when(mManager.getProfileManager()).thenReturn(mProfileManager);
+        when(mProfileManager.getMapProfile()).thenReturn(null);
+        when(mDeviceManager.findDevice(any())).thenReturn(mCachedDevice);
+    }
+
+    @Test
+    public void deviceHasHighQualityAudio() {
+        when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+        when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+        when(mProfile.isPreferred(any())).thenReturn(true);
+        FragmentTestUtil.startFragment(mFragment);
+
+        ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+        CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(box).isNotNull();
+        assertThat(box.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(box.isEnabled()).isTrue();
+        assertThat(box.isChecked()).isTrue();
+
+        box.performClick();
+        verify(mProfile).setHighQualityAudioEnabled(any(), eq(false));
+        box.performClick();
+        verify(mProfile).setHighQualityAudioEnabled(any(), eq(true));
+    }
+
+    @Test
+    public void busyDeviceDisablesControl() {
+        when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+        when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+        when(mProfile.isPreferred(any())).thenReturn(true);
+        when(mCachedDevice.isBusy()).thenReturn(true);
+        FragmentTestUtil.startFragment(mFragment);
+
+        // Make sure that the high quality audio option is present but disabled when the device
+        // is busy.
+        ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+        CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(box).isNotNull();
+        assertThat(box.getVisibility()).isEqualTo(View.VISIBLE);
+        assertThat(box.isEnabled()).isFalse();
+    }
+
+    @Test
+    public void mediaAudioGetsDisabledAndReEnabled() {
+        when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+        when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+        when(mProfile.isPreferred(any())).thenReturn(true);
+        FragmentTestUtil.startFragment(mFragment);
+
+        ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+        CheckBox audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+        CheckBox highQualityAudioBox = profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(audioBox).isNotNull();
+        assertThat(audioBox.isChecked()).isTrue();
+        assertThat(highQualityAudioBox).isNotNull();
+        assertThat(highQualityAudioBox.isChecked()).isTrue();
+
+        // Disabling media audio should cause the high quality audio box to disappear.
+        when(mProfile.isPreferred(any())).thenReturn(false);
+        mFragment.onDeviceAttributesChanged();
+        audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+        highQualityAudioBox = profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(audioBox).isNotNull();
+        assertThat(audioBox.isChecked()).isFalse();
+        assertThat(highQualityAudioBox).isNotNull();
+        assertThat(highQualityAudioBox.getVisibility()).isEqualTo(View.GONE);
+
+        // And re-enabling media audio should make it reappear.
+        when(mProfile.isPreferred(any())).thenReturn(true);
+        mFragment.onDeviceAttributesChanged();
+        audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+        highQualityAudioBox = profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(audioBox).isNotNull();
+        assertThat(audioBox.isChecked()).isTrue();
+        assertThat(highQualityAudioBox).isNotNull();
+        assertThat(highQualityAudioBox.isChecked()).isTrue();
+    }
+
+    @Test
+    public void mediaAudioStartsDisabled() {
+        when(mProfile.supportsHighQualityAudio(any())).thenReturn(true);
+        when(mProfile.isHighQualityAudioEnabled(any())).thenReturn(true);
+        when(mProfile.isPreferred(any())).thenReturn(false);
+
+        FragmentTestUtil.startFragment(mFragment);
+        ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+        CheckBox audioBox = profilesGroup.findViewWithTag(mProfile.toString());
+        CheckBox highQualityAudioBox = profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+
+        assertThat(audioBox).isNotNull();
+        assertThat(audioBox.isChecked()).isFalse();
+        assertThat(highQualityAudioBox).isNotNull();
+        assertThat(highQualityAudioBox.getVisibility()).isEqualTo(View.GONE);
+    }
+
+    @Test
+    public void deviceDoesntHaveHighQualityAudio() {
+        when(mProfile.supportsHighQualityAudio(any())).thenReturn(false);
+        when(mProfile.isPreferred(any())).thenReturn(true);
+        FragmentTestUtil.startFragment(mFragment);
+
+        // A device that doesn't support high quality audio shouldn't have the checkbox for
+        // high quality audio support.
+        ViewGroup profilesGroup = mFragment.getDialog().findViewById(R.id.profiles_section);
+        CheckBox box = (CheckBox) profilesGroup.findViewWithTag(
+                DeviceProfilesSettings.HIGH_QUALITY_AUDIO_PREF_TAG);
+        assertThat(box).isNull();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
index e792845..72cbf4e 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/ConnectedDeviceDashboardFragmentTest.java
@@ -17,12 +17,15 @@
 
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.nfc.NfcAdapter;
+import android.nfc.NfcManager;
 import android.provider.SearchIndexableResource;
 
-import com.android.settings.bluetooth.BluetoothMasterSwitchPreferenceController;
+import com.android.settings.R;
 import com.android.settings.nfc.NfcPreferenceController;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settingslib.drawer.CategoryKey;
 
@@ -36,12 +39,17 @@
 
 import java.util.List;
 
+import static android.content.Context.NFC_SERVICE;
 import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class ConnectedDeviceDashboardFragmentTest {
+
     @Mock
     Context mContext;
 
@@ -65,7 +73,8 @@
     @Test
     public void testSearchIndexProvider_shouldIndexResource() {
         final List<SearchIndexableResource> indexRes =
-                mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, true /* enabled */);
+                mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext,
+                        true /* enabled */);
 
         assertThat(indexRes).isNotNull();
         assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId());
@@ -74,7 +83,8 @@
     @Test
     public void testSearchIndexProvider_NoNfc_KeyAdded() {
         when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(false);
-        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
 
         assertThat(keys).isNotNull();
         assertThat(keys).contains(NfcPreferenceController.KEY_TOGGLE_NFC);
@@ -84,7 +94,8 @@
     @Test
     public void testSearchIndexProvider_NFC_KeyNotAdded() {
         when(mManager.hasSystemFeature(PackageManager.FEATURE_NFC)).thenReturn(true);
-        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext);
+        final List<String> keys = mFragment.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(
+                mContext);
 
         assertThat(keys).isNotNull();
         assertThat(keys).doesNotContain(NfcPreferenceController.KEY_TOGGLE_NFC);
@@ -103,4 +114,43 @@
 
         assertThat(keys).containsAllIn(niks);
     }
+
+    @Test
+    public void testSummaryProvider_hasNfc_shouldReturnNfcSummary() {
+        final NfcManager nfcManager = mock(NfcManager.class);
+        final SummaryLoader summaryLoader = mock(SummaryLoader.class);
+
+        when(mContext.getApplicationContext()).thenReturn(mContext);
+        when(mContext.getSystemService(NFC_SERVICE)).thenReturn(nfcManager);
+        when(nfcManager.getDefaultAdapter()).thenReturn(mock(NfcAdapter.class));
+
+        SummaryLoader.SummaryProvider provider =
+                new ConnectedDeviceDashboardFragment.SummaryProvider(mContext, summaryLoader);
+
+        provider.setListening(false);
+
+        verifyZeroInteractions(summaryLoader);
+
+        provider.setListening(true);
+
+        verify(mContext).getString(R.string.connected_devices_dashboard_summary);
+    }
+
+    @Test
+    public void testSummaryProvider_noNfc_shouldReturnNoNfcSummary() {
+        final SummaryLoader summaryLoader = mock(SummaryLoader.class);
+
+        when(mContext.getApplicationContext()).thenReturn(mContext);
+
+        SummaryLoader.SummaryProvider provider =
+                new ConnectedDeviceDashboardFragment.SummaryProvider(mContext, summaryLoader);
+
+        provider.setListening(false);
+
+        verifyZeroInteractions(summaryLoader);
+
+        provider.setListening(true);
+
+        verify(mContext).getString(R.string.connected_devices_dashboard_no_nfc_summary);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/core/DynamicAvailabilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/core/DynamicAvailabilityPreferenceControllerTest.java
index 38a8356..d0cb0d3 100644
--- a/tests/robotests/src/com/android/settings/core/DynamicAvailabilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/core/DynamicAvailabilityPreferenceControllerTest.java
@@ -22,7 +22,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
index a957ce4..91046fe 100644
--- a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
+++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspector.java
@@ -24,6 +24,8 @@
 import java.lang.reflect.Modifier;
 import java.util.List;
 
+import static com.google.common.truth.Truth.assertWithMessage;
+
 /**
  * Inspector takes a list of class objects and perform static code analysis in its {@link #run()}
  * method.
@@ -46,6 +48,17 @@
      */
     public abstract void run();
 
+    protected void assertNoObsoleteInGrandfatherList(String listName, List<String> list) {
+        final StringBuilder obsoleteGrandfatherItems = new StringBuilder(
+                listName + " contains item that should not be grandfathered.\n");
+        for (String c : list) {
+            obsoleteGrandfatherItems.append(c).append("\n");
+        }
+        assertWithMessage(obsoleteGrandfatherItems.toString())
+                .that(list)
+                .isEmpty();
+    }
+
     protected boolean isConcreteSettingsClass(Class clazz) {
         // Abstract classes
         if (Modifier.isAbstract(clazz.getModifiers())) {
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
index ed4e50c..4455549 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentableFragmentCodeInspector.java
@@ -51,9 +51,11 @@
             }
             final String className = clazz.getName();
             // If it's a fragment, it must also be instrumentable.
+            final boolean whitelisted =
+                    grandfather_notImplementingInstrumentable.remove(className);
             if (Fragment.class.isAssignableFrom(clazz)
                     && !Instrumentable.class.isAssignableFrom(clazz)
-                    && !grandfather_notImplementingInstrumentable.contains(className)) {
+                    && !whitelisted) {
                 broken.add(className);
             }
         }
@@ -65,5 +67,7 @@
         assertWithMessage(sb.toString())
                 .that(broken.isEmpty())
                 .isTrue();
+        assertNoObsoleteInGrandfatherList("grandfather_not_implementing_instrumentable",
+                grandfather_notImplementingInstrumentable);
     }
 }
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 763d6e3..3e24fcf 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java
@@ -23,16 +23,26 @@
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
 
+import com.google.common.truth.Platform;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Answers;
+import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
 
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
+        .FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE;
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
+        .FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE;
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent
+        .FIELD_SETTINGS_PREFERENCE_CHANGE_NAME;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.argThat;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
@@ -46,6 +56,7 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
 
+    private PairMatcher mNamePairMatcher;
     private FakeFeatureFactory mFactory;
     private MetricsFeatureProvider mMetricsFeature;
     private SharedPreferencesLogger mSharedPrefLogger;
@@ -58,6 +69,7 @@
         mMetricsFeature = mFactory.metricsFeatureProvider;
 
         mSharedPrefLogger = new SharedPreferencesLogger(mContext, TEST_TAG);
+        mNamePairMatcher = new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_NAME, String.class);
     }
 
     @Test
@@ -71,8 +83,11 @@
         editor.putInt(TEST_KEY, 2);
         editor.putInt(TEST_KEY, 2);
 
+        final PairMatcher longMatcher =
+                new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE, Long.class);
+
         verify(mMetricsFeature, times(6)).action(any(Context.class), anyInt(),
-                any(Pair.class), any(Pair.class));
+                argThat(mNamePairMatcher), argThat(longMatcher));
     }
 
     @Test
@@ -84,8 +99,16 @@
         editor.putBoolean(TEST_KEY, false);
         editor.putBoolean(TEST_KEY, false);
 
-        verify(mMetricsFeature, times(4)).action(any(Context.class), anyInt(),
-                any(Pair.class), any(Pair.class));
+
+        final PairMatcher trueMatcher =
+                new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE, true);
+        final PairMatcher falseMatcher =
+                new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE, false);
+
+        verify(mMetricsFeature).action(any(Context.class), anyInt(),
+                argThat(mNamePairMatcher), argThat(trueMatcher));
+        verify(mMetricsFeature, times(3)).action(any(Context.class), anyInt(),
+                argThat(mNamePairMatcher), argThat(falseMatcher));
     }
 
     @Test
@@ -97,8 +120,11 @@
         editor.putLong(TEST_KEY, 1);
         editor.putLong(TEST_KEY, 2);
 
+        final PairMatcher longMatcher =
+                new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_LONG_VALUE, Long.class);
+
         verify(mMetricsFeature, times(4)).action(any(Context.class), anyInt(),
-                any(Pair.class), any(Pair.class));
+                argThat(mNamePairMatcher), argThat(longMatcher));
     }
 
     @Test
@@ -110,8 +136,40 @@
         editor.putFloat(TEST_KEY, 1);
         editor.putFloat(TEST_KEY, 2);
 
+        final PairMatcher floatMatcher =
+                new PairMatcher(FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE, Float.class);
+
         verify(mMetricsFeature, times(4)).action(any(Context.class), anyInt(),
-                any(Pair.class), any(Pair.class));
+                argThat(mNamePairMatcher), argThat(floatMatcher));
     }
 
+    private static class PairMatcher extends ArgumentMatcher<Pair<Integer, Object>> {
+
+        private final int mExpectedTag;
+        private final Class mExpectedClass;
+        private final Long mExpectedBoolean;
+
+
+        public PairMatcher(int tag, Class clazz) {
+            mExpectedTag = tag;
+            mExpectedClass = clazz;
+            mExpectedBoolean = null;
+        }
+
+        public PairMatcher(int tag, boolean bool) {
+            mExpectedTag = tag;
+            mExpectedClass = Long.class;
+            mExpectedBoolean = bool ? 1L : 0L;
+        }
+
+        @Override
+        public boolean matches(Object arg) {
+            final Pair<Integer, Object> pair = (Pair) arg;
+            boolean booleanMatch = mExpectedBoolean == null
+                    || mExpectedBoolean == pair.second;
+            return pair.first == mExpectedTag
+                    && Platform.isInstanceOfType(pair.second, mExpectedClass)
+                    && booleanMatch;
+        }
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java b/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
deleted file mode 100644
index d863143..0000000
--- a/tests/robotests/src/com/android/settings/core/lifecycle/LifecycleTest.java
+++ /dev/null
@@ -1,239 +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.core.lifecycle;
-
-import android.content.Context;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-
-import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.events.OnAttach;
-import com.android.settings.core.lifecycle.events.OnCreateOptionsMenu;
-import com.android.settings.core.lifecycle.events.OnDestroy;
-import com.android.settings.core.lifecycle.events.OnOptionsItemSelected;
-import com.android.settings.core.lifecycle.events.OnPause;
-import com.android.settings.core.lifecycle.events.OnPrepareOptionsMenu;
-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;
-import org.robolectric.annotation.Config;
-import org.robolectric.util.ActivityController;
-import org.robolectric.util.FragmentController;
-
-import static com.google.common.truth.Truth.assertThat;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class LifecycleTest {
-
-    public static class TestDialogFragment extends ObservableDialogFragment {
-
-        final TestObserver mFragObserver;
-
-        public TestDialogFragment() {
-            mFragObserver = new TestObserver();
-            mLifecycle.addObserver(mFragObserver);
-        }
-    }
-
-    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;
-
-        public TestActivity() {
-            mActObserver = new TestObserver();
-            getLifecycle().addObserver(mActObserver);
-        }
-
-    }
-
-    public static class TestObserver implements LifecycleObserver, OnAttach, OnStart, OnResume,
-            OnPause, OnStop, OnDestroy, OnCreateOptionsMenu, OnPrepareOptionsMenu,
-            OnOptionsItemSelected {
-
-        boolean mOnAttachObserved;
-        boolean mOnAttachHasContext;
-        boolean mOnStartObserved;
-        boolean mOnResumeObserved;
-        boolean mOnPauseObserved;
-        boolean mOnStopObserved;
-        boolean mOnDestroyObserved;
-        boolean mOnCreateOptionsMenuObserved;
-        boolean mOnPrepareOptionsMenuObserved;
-        boolean mOnOptionsItemSelectedObserved;
-
-        @Override
-        public void onAttach(Context context) {
-            mOnAttachObserved = true;
-            mOnAttachHasContext = context != null;
-        }
-
-        @Override
-        public void onStart() {
-            mOnStartObserved = true;
-        }
-
-        @Override
-        public void onPause() {
-            mOnPauseObserved = true;
-        }
-
-        @Override
-        public void onResume() {
-            mOnResumeObserved = true;
-        }
-
-        @Override
-        public void onStop() {
-            mOnStopObserved = true;
-        }
-
-        @Override
-        public void onDestroy() {
-            mOnDestroyObserved = true;
-        }
-
-        @Override
-        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-            mOnCreateOptionsMenuObserved = true;
-        }
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem menuItem) {
-            mOnOptionsItemSelectedObserved = true;
-            return true;
-        }
-
-        @Override
-        public void onPrepareOptionsMenu(Menu menu) {
-            mOnPrepareOptionsMenuObserved = true;
-        }
-    }
-
-    @Test
-    public void runThroughActivityLifecycles_shouldObserveEverything() {
-        ActivityController<TestActivity> ac = Robolectric.buildActivity(TestActivity.class);
-        TestActivity activity = ac.get();
-
-        ac.start();
-        assertThat(activity.mActObserver.mOnStartObserved).isTrue();
-        ac.resume();
-        assertThat(activity.mActObserver.mOnResumeObserved).isTrue();
-        activity.onCreateOptionsMenu(null);
-        assertThat(activity.mActObserver.mOnCreateOptionsMenuObserved).isTrue();
-        activity.onPrepareOptionsMenu(null);
-        assertThat(activity.mActObserver.mOnPrepareOptionsMenuObserved).isTrue();
-        activity.onOptionsItemSelected(null);
-        assertThat(activity.mActObserver.mOnOptionsItemSelectedObserved).isTrue();
-        ac.pause();
-        assertThat(activity.mActObserver.mOnPauseObserved).isTrue();
-        ac.stop();
-        assertThat(activity.mActObserver.mOnStopObserved).isTrue();
-        ac.destroy();
-        assertThat(activity.mActObserver.mOnDestroyObserved).isTrue();
-    }
-
-    @Test
-    public void runThroughDialogFragmentLifecycles_shouldObserveEverything() {
-        FragmentController<TestDialogFragment> fragmentController =
-                Robolectric.buildFragment(TestDialogFragment.class);
-        TestDialogFragment fragment = fragmentController.get();
-
-        fragmentController.attach().create().start().resume();
-        fragment.onCreateOptionsMenu(null, null);
-        fragment.onPrepareOptionsMenu(null);
-        fragment.onOptionsItemSelected(null);
-        fragmentController.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();
-        assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue();
-        assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue();
-        assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue();
-    }
-
-    @Test
-    public void runThroughFragmentLifecycles_shouldObserveEverything() {
-        FragmentController<TestFragment> fragmentController =
-                Robolectric.buildFragment(TestFragment.class);
-        TestFragment fragment = fragmentController.get();
-
-        fragmentController.attach().create().start().resume();
-        fragment.onCreateOptionsMenu(null, null);
-        fragment.onPrepareOptionsMenu(null);
-        fragment.onOptionsItemSelected(null);
-        fragmentController.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();
-        assertThat(fragment.mFragObserver.mOnCreateOptionsMenuObserved).isTrue();
-        assertThat(fragment.mFragObserver.mOnPrepareOptionsMenuObserved).isTrue();
-        assertThat(fragment.mFragObserver.mOnOptionsItemSelectedObserved).isTrue();
-    }
-
-    private static class OptionItemAccepter implements LifecycleObserver, OnOptionsItemSelected {
-        public boolean wasCalled = false;
-
-        @Override
-        public boolean onOptionsItemSelected(MenuItem menuItem) {
-            wasCalled = true;
-            return false;
-        }
-    }
-
-    @Test
-    public void onOptionItemSelectedShortCircuitsIfAnObserverHandlesTheMenuItem() {
-        FragmentController<TestFragment> fragmentController =
-                Robolectric.buildFragment(TestFragment.class);
-        TestFragment fragment = fragmentController.get();
-        OptionItemAccepter accepter = new OptionItemAccepter();
-        fragment.getLifecycle().addObserver(accepter);
-
-        fragmentController.attach().create().start().resume();
-        fragment.onCreateOptionsMenu(null, null);
-        fragment.onPrepareOptionsMenu(null);
-        fragment.onOptionsItemSelected(null);
-        fragmentController.pause().stop().destroy();
-
-        assertThat(accepter.wasCalled).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java
index e85621e..4d9c1ec 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java
@@ -24,8 +24,8 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
index 9eddd04..8ddb393 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImplTest.java
@@ -24,8 +24,8 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settingslib.SuggestionParser;
 import com.android.settingslib.drawer.Tile;
+import com.android.settingslib.suggestions.SuggestionParser;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -36,6 +36,9 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyBoolean;
@@ -153,4 +156,20 @@
                         PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                         PackageManager.DONT_KILL_APP);
     }
+
+    @Test
+    public void filterExclusiveSuggestions_shouldOnlyKeepFirst3() {
+        final List<Tile> suggestions = new ArrayList<>();
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+        suggestions.add(new Tile());
+
+        mProvider.filterExclusiveSuggestions(suggestions);
+
+        assertThat(suggestions).hasSize(3);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
new file mode 100644
index 0000000..8cbe947
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+
+import android.content.Context;
+import android.os.Bundle;
+import android.support.v7.preference.PreferenceManager;
+import android.support.v7.preference.PreferenceScreen;
+import android.view.View;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.widget.EntityHeaderController;
+import com.android.settings.widget.EntityHeaderController.ActionType;
+import com.android.settingslib.AppItem;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.util.ReflectionHelpers;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.doReturn;
+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,
+        shadows = ShadowEntityHeaderController.class)
+public class AppDataUsageTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private EntityHeaderController mHeaderController;
+
+    private AppDataUsage mFragment;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
+    }
+
+    @After
+    public void tearDown() {
+        ShadowEntityHeaderController.reset();
+    }
+
+    @Test
+    public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
+        ShadowEntityHeaderController.setUseMock(mHeaderController);
+        when(mHeaderController.setRecyclerView(any(), any())).thenReturn(mHeaderController);
+
+        mFragment = spy(new AppDataUsage());
+
+        doReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS))
+                .when(mFragment)
+                .getPreferenceManager();
+        doReturn(mock(PreferenceScreen.class)).when(mFragment).getPreferenceScreen();
+        ReflectionHelpers.setField(mFragment, "mAppItem", mock(AppItem.class));
+
+        mFragment.onViewCreated(new View(RuntimeEnvironment.application), new Bundle());
+
+        verify(mHeaderController).setButtonActions(ActionType.ACTION_NONE, ActionType.ACTION_NONE);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java b/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java
new file mode 100644
index 0000000..fd1c96b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/datausage/AppPrefLoaderTest.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.datausage;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+import android.graphics.drawable.Drawable;
+import android.support.v7.preference.Preference;
+
+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.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AppPrefLoaderTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private PackageManager mPackageManager;
+
+    private AppPrefLoader mLoader;
+
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        final ArraySet<String> pkgs = new ArraySet<>();
+        pkgs.add("pkg0");
+        pkgs.add("pkg1");
+        mLoader =
+            new AppPrefLoader(RuntimeEnvironment.application, pkgs, mPackageManager);
+    }
+
+    @Test
+    public void loadInBackground_packageNotFound_shouldReturnEmptySet()
+            throws NameNotFoundException {
+        when(mPackageManager.getApplicationInfo(anyString(), anyInt()))
+            .thenThrow(new NameNotFoundException());
+
+        ArraySet<Preference> preferences = mLoader.loadInBackground();
+        assertThat(preferences).isEmpty();
+    }
+
+    @Test
+    public void loadInBackground_shouldReturnPreference() throws NameNotFoundException {
+        ApplicationInfo info = mock(ApplicationInfo.class);
+        when(mPackageManager.getApplicationInfo(anyString(), anyInt())).thenReturn(info);
+        final Drawable drawable = mock(Drawable.class);
+        final String label = "Label1";
+        when(info.loadIcon(mPackageManager)).thenReturn(drawable);
+        when(info.loadLabel(mPackageManager)).thenReturn(label);
+
+        Preference preference = mLoader.loadInBackground().valueAt(0);
+        assertThat(preference.getTitle()).isEqualTo(label);
+        assertThat(preference.getIcon()).isEqualTo(drawable);
+        assertThat(preference.isSelectable()).isFalse();
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
index e1572ab..92ded0d 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryTest.java
@@ -25,8 +25,8 @@
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
 import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowConnectivityManager;
 import com.android.settingslib.NetworkPolicyEditor;
 
 import org.junit.Before;
@@ -160,4 +160,16 @@
 
         assertThat(keys).containsAllIn(niks);
     }
+
+    @Test
+    @Config(shadows = ShadowConnectivityManager.class)
+    public void testNonIndexableKeys_hasMobileData_restrictedAccessesAdded() {
+        ShadowConnectivityManager.setIsNetworkSupported(true);
+        List<String> keys = DataUsageSummary.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(mContext);
+
+        assertThat(keys).contains(DataUsageSummary.KEY_RESTRICT_BACKGROUND);
+        assertThat(keys).contains(DataUsageSummary.KEY_NETWORK_RESTRICTIONS);
+        ShadowConnectivityManager.setIsNetworkSupported(false);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
index 8a8c066..bd85958 100644
--- a/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/TimeChangeListenerMixinTest.java
@@ -21,9 +21,9 @@
 
 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 com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnPause;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
new file mode 100644
index 0000000..67733aa
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/DevelopmentSettingsDisabledActivityTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.development;
+
+
+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.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowToast;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class DevelopmentSettingsDisabledActivityTest {
+
+    @Test
+    public void launchActivity_shouldShowToast() {
+        Robolectric.setupActivity(DevelopmentSettingsDisabledActivity.class);
+
+        assertThat(ShadowToast.getTextOfLatestToast()).isEqualTo(
+                RuntimeEnvironment.application.getString(R.string.dev_settings_disabled_warning));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
index 5167c68..9a1a3b6 100644
--- a/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/TelephonyMonitorPreferenceControllerTest.java
@@ -134,7 +134,24 @@
         when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
                 .thenReturn(true);
         SettingsShadowSystemProperties.set(
-                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, "true");
+                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                TelephonyMonitorPreferenceController.ENABLED_STATUS);
+        SettingsShadowSystemProperties.set(
+                TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
+
+        mController.displayPreference(mScreen);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Config(shadows = {SettingsShadowSystemProperties.class})
+    @Test
+    public void displayPreference_telephonyMonitorUserEnabled_shouldCheckedPreference() {
+        when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
+                .thenReturn(true);
+        SettingsShadowSystemProperties.set(
+                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                TelephonyMonitorPreferenceController.USER_ENABLED_STATUS);
         SettingsShadowSystemProperties.set(
                 TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
 
@@ -149,7 +166,24 @@
         when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
                 .thenReturn(true);
         SettingsShadowSystemProperties.set(
-                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, "false");
+                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                TelephonyMonitorPreferenceController.DISABLED_STATUS);
+        SettingsShadowSystemProperties.set(
+                TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
+
+        mController.displayPreference(mScreen);
+
+        verify(mPreference).setChecked(false);
+    }
+
+    @Config(shadows = {SettingsShadowSystemProperties.class})
+    @Test
+    public void displayPreference_telephonyMonitorUserDisabled_shouldUncheckedPreference() {
+        when(mContext.getResources().getBoolean(R.bool.config_show_telephony_monitor))
+                .thenReturn(true);
+        SettingsShadowSystemProperties.set(
+                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                TelephonyMonitorPreferenceController.USER_DISABLED_STATUS);
         SettingsShadowSystemProperties.set(
                 TelephonyMonitorPreferenceController.BUILD_TYPE, "userdebug");
 
@@ -168,8 +202,10 @@
 
         mController.handlePreferenceTreeClick(mPreference);
 
-        assertThat(SystemProperties.getBoolean(
-                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, false)).isTrue();
+        assertThat(TelephonyMonitorPreferenceController.USER_ENABLED_STATUS.equals(
+                SystemProperties.get(
+                        TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                        TelephonyMonitorPreferenceController.DISABLED_STATUS))).isTrue();
     }
 
     @Config(shadows = {SettingsShadowSystemProperties.class})
@@ -182,8 +218,10 @@
 
         mController.handlePreferenceTreeClick(mPreference);
 
-        assertThat(SystemProperties.getBoolean(
-                TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR, false)).isFalse();
+        assertThat(TelephonyMonitorPreferenceController.USER_DISABLED_STATUS.equals(
+                SystemProperties.get(
+                        TelephonyMonitorPreferenceController.PROPERTY_TELEPHONY_MONITOR,
+                        TelephonyMonitorPreferenceController.DISABLED_STATUS))).isTrue();
     }
 
 }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
index 4475d18..8dcb7d5 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/BuildNumberPreferenceControllerTest.java
@@ -29,9 +29,9 @@
 import com.android.settings.development.DevelopmentSettings;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.search2.DatabaseIndexingManager;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceControllerTest.java
index 732ba22..02d5263 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/FirmwareVersionPreferenceControllerTest.java
@@ -22,7 +22,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
index 823e4c8..02dea50 100644
--- a/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/AutoRotatePreferenceControllerTest.java
@@ -25,9 +25,9 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowSystemSettings;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/display/DozeAlwaysOnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/DozeAlwaysOnPreferenceControllerTest.java
new file mode 100644
index 0000000..fc299c0
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/display/DozeAlwaysOnPreferenceControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowSecureSettings;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {ShadowSecureSettings.class})
+public class DozeAlwaysOnPreferenceControllerTest {
+
+    @Mock Context mContext;
+    @Mock AmbientDisplayConfiguration mConfig;
+    @Mock SwitchPreference mSwitchPreference;
+
+    DozeAlwaysOnPreferenceController mController;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mController = new DozeAlwaysOnPreferenceController(mContext, mConfig);
+    }
+
+    @Test
+    public void updateState_enabled() throws Exception {
+        when(mConfig.alwaysOnEnabled(anyInt()))
+                .thenReturn(true);
+
+        mController.updateState(mSwitchPreference);
+
+        verify(mSwitchPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_disabled() throws Exception {
+        when(mConfig.alwaysOnEnabled(anyInt()))
+                .thenReturn(false);
+
+        mController.updateState(mSwitchPreference);
+
+        verify(mSwitchPreference).setChecked(false);
+    }
+
+    @Test
+    public void onPreferenceChange_enable() throws Exception {
+        mController.onPreferenceChange(mSwitchPreference, true);
+
+        assertThat(Settings.Secure.getInt(null, Settings.Secure.DOZE_ALWAYS_ON, -1))
+            .isEqualTo(1);
+    }
+
+    @Test
+    public void onPreferenceChange_disable() throws Exception {
+        mController.onPreferenceChange(mSwitchPreference, false);
+
+        assertThat(Settings.Secure.getInt(null, Settings.Secure.DOZE_ALWAYS_ON, -1))
+            .isEqualTo(0);
+    }
+
+    @Test
+    public void isAvailable_available() throws Exception {
+        when(mConfig.alwaysOnAvailable())
+                .thenReturn(true);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_unavailable() throws Exception {
+        when(mConfig.alwaysOnAvailable())
+                .thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/display/DozePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/DozePreferenceControllerTest.java
new file mode 100644
index 0000000..a956945
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/display/DozePreferenceControllerTest.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.display;
+
+import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_AMBIENT_DISPLAY;
+
+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.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
+
+import com.android.internal.hardware.AmbientDisplayConfiguration;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.testutils.shadow.ShadowSecureSettings;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {ShadowSecureSettings.class})
+public class DozePreferenceControllerTest {
+
+    @Mock Context mContext;
+    @Mock AmbientDisplayConfiguration mConfig;
+    @Mock SwitchPreference mSwitchPreference;
+    @Mock MetricsFeatureProvider mMetricsFeatureProvider;
+
+    DozePreferenceController mController;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        mController = new DozePreferenceController(mContext, mConfig, mMetricsFeatureProvider);
+    }
+
+    @Test
+    public void updateState_enabled() throws Exception {
+        when(mConfig.pulseOnNotificationEnabled(anyInt()))
+                .thenReturn(true);
+
+        mController.updateState(mSwitchPreference);
+
+        verify(mSwitchPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_disabled() throws Exception {
+        when(mConfig.pulseOnNotificationEnabled(anyInt()))
+                .thenReturn(false);
+
+        mController.updateState(mSwitchPreference);
+
+        verify(mSwitchPreference).setChecked(false);
+    }
+
+    @Test
+    public void onPreferenceChange_enable() throws Exception {
+        mController.onPreferenceChange(mSwitchPreference, true);
+
+        assertThat(Settings.Secure.getInt(null, Settings.Secure.DOZE_ENABLED, -1))
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void onPreferenceChange_disable() throws Exception {
+        mController.onPreferenceChange(mSwitchPreference, false);
+
+        assertThat(Settings.Secure.getInt(null, Settings.Secure.DOZE_ENABLED, -1))
+                .isEqualTo(0);
+    }
+
+    @Test
+    public void isAvailable_available() throws Exception {
+        when(mConfig.pulseOnNotificationAvailable())
+                .thenReturn(true);
+
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_unavailable() throws Exception {
+        when(mConfig.pulseOnNotificationAvailable())
+                .thenReturn(false);
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_reportsEventForItsPreference() throws Exception {
+        when(mSwitchPreference.getKey()).thenReturn(DozePreferenceController.KEY_DOZE);
+
+        mController.handlePreferenceTreeClick(mSwitchPreference);
+
+        verify(mMetricsFeatureProvider).action(any(), eq(ACTION_AMBIENT_DISPLAY));
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_doesntReportEventForOtherPreferences() throws Exception {
+        when(mSwitchPreference.getKey()).thenReturn("some_other_key");
+
+        mController.handlePreferenceTreeClick(mSwitchPreference);
+
+        verifyNoMoreInteractions(mMetricsFeatureProvider);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/display/ThemePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/ThemePreferenceControllerTest.java
index 2c0f4a7..4e9cede 100644
--- a/tests/robotests/src/com/android/settings/display/ThemePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/ThemePreferenceControllerTest.java
@@ -21,20 +21,25 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.support.v7.preference.ListPreference;
+
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.display.ThemePreferenceController.OverlayManager;
+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.RuntimeEnvironment;
 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.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
@@ -45,33 +50,65 @@
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class ThemePreferenceControllerTest {
 
-    @Mock
-    private ListPreference mPreference;
-    @Mock
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     @Mock
     private PackageManager mPackageManager;
     @Mock
     private ApplicationInfo mApplicationInfo;
+    @Mock
+    private ListPreference mPreference;
 
     private ThemePreferenceController mController;
 
     @Before
     public void setUp() throws NameNotFoundException {
         MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
         when(mPackageManager.getApplicationInfo(any(), anyInt())).thenReturn(mApplicationInfo);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mContext.getString(R.string.default_theme))
+                .thenReturn(RuntimeEnvironment.application.getString(R.string.default_theme));
+
         mController = spy(new ThemePreferenceController(mContext, mock(OverlayManager.class)));
     }
 
     @Test
-    public void updateState_themeSet_shouldSetPreferenceValue() {
-        final String[] themes = {"Theme1", "Theme2"};
-        doReturn("Theme1").when(mController).getCurrentTheme();
+    public void updateState_themeSet_shouldSetPreferenceValue() throws NameNotFoundException {
+        final String pkg1 = "pkg1.theme1";
+        final String pkg2 = "pkg2.theme2";
+        final String themeLabel1 = "Theme1";
+        final String themeLabel2 = "Theme2";
+        final String[] themes = {pkg1, pkg2};
+        doReturn("pkg1.theme1").when(mController).getCurrentTheme();
         doReturn(themes).when(mController).getAvailableThemes();
+        when(mPackageManager.getApplicationInfo(anyString(), anyInt()).loadLabel(mPackageManager))
+                .thenReturn(themeLabel1)
+                .thenReturn(themeLabel2);
 
         mController.updateState(mPreference);
 
-        verify(mPreference).setValue("Theme1");
+        verify(mPreference).setSummary(themeLabel1);
+        verify(mPreference).setValue(pkg1);
+    }
+
+    @Test
+    public void updateState_themeNull_shouldSetDefaultSummary() throws NameNotFoundException {
+        final String pkg1 = "pkg1.theme1";
+        final String pkg2 = "pkg2.theme2";
+        final String themeLabel1 = "Theme1";
+        final String themeLabel2 = "Theme2";
+        final String[] themes = {pkg1, pkg2};
+        doReturn(null).when(mController).getCurrentTheme();
+        doReturn(themes).when(mController).getAvailableThemes();
+        when(mPackageManager.getApplicationInfo(anyString(), anyInt()).loadLabel(mPackageManager))
+                .thenReturn(themeLabel1)
+                .thenReturn(themeLabel2);
+
+        mController.updateState(mPreference);
+
+        verify(mPreference)
+                .setSummary(RuntimeEnvironment.application.getString(R.string.default_theme));
+        verify(mPreference).setValue(null);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java
new file mode 100644
index 0000000..74cfc7b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.fingerprint;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.verify;
+import static org.robolectric.RuntimeEnvironment.application;
+
+import android.content.ComponentName;
+import android.content.Intent;
+import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
+import android.os.CancellationSignal;
+import android.widget.Button;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.password.IFingerprintManager;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settings.testutils.shadow.ShadowEventLogWriter;
+import com.android.settings.testutils.shadow.ShadowUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.Shadows;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowActivity;
+import org.robolectric.shadows.ShadowActivity.IntentForResult;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(
+        manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowResources.class,
+                SettingsShadowResources.SettingsShadowTheme.class,
+                ShadowDynamicIndexableContentMonitor.class,
+                ShadowEventLogWriter.class,
+                ShadowUtils.class
+        })
+public class FingerprintEnrollFindSensorTest {
+
+    @Mock
+    private IFingerprintManager mFingerprintManager;
+
+    private FingerprintEnrollFindSensor mActivity;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowUtils.setFingerprintManager(mFingerprintManager);
+
+        RuntimeEnvironment.getAppResourceLoader().getResourceIndex();
+
+        mActivity = Robolectric.buildActivity(
+                FingerprintEnrollFindSensor.class,
+                new Intent()
+                        // Set the challenge token so the confirm screen will not be shown
+                        .putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, new byte[0]))
+                .setup().get();
+    }
+
+    @After
+    public void tearDown() {
+        ShadowUtils.reset();
+    }
+
+    @Test
+    public void clickNextAndFingerprint_shouldNotCrash() {
+        ArgumentCaptor<EnrollmentCallback> callbackCaptor =
+                ArgumentCaptor.forClass(EnrollmentCallback.class);
+        verify(mFingerprintManager).enroll(
+                any(byte[].class),
+                any(CancellationSignal.class),
+                anyInt(),
+                anyInt(),
+                callbackCaptor.capture());
+
+        Button nextButton = mActivity.findViewById(R.id.next_button);
+        nextButton.performClick();
+        callbackCaptor.getValue().onEnrollmentProgress(123);
+        nextButton.performClick();
+
+        ShadowActivity shadowActivity = Shadows.shadowOf(mActivity);
+        IntentForResult startedActivity =
+                shadowActivity.getNextStartedActivityForResult();
+        assertThat(startedActivity).named("Next activity 1").isNotNull();
+        assertThat(startedActivity.intent.getComponent())
+                .isEqualTo(new ComponentName(application, FingerprintEnrollEnrolling.class));
+
+        // Should only start one next activity
+        assertThat(shadowActivity.getNextStartedActivityForResult()).named("Next activity 2")
+                .isNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 69bd767..c5fcbf5 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -16,41 +16,30 @@
 
 package com.android.settings.fuelgauge;
 
-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.anyLong;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-
 import android.app.Activity;
-import android.app.Fragment;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
 import android.os.BatteryStats;
 import android.os.Bundle;
-import android.view.View;
+import android.support.v7.widget.RecyclerView;
 
 import com.android.internal.os.BatterySipper;
 import com.android.internal.os.BatteryStatsHelper;
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.applications.AppHeaderController;
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -64,8 +53,21 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.util.ReflectionHelpers;
 
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.anyLong;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = ShadowEntityHeaderController.class)
 public class AdvancedPowerUsageDetailTest {
     private static final String APP_LABEL = "app label";
     private static final String SUMMARY = "summary";
@@ -85,7 +87,7 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Activity mActivity;
     @Mock
-    private AppHeaderController mAppHeaderController;
+    private EntityHeaderController mEntityHeaderController;
     @Mock
     private LayoutPreference mHeaderPreference;
     @Mock
@@ -121,18 +123,19 @@
         doReturn(APP_LABEL).when(mBundle).getString(anyString());
         doReturn(mBundle).when(mFragment).getArguments();
 
-        doReturn(mAppHeaderController).when(mFeatureFactory.applicationFeatureProvider)
-                .newAppHeaderController(any(Fragment.class), any(View.class));
-        doReturn(mAppHeaderController).when(mAppHeaderController).setButtonActions(anyInt(),
-                anyInt());
-        doReturn(mAppHeaderController).when(mAppHeaderController).setIcon(any(Drawable.class));
-        doReturn(mAppHeaderController).when(mAppHeaderController).setIcon(any(
+        ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
+        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+                .setRecyclerView(any(RecyclerView.class), any(Lifecycle.class));
+        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+                .setButtonActions(anyInt(), anyInt());
+        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+                .setIcon(any(Drawable.class));
+        doReturn(mEntityHeaderController).when(mEntityHeaderController).setIcon(any(
                 ApplicationsState.AppEntry.class));
-        doReturn(mAppHeaderController).when(mAppHeaderController).setLabel(anyString());
-        doReturn(mAppHeaderController).when(mAppHeaderController).setLabel(any(
-                ApplicationsState.AppEntry.class));
-        doReturn(mAppHeaderController).when(mAppHeaderController).setSummary(anyString());
-
+        doReturn(mEntityHeaderController).when(mEntityHeaderController).setLabel(anyString());
+        doReturn(mEntityHeaderController).when(mEntityHeaderController)
+                .setLabel(any(ApplicationsState.AppEntry.class));
+        doReturn(mEntityHeaderController).when(mEntityHeaderController).setSummary(anyString());
 
         doReturn(UID).when(mBatterySipper).getUid();
         doReturn(APP_LABEL).when(mBatteryEntry).getLabel();
@@ -166,13 +169,18 @@
                 captor.capture(), anyInt(), any(), any());
     }
 
+    @After
+    public void reset() {
+        ShadowEntityHeaderController.reset();
+    }
+
     @Test
     public void testInitHeader_NoAppEntry_BuildByBundle() {
         mFragment.mAppEntry = null;
         mFragment.initHeader();
 
-        verify(mAppHeaderController).setIcon(any(Drawable.class));
-        verify(mAppHeaderController).setLabel(APP_LABEL);
+        verify(mEntityHeaderController).setIcon(any(Drawable.class));
+        verify(mEntityHeaderController).setLabel(APP_LABEL);
     }
 
     @Test
@@ -187,9 +195,9 @@
         mFragment.mAppEntry = mAppEntry;
         mFragment.initHeader();
 
-        verify(mAppHeaderController).setIcon(mAppEntry);
-        verify(mAppHeaderController).setLabel(mAppEntry);
-        verify(mAppHeaderController).setIsInstantApp(false);
+        verify(mEntityHeaderController).setIcon(mAppEntry);
+        verify(mEntityHeaderController).setLabel(mAppEntry);
+        verify(mEntityHeaderController).setIsInstantApp(false);
     }
 
     @Test
@@ -204,10 +212,10 @@
         mFragment.mAppEntry = mAppEntry;
         mFragment.initHeader();
 
-        verify(mAppHeaderController).setIcon(mAppEntry);
-        verify(mAppHeaderController).setLabel(mAppEntry);
-        verify(mAppHeaderController).setIsInstantApp(true);
-        verify(mAppHeaderController).setSummary((CharSequence) null);
+        verify(mEntityHeaderController).setIcon(mAppEntry);
+        verify(mEntityHeaderController).setLabel(mAppEntry);
+        verify(mEntityHeaderController).setIsInstantApp(true);
+        verify(mEntityHeaderController).setSummary((CharSequence) null);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
index a341d83..2008afd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AppButtonsPreferenceControllerTest.java
@@ -45,12 +45,12 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.enterprise.DevicePolicyManagerWrapper;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
index 9656381..2341a64 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
@@ -19,8 +19,8 @@
 import android.os.PowerManager;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.widget.MasterSwitchPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index fd89558..03759ec 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -18,6 +18,7 @@
 import android.content.Context;
 import android.os.BatteryStats;
 import android.os.Process;
+import android.text.format.DateUtils;
 
 import com.android.internal.os.BatterySipper;
 import com.android.settings.SettingsRobolectricTestRunner;
@@ -47,8 +48,11 @@
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyLong;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.spy;
 
@@ -62,6 +66,8 @@
     private static final long TIME_STATE_TOP_SLEEPING = 2500 * UNIT;
     private static final long TIME_STATE_FOREGROUND = 3000 * UNIT;
     private static final long TIME_STATE_BACKGROUND = 6000 * UNIT;
+    private static final long TIME_FOREGROUND_ACTIVITY_ZERO = 0;
+    private static final long TIME_FOREGROUND_ACTIVITY = 100 * DateUtils.MINUTE_IN_MILLIS;
 
     private static final int UID = 123;
     private static final long TIME_EXPECTED_FOREGROUND = 1500;
@@ -71,6 +77,7 @@
     private static final double BATTERY_SYSTEM_USAGE = 600;
     private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
     private static final double BATTERY_UNACCOUNTED_USAGE = 700;
+    private static final double BATTERY_APP_USAGE = 100;
     private static final double TOTAL_BATTERY_USAGE = 1000;
     private static final double HIDDEN_USAGE = 200;
     private static final int DISCHARGE_AMOUNT = 80;
@@ -180,11 +187,12 @@
         sippers.add(mUnaccountedBatterySipper);
         when(mProvider.isTypeSystem(mSystemBatterySipper))
                 .thenReturn(true);
+        doNothing().when(mBatteryUtils).smearScreenBatterySipper(any(), any());
 
         final double totalUsage = mBatteryUtils.removeHiddenBatterySippers(sippers);
+
         assertThat(sippers).containsExactly(mNormalBatterySipper);
-        assertThat(totalUsage).isWithin(PRECISION).of(
-                BATTERY_SCREEN_USAGE + BATTERY_SYSTEM_USAGE + BATTERY_UNACCOUNTED_USAGE);
+        assertThat(totalUsage).isWithin(PRECISION).of(BATTERY_SYSTEM_USAGE);
     }
 
     @Test
@@ -206,12 +214,6 @@
     }
 
     @Test
-    public void testShouldHideSipper_TypeWifi_ReturnTrue() {
-        mNormalBatterySipper.drainType = BatterySipper.DrainType.WIFI;
-        assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
-    }
-
-    @Test
     public void testShouldHideSipper_TypeCell_ReturnTrue() {
         mNormalBatterySipper.drainType = BatterySipper.DrainType.CELL;
         assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
@@ -224,12 +226,6 @@
     }
 
     @Test
-    public void testShouldHideSipper_TypeBluetooth_ReturnTrue() {
-        mNormalBatterySipper.drainType = BatterySipper.DrainType.BLUETOOTH;
-        assertThat(mBatteryUtils.shouldHideSipper(mNormalBatterySipper)).isTrue();
-    }
-
-    @Test
     public void testShouldHideSipper_TypeSystem_ReturnTrue() {
         mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
         when(mNormalBatterySipper.getUid()).thenReturn(Process.ROOT_UID);
@@ -259,4 +255,43 @@
                 HIDDEN_USAGE, DISCHARGE_AMOUNT))
                 .isWithin(PRECISION).of(PERCENT_SYSTEM_USAGE);
     }
+
+    @Test
+    public void testSmearScreenBatterySipper() {
+        final BatterySipper sipperNull = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY_ZERO,
+                BATTERY_APP_USAGE, 0 /* uid */, true /* isUidNull */);
+        final BatterySipper sipperBg = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY_ZERO,
+                BATTERY_APP_USAGE, 1 /* uid */, false /* isUidNull */);
+        final BatterySipper sipperFg = createTestSmearBatterySipper(TIME_FOREGROUND_ACTIVITY,
+                BATTERY_APP_USAGE, 2 /* uid */, false /* isUidNull */);
+
+        final List<BatterySipper> sippers = new ArrayList<>();
+        sippers.add(sipperNull);
+        sippers.add(sipperBg);
+        sippers.add(sipperFg);
+
+        mBatteryUtils.smearScreenBatterySipper(sippers, mScreenBatterySipper);
+
+        assertThat(sipperNull.totalPowerMah).isWithin(PRECISION).of(BATTERY_APP_USAGE);
+        assertThat(sipperBg.totalPowerMah).isWithin(PRECISION).of(BATTERY_APP_USAGE);
+        assertThat(sipperFg.totalPowerMah).isWithin(PRECISION).of(
+                BATTERY_APP_USAGE + BATTERY_SCREEN_USAGE);
+    }
+
+    private BatterySipper createTestSmearBatterySipper(long activityTime, double totalPowerMah,
+            int uidCode, boolean isUidNull) {
+        final BatterySipper sipper = mock(BatterySipper.class);
+        sipper.drainType = BatterySipper.DrainType.APP;
+        sipper.totalPowerMah = totalPowerMah;
+        doReturn(uidCode).when(sipper).getUid();
+        if (!isUidNull) {
+            final BatteryStats.Uid uid = mock(BatteryStats.Uid.class, RETURNS_DEEP_STUBS);
+            doReturn(activityTime).when(mBatteryUtils).getForegroundActivityTotalTimeMs(eq(uid),
+                    anyLong());
+            doReturn(uidCode).when(uid).getUid();
+            sipper.uidObj = uid;
+        }
+
+        return sipper;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerGaugePreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerGaugePreferenceTest.java
index d82faf4..72fa511 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerGaugePreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerGaugePreferenceTest.java
@@ -35,8 +35,8 @@
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.widget.MasterSwitchPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 93bd023..685e921 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -69,6 +69,7 @@
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyLong;
 import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
@@ -173,6 +174,7 @@
         mFragment.initFeatureProvider();
         mBatteryMeterView = new BatteryMeterView(mRealContext);
         mBatteryMeterView.mDrawable = new BatteryMeterView.BatteryMeterDrawable(mRealContext, 0);
+        doNothing().when(mFragment).restartBatteryStatsLoader();
 
         when(mFragment.getActivity()).thenReturn(mSettingsActivity);
         when(mAdditionalBatteryInfoMenu.getItemId())
@@ -323,10 +325,10 @@
     @Test
     public void testSetUsageSummary_timeMoreThanOneMinute_setSummary() {
         final long usageTimeMs = 2 * DateUtils.MINUTE_IN_MILLIS;
-        doReturn(mRealContext.getText(R.string.battery_used_for)).when(mFragment).getText(
-                R.string.battery_used_for);
+        doReturn(mRealContext.getText(R.string.battery_screen_usage)).when(mFragment).getText(
+                R.string.battery_screen_usage);
         doReturn(mRealContext).when(mFragment).getContext();
-        final String expectedSummary = "Used for 2m";
+        final String expectedSummary = "Screen usage 2m";
 
         mFragment.setUsageSummary(mPreference, usageTimeMs);
 
@@ -496,6 +498,18 @@
     }
 
     @Test
+    public void testOnCreate_BatteryPredictionSkippedWhenDisabled() {
+        PowerUsageFeatureProvider provider = mFeatureFactory.getPowerUsageFeatureProvider(mContext);
+        when(provider.isEnhancedBatteryPredictionEnabled(any())).thenReturn(false);
+        mFragment.mPowerFeatureProvider = provider;
+        doReturn(mLoaderManager).when(mFragment).getLoaderManager();
+        mFragment.initializeBatteryEstimateLoader();
+
+        verify(mLoaderManager, never()).initLoader(eq(PowerUsageSummary.BATTERY_ESTIMATE_LOADER),
+                eq(Bundle.EMPTY), any());
+    }
+
+    @Test
     public void testInitAnomalyDetectionIfPossible_detectionEnabled_init() {
         when(mFeatureFactory.powerUsageFeatureProvider.isAnomalyDetectionEnabled()).thenReturn(
                 true);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicyTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicyTest.java
new file mode 100644
index 0000000..bb8bac5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDetectionPolicyTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.anomaly;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.text.format.DateUtils;
+import android.util.KeyValueListParser;
+
+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.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AnomalyDetectionPolicyTest {
+    private static final String ANOMALY_DETECTION_CONSTANTS_VALUE = "anomaly_detection_enabled=true"
+            + ",wakelock_enabled=false"
+            + ",wakelock_threshold=3000";
+    private Context mContext;
+    private KeyValueListParserWrapper mKeyValueListParserWrapper;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mKeyValueListParserWrapper = spy(
+                new KeyValueListParserWrapperImpl(new KeyValueListParser(',')));
+    }
+
+    @Test
+    public void testInit_containsDataFromSettings() {
+        Settings.Global.putString(mContext.getContentResolver(),
+                Settings.Global.ANOMALY_DETECTION_CONSTANTS, ANOMALY_DETECTION_CONSTANTS_VALUE);
+        // Mock it to avoid noSuchMethodError
+        doReturn(true).when(mKeyValueListParserWrapper).getBoolean(
+                AnomalyDetectionPolicy.KEY_ANOMALY_DETECTION_ENABLED, true);
+        doReturn(false).when(mKeyValueListParserWrapper).getBoolean(
+                AnomalyDetectionPolicy.KEY_WAKELOCK_DETECTION_ENABLED, true);
+
+        AnomalyDetectionPolicy anomalyDetectionPolicy = new AnomalyDetectionPolicy(mContext,
+                mKeyValueListParserWrapper);
+
+        assertThat(anomalyDetectionPolicy.anomalyDetectionEnabled).isTrue();
+        assertThat(anomalyDetectionPolicy.wakeLockDetectionEnabled).isFalse();
+        assertThat(anomalyDetectionPolicy.wakeLockThreshold).isEqualTo(3000);
+    }
+
+    @Test
+    public void testInit_containsDefaultData() {
+        Settings.Global.putString(mContext.getContentResolver(),
+                Settings.Global.ANOMALY_DETECTION_CONSTANTS, "");
+        // Mock it to avoid noSuchMethodError
+        doReturn(true).when(mKeyValueListParserWrapper).getBoolean(anyString(), eq(true));
+        doReturn(false).when(mKeyValueListParserWrapper).getBoolean(anyString(), eq(false));
+
+        AnomalyDetectionPolicy anomalyDetectionPolicy = new AnomalyDetectionPolicy(mContext,
+                mKeyValueListParserWrapper);
+
+        assertThat(anomalyDetectionPolicy.anomalyDetectionEnabled).isTrue();
+        assertThat(anomalyDetectionPolicy.wakeLockDetectionEnabled).isTrue();
+        assertThat(anomalyDetectionPolicy.wakeLockThreshold).isEqualTo(DateUtils.HOUR_IN_MILLIS);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
index 9862f83..e83e237 100644
--- a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
@@ -52,12 +52,14 @@
     private FakeFeatureFactory mFactory;
     private AssistGesturePreferenceController mController;
 
+    private static final String KEY_ASSIST = "gesture_assist";
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         FakeFeatureFactory.setupForTest(mContext);
         mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
-        mController = new AssistGesturePreferenceController(mContext, null);
+        mController = new AssistGesturePreferenceController(mContext, null, KEY_ASSIST);
     }
 
     @Test
@@ -77,7 +79,7 @@
         // Set the setting to be enabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 1);
-        mController = new AssistGesturePreferenceController(context, null);
+        mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
 
         assertThat(mController.isSwitchPrefEnabled()).isTrue();
     }
@@ -87,7 +89,7 @@
         // Set the setting to be disabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), ASSIST_GESTURE_ENABLED, 0);
-        mController = new AssistGesturePreferenceController(context, null);
+        mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST);
 
         assertThat(mController.isSwitchPrefEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
index bdb3522..d7961e3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapPowerPreferenceControllerTest.java
@@ -47,11 +47,12 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private PreferenceScreen mScreen;
     private DoubleTapPowerPreferenceController mController;
+    private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power";
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mController = new DoubleTapPowerPreferenceController(mContext, null);
+        mController = new DoubleTapPowerPreferenceController(mContext, null, KEY_DOUBLE_TAP_POWER);
     }
 
     @Test
@@ -78,7 +79,7 @@
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(),
                 CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 0);
-        mController = new DoubleTapPowerPreferenceController(context, null);
+        mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isSwitchPrefEnabled()).isTrue();
     }
@@ -89,7 +90,7 @@
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(),
                 CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED, 1);
-        mController = new DoubleTapPowerPreferenceController(context, null);
+        mController = new DoubleTapPowerPreferenceController(context, null, KEY_DOUBLE_TAP_POWER);
 
         assertThat(mController.isSwitchPrefEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
index adf8b75..442d11d 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTapScreenPreferenceControllerTest.java
@@ -46,11 +46,13 @@
     private AmbientDisplayConfiguration mAmbientDisplayConfiguration;
     private DoubleTapScreenPreferenceController mController;
 
+    private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen";
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mController = new DoubleTapScreenPreferenceController(
-                mContext, null, mAmbientDisplayConfiguration, 0);
+                mContext, null, mAmbientDisplayConfiguration, 0, KEY_DOUBLE_TAP_SCREEN);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
index 9bf6655..8393fc3 100644
--- a/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/DoubleTwistPreferenceControllerTest.java
@@ -53,11 +53,12 @@
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private SensorManager mSensorManager;
     private DoubleTwistPreferenceController mController;
+    private static final String KEY_DOUBLE_TWIST = "gesture_double_twist";
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mController = new DoubleTwistPreferenceController(mContext, null);
+        mController = new DoubleTwistPreferenceController(mContext, null, KEY_DOUBLE_TWIST);
     }
 
     @Test
@@ -98,7 +99,7 @@
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(),
                 CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 1);
-        mController = new DoubleTwistPreferenceController(context, null);
+        mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
 
         assertThat(mController.isSwitchPrefEnabled()).isTrue();
     }
@@ -109,7 +110,7 @@
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(),
                 CAMERA_DOUBLE_TWIST_TO_FLIP_ENABLED, 0);
-        mController = new DoubleTwistPreferenceController(context, null);
+        mController = new DoubleTwistPreferenceController(context, null, KEY_DOUBLE_TWIST);
 
         assertThat(mController.isSwitchPrefEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/GesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/GesturePreferenceControllerTest.java
index 3dc6892..74de5d0 100644
--- a/tests/robotests/src/com/android/settings/gestures/GesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/GesturePreferenceControllerTest.java
@@ -23,8 +23,8 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.widget.VideoPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
index 9dce074..46c0f65 100644
--- a/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PIckupGesturePreferenceControllerTest.java
@@ -47,11 +47,13 @@
 
     private PickupGesturePreferenceController mController;
 
+    private static final String KEY_PICK_UP = "gesture_pick_up";
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mController = new PickupGesturePreferenceController(
-                mContext, null, mAmbientDisplayConfiguration, 0);
+                mContext, null, mAmbientDisplayConfiguration, 0, KEY_PICK_UP);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
index e909667..cf26cb2 100644
--- a/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/SwipeToNotificationPreferenceControllerTest.java
@@ -45,11 +45,12 @@
     private Context mContext;
 
     private SwipeToNotificationPreferenceController mController;
+    private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint";
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
-        mController = new SwipeToNotificationPreferenceController(mContext, null);
+        mController = new SwipeToNotificationPreferenceController(mContext, null, KEY_SWIPE_DOWN);
     }
 
     @Test
@@ -75,7 +76,7 @@
         // Set the setting to be enabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 1);
-        mController = new SwipeToNotificationPreferenceController(context, null);
+        mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
 
         assertThat(mController.isSwitchPrefEnabled()).isTrue();
     }
@@ -85,7 +86,7 @@
         // Set the setting to be disabled.
         final Context context = ShadowApplication.getInstance().getApplicationContext();
         Settings.System.putInt(context.getContentResolver(), SYSTEM_NAVIGATION_KEYS_ENABLED, 0);
-        mController = new SwipeToNotificationPreferenceController(context, null);
+        mController = new SwipeToNotificationPreferenceController(context, null, KEY_SWIPE_DOWN);
 
         assertThat(mController.isSwitchPrefEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
index ac6c78b..195e007 100644
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
@@ -16,13 +16,6 @@
 
 package com.android.settings.language;
 
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -41,10 +34,12 @@
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.core.PreferenceController;
-import com.android.settings.core.lifecycle.Lifecycle;
-import com.android.settings.core.lifecycle.LifecycleObserver;
 import com.android.settings.dashboard.SummaryLoader;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.ShadowSecureSettings;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -52,11 +47,21 @@
 import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
 import java.util.ArrayList;
 import java.util.List;
 
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class LanguageAndInputSettingsTest {
@@ -80,6 +85,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
         when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mock(UserManager.class));
         when(mContext.getSystemService(Context.INPUT_SERVICE)).thenReturn(mock(InputManager.class));
         when(mContext.getSystemService(Context.INPUT_SERVICE)).thenReturn(mIm);
@@ -145,6 +151,37 @@
         verify(loader).setSummary(provider, null);
     }
 
+    @Test
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = spy(RuntimeEnvironment.application);
+        //(InputManager) context.getSystemService(Context.INPUT_SERVICE);
+        InputManager manager = mock(InputManager.class);
+        when(manager.getInputDeviceIds()).thenReturn(new int[]{});
+        doReturn(manager).when(context).getSystemService(Context.INPUT_SERVICE);
+        final List<String> niks = LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new LanguageAndInputSettings()).getPreferenceScreenResId();
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+        assertThat(keys).containsAllIn(niks);
+    }
+
+    @Test
+    public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() {
+        final Context context = RuntimeEnvironment.application;
+        final LanguageAndInputSettings fragment = new LanguageAndInputSettings();
+        final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context,
+                fragment.getPreferenceScreenResId());
+        final List<String> preferenceKeys = new ArrayList<>();
+
+        for (PreferenceController controller : fragment.getPreferenceControllers(context)) {
+            preferenceKeys.add(controller.getPreferenceKey());
+        }
+
+        assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys);
+    }
+
     /**
      * Test fragment to expose lifecycle and context so we can verify behavior for observables.
      */
diff --git a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java
index 882a9ab..f87f18b 100644
--- a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java
@@ -27,8 +27,8 @@
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
-import com.android.settings.core.lifecycle.Lifecycle;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
index 1ae40aa..70872ee 100644
--- a/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkPreferenceControllerTest.java
@@ -26,7 +26,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
index d1c3207..e7f4968 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkDashboardFragmentTest.java
@@ -19,15 +19,18 @@
 import android.provider.SearchIndexableResource;
 import android.view.Menu;
 
+import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
+import com.android.settings.dashboard.SummaryLoader;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settingslib.drawer.CategoryKey;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
@@ -38,16 +41,23 @@
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Matchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.when;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class NetworkDashboardFragmentTest {
 
+    @Mock
+    private Context mContext;
+
     private NetworkDashboardFragment mFragment;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mFragment = new NetworkDashboardFragment();
     }
 
@@ -89,4 +99,58 @@
 
         assertThat(keys).containsAllIn(niks);
     }
-}
+
+    @Test
+    public void testSummaryProvider_hasMobileAndHotspot_shouldReturnMobileSummary() {
+        final MobileNetworkPreferenceController mobileNetworkPreferenceController =
+                mock(MobileNetworkPreferenceController.class);
+        final TetherPreferenceController tetherPreferenceController =
+                mock(TetherPreferenceController.class);
+
+        final SummaryLoader summaryLoader = mock(SummaryLoader.class);
+        final SummaryLoader.SummaryProvider provider =
+                new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
+                        mobileNetworkPreferenceController, tetherPreferenceController);
+
+        provider.setListening(false);
+
+        verifyZeroInteractions(summaryLoader);
+
+        when(mobileNetworkPreferenceController.isAvailable()).thenReturn(true);
+        when(tetherPreferenceController.isAvailable()).thenReturn(true);
+
+        provider.setListening(true);
+
+        verify(mContext).getString(R.string.wifi_settings_title);
+        verify(mContext).getString(R.string.network_dashboard_summary_data_usage);
+        verify(mContext).getString(R.string.network_dashboard_summary_hotspot);
+        verify(mContext).getString(R.string.network_dashboard_summary_mobile);
+        verify(mContext, times(3)).getString(R.string.join_many_items_middle, null, null);
+    }
+
+    @Test
+    public void testSummaryProvider_noMobileOrHotspot_shouldReturnSimpleSummary() {
+        final MobileNetworkPreferenceController mobileNetworkPreferenceController =
+                mock(MobileNetworkPreferenceController.class);
+        final TetherPreferenceController tetherPreferenceController =
+                mock(TetherPreferenceController.class);
+
+        final SummaryLoader summaryLoader = mock(SummaryLoader.class);
+        final SummaryLoader.SummaryProvider provider =
+                new NetworkDashboardFragment.SummaryProvider(mContext, summaryLoader,
+                        mobileNetworkPreferenceController, tetherPreferenceController);
+
+        provider.setListening(false);
+
+        verifyZeroInteractions(summaryLoader);
+
+        when(mobileNetworkPreferenceController.isAvailable()).thenReturn(false);
+        when(tetherPreferenceController.isAvailable()).thenReturn(false);
+
+        provider.setListening(true);
+
+        verify(mContext).getString(R.string.wifi_settings_title);
+        verify(mContext).getString(R.string.network_dashboard_summary_data_usage);
+        verify(mContext).getString(R.string.join_many_items_middle, null, null);
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/network/VpnPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/VpnPreferenceControllerTest.java
index 2a0b873..27baa1b 100644
--- a/tests/robotests/src/com/android/settings/network/VpnPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/VpnPreferenceControllerTest.java
@@ -27,7 +27,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/notification/BadgingNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BadgingNotificationPreferenceControllerTest.java
new file mode 100644
index 0000000..618574c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/BadgingNotificationPreferenceControllerTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
+import android.support.v7.preference.TwoStatePreference;
+
+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.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+import static android.provider.Settings.Secure.NOTIFICATION_BADGING;
+import static org.mockito.Mockito.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(RobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BadgingNotificationPreferenceControllerTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private PreferenceScreen mScreen;
+
+    private BadgingNotificationPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mController = new BadgingNotificationPreferenceController(mContext);
+    }
+
+    @Test
+    public void display_configIsTrue_shouldDisplay() {
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_notificationBadging))
+                .thenReturn(true);
+        mController.displayPreference(mScreen);
+
+        verify(mScreen, never()).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void display_configIsFalse_shouldNotDisplay() {
+        when(mContext.getResources().
+                getBoolean(com.android.internal.R.bool.config_notificationBadging))
+                .thenReturn(false);
+        final Preference preference = mock(Preference.class);
+        when(mScreen.getPreferenceCount()).thenReturn(1);
+        when(mScreen.getPreference(0)).thenReturn(preference);
+        when(preference.getKey()).thenReturn(mController.getPreferenceKey());
+
+        mController.displayPreference(mScreen);
+
+        verify(mScreen).removePreference(any(Preference.class));
+    }
+
+    @Test
+    public void updateState_preferenceSetCheckedWhenSettingIsOn() {
+        final TwoStatePreference preference = mock(TwoStatePreference.class);
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        Settings.Secure.putInt(context.getContentResolver(), NOTIFICATION_BADGING, 1);
+
+        mController = new BadgingNotificationPreferenceController(context);
+        mController.updateState(preference);
+
+        verify(preference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceSetUncheckedWhenSettingIsOff() {
+        final TwoStatePreference preference = mock(TwoStatePreference.class);
+        final Context context = ShadowApplication.getInstance().getApplicationContext();
+        Settings.Secure.putInt(context.getContentResolver(), NOTIFICATION_BADGING, 0);
+
+        mController = new BadgingNotificationPreferenceController(context);
+        mController.updateState(preference);
+
+        verify(preference).setChecked(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
index 25581b9..8bcb5b2 100644
--- a/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/SettingPrefControllerTest.java
@@ -25,7 +25,7 @@
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
new file mode 100644
index 0000000..547117b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/SoundSettingsTest.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import android.media.AudioManager;
+import android.os.UserManager;
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowAudioHelper;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class SoundSettingsTest {
+
+    @Test
+    @Config( shadows = {
+            ShadowUserManager.class,
+            ShadowAudioHelper.class,
+    })
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = spy(RuntimeEnvironment.application);
+        AudioManager audioManager = mock(AudioManager.class);
+        doReturn(audioManager).when(context).getSystemService(Context.AUDIO_SERVICE);
+
+        UserManager userManager = mock(UserManager.class);
+        when(userManager.isAdminUser()).thenReturn(false);
+        doReturn(userManager).when(context).getSystemService(Context.USER_SERVICE);
+
+        final List<String> niks = SoundSettings.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new SoundSettings()).getPreferenceScreenResId();
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+        keys.addAll(XmlTestUtils.getKeysFromPreferenceXml(context,
+                R.xml.zen_mode_settings));
+        // Add keys with hidden resources
+        keys.add("alarm_volume");
+        keys.add("ring_volume");
+        keys.add("notification_volume");
+
+        assertThat(keys).containsAllIn(niks);
+    }
+}
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java
new file mode 100644
index 0000000..589e2df
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockGenericControllerTest.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.password;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.doReturn;
+import static org.robolectric.RuntimeEnvironment.application;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.ComponentName;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+
+import org.junit.After;
+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 java.util.Arrays;
+import java.util.regex.Pattern;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(
+        manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowResources.class
+        })
+public class ChooseLockGenericControllerTest {
+
+    private ChooseLockGenericController mController;
+
+    @Mock
+    private ManagedLockPasswordProvider mManagedLockPasswordProvider;
+
+    @Mock
+    private DevicePolicyManager mDevicePolicyManager;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        mController = new ChooseLockGenericController(
+                application,
+                0 /* userId */,
+                mDevicePolicyManager,
+                mManagedLockPasswordProvider);
+        SettingsShadowResources.overrideResource(R.bool.config_hide_none_security_option, false);
+        SettingsShadowResources.overrideResource(R.bool.config_hide_swipe_security_option, false);
+    }
+
+    @After
+    public void tearDown() {
+        SettingsShadowResources.reset();
+    }
+
+    @Test
+    public void isScreenLockVisible_shouldRespectResourceConfig() {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            // All locks except managed defaults to visible
+            assertThat(mController.isScreenLockVisible(lock)).named(lock + " visible")
+                    .isEqualTo(lock != ScreenLockType.MANAGED);
+        }
+
+        SettingsShadowResources.overrideResource(R.bool.config_hide_none_security_option, true);
+        SettingsShadowResources.overrideResource(R.bool.config_hide_swipe_security_option, true);
+        assertThat(mController.isScreenLockVisible(ScreenLockType.NONE)).named("NONE visible")
+                .isFalse();
+        assertThat(mController.isScreenLockVisible(ScreenLockType.SWIPE)).named("SWIPE visible")
+                .isFalse();
+    }
+
+    @Test
+    public void isScreenLockVisible_notCurrentUser_shouldHideSwipe() {
+        mController = new ChooseLockGenericController(application, 1 /* userId */);
+        assertThat(mController.isScreenLockVisible(ScreenLockType.SWIPE)).named("SWIPE visible")
+                .isFalse();
+    }
+
+    @Test
+    public void isScreenLockVisible_managedPasswordChoosable_shouldShowManaged() {
+        doReturn(true).when(mManagedLockPasswordProvider).isManagedPasswordChoosable();
+
+        assertThat(mController.isScreenLockVisible(ScreenLockType.MANAGED)).named("MANAGED visible")
+                .isTrue();
+    }
+
+    @Test
+    public void isScreenLockEnabled_lowerQuality_shouldReturnFalse() {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockEnabled(lock, lock.maxQuality + 1))
+                    .named(lock + " enabled")
+                    .isFalse();
+        }
+    }
+
+    @Test
+    public void isScreenLockEnabled_equalQuality_shouldReturnTrue() {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockEnabled(lock, lock.defaultQuality))
+                    .named(lock + " enabled")
+                    .isTrue();
+        }
+    }
+
+    @Test
+    public void isScreenLockEnabled_higherQuality_shouldReturnTrue() {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockEnabled(lock, lock.maxQuality - 1))
+                    .named(lock + " enabled")
+                    .isTrue();
+        }
+    }
+
+    @Test
+    public void isScreenLockDisabledByAdmin_lowerQuality_shouldReturnTrue() {
+        doReturn(true).when(mManagedLockPasswordProvider).isManagedPasswordChoosable();
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockDisabledByAdmin(lock, lock.maxQuality + 1))
+                    .named(lock + " disabledByAdmin")
+                    .isTrue();
+        }
+    }
+
+    @Test
+    public void isScreenLockDisabledByAdmin_equalQuality_shouldReturnFalse() {
+        doReturn(true).when(mManagedLockPasswordProvider).isManagedPasswordChoosable();
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockDisabledByAdmin(lock, lock.maxQuality))
+                    .named(lock + " disabledByAdmin")
+                    .isFalse();
+        }
+    }
+
+    @Test
+    public void isScreenLockDisabledByAdmin_higherQuality_shouldReturnFalse() {
+        doReturn(true).when(mManagedLockPasswordProvider).isManagedPasswordChoosable();
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.isScreenLockDisabledByAdmin(lock, lock.maxQuality - 1))
+                    .named(lock + " disabledByAdmin")
+                    .isFalse();
+        }
+    }
+
+    @Test
+    public void isScreenLockDisabledByAdmin_managedNotChoosable_shouldReturnTrue() {
+        doReturn(false).when(mManagedLockPasswordProvider).isManagedPasswordChoosable();
+        assertThat(mController.isScreenLockDisabledByAdmin(
+                ScreenLockType.MANAGED, DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED))
+                .named("MANANGED disabledByAdmin")
+                .isTrue();
+    }
+
+    @Test
+    public void getTitle_shouldContainEnumName() {
+        doReturn("MANAGED").when(mManagedLockPasswordProvider).getPickerOptionTitle(anyBoolean());
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(mController.getTitle(lock).toString())
+                    .containsMatch(Pattern.compile(lock.toString(), Pattern.CASE_INSENSITIVE));
+        }
+    }
+
+    @Test
+    public void getVisibleScreenLockTypes_qualitySomething_shouldReturnPatterPinPassword() {
+        assertThat(mController.getVisibleScreenLockTypes(
+                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, false))
+                .isEqualTo(Arrays.asList(
+                        ScreenLockType.PATTERN,
+                        ScreenLockType.PIN,
+                        ScreenLockType.PASSWORD));
+    }
+
+    @Test
+    public void getVisibleScreenLockTypes_showDisabled_shouldReturnAllButManaged() {
+        assertThat(mController.getVisibleScreenLockTypes(
+                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING, true))
+                .isEqualTo(Arrays.asList(
+                        ScreenLockType.NONE,
+                        ScreenLockType.SWIPE,
+                        ScreenLockType.PATTERN,
+                        ScreenLockType.PIN,
+                        ScreenLockType.PASSWORD));
+    }
+
+    @Test
+    public void upgradeQuality_noDpmRequirement_shouldReturnQuality() {
+        doReturn(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED)
+                .when(mDevicePolicyManager).getPasswordQuality(any(ComponentName.class), anyInt());
+
+        int upgradedQuality = mController.upgradeQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
+        assertThat(upgradedQuality).named("upgradedQuality")
+                .isEqualTo(DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
+    }
+
+    @Test
+    public void upgradeQuality_dpmRequirement_shouldReturnRequiredQuality() {
+        doReturn(DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC)
+                .when(mDevicePolicyManager).getPasswordQuality(any(ComponentName.class), anyInt());
+
+        int upgradedQuality = mController.upgradeQuality(
+                DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
+        assertThat(upgradedQuality).named("upgradedQuality")
+                .isEqualTo(DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
new file mode 100644
index 0000000..b077c9a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPasswordTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.password;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.RuntimeEnvironment.application;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Intent;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.password.ChooseLockPassword;
+import com.android.settings.password.ChooseLockPassword.IntentBuilder;
+import com.android.settings.password.ChooseLockSettingsHelper;
+
+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 ChooseLockPasswordTest {
+
+    @Test
+    public void intentBuilder_setPassword_shouldAddExtras() {
+        Intent intent = new IntentBuilder(application)
+                .setPassword("password")
+                .setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC)
+                .setPasswordLengthRange(123, 456)
+                .setUserId(123)
+                .build();
+
+        assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true))
+                .named("EXTRA_KEY_HAS_CHALLENGE")
+                .isFalse();
+        assertThat(intent.getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD))
+                .named("EXTRA_KEY_PASSWORD")
+                .isEqualTo("password");
+        assertThat(intent.getIntExtra(ChooseLockPassword.PASSWORD_MIN_KEY, 0))
+                .named("PASSWORD_MIN_KEY")
+                .isEqualTo(123);
+        assertThat(intent.getIntExtra(ChooseLockPassword.PASSWORD_MAX_KEY, 0))
+                .named("PASSWORD_MAX_KEY")
+                .isEqualTo(456);
+        assertThat(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, 0))
+                .named("PASSWORD_TYPE_KEY")
+                .isEqualTo(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC);
+        assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0))
+                .named("EXTRA_USER_ID")
+                .isEqualTo(123);
+    }
+
+    @Test
+    public void intentBuilder_setChallenge_shouldAddExtras() {
+        Intent intent = new IntentBuilder(application)
+                .setChallenge(12345L)
+                .setPasswordQuality(DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC)
+                .setPasswordLengthRange(123, 456)
+                .setUserId(123)
+                .build();
+
+        assertThat(intent.getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false))
+                .named("EXTRA_KEY_HAS_CHALLENGE")
+                .isTrue();
+        assertThat(intent.getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0L))
+                .named("EXTRA_KEY_CHALLENGE")
+                .isEqualTo(12345L);
+        assertThat(intent.getIntExtra(ChooseLockPassword.PASSWORD_MIN_KEY, 0))
+                .named("PASSWORD_MIN_KEY")
+                .isEqualTo(123);
+        assertThat(intent.getIntExtra(ChooseLockPassword.PASSWORD_MAX_KEY, 0))
+                .named("PASSWORD_MAX_KEY")
+                .isEqualTo(456);
+        assertThat(intent.getIntExtra(LockPatternUtils.PASSWORD_TYPE_KEY, 0))
+                .named("PASSWORD_TYPE_KEY")
+                .isEqualTo(DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC);
+        assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0))
+                .named("EXTRA_USER_ID")
+                .isEqualTo(123);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
new file mode 100644
index 0000000..49ca717
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/password/ChooseLockPatternTest.java
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.password;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.RuntimeEnvironment.application;
+
+import android.content.Intent;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.password.ChooseLockPattern;
+import com.android.settings.password.ChooseLockPattern.IntentBuilder;
+import com.android.settings.password.ChooseLockSettingsHelper;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settings.testutils.shadow.ShadowEventLogWriter;
+import com.android.settings.testutils.shadow.ShadowUtils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(
+        manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowResources.class,
+                SettingsShadowResources.SettingsShadowTheme.class,
+                ShadowDynamicIndexableContentMonitor.class,
+                ShadowEventLogWriter.class,
+                ShadowUtils.class
+        })
+public class ChooseLockPatternTest {
+
+    @Test
+    public void activityCreationTest() {
+        // Basic sanity test for activity created without crashing
+        Robolectric.buildActivity(ChooseLockPattern.class, new IntentBuilder(application).build())
+                .setup().get();
+    }
+
+    @Test
+    public void intentBuilder_setPattern_shouldAddExtras() {
+        Intent intent = new IntentBuilder(application)
+                .setPattern("pattern")
+                .setUserId(123)
+                .build();
+
+        assertThat(intent
+                .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, true))
+                .named("EXTRA_KEY_HAS_CHALLENGE")
+                .isFalse();
+        assertThat(intent
+                .getStringExtra(ChooseLockSettingsHelper.EXTRA_KEY_PASSWORD))
+                .named("EXTRA_KEY_PASSWORD")
+                .isEqualTo("pattern");
+        assertThat(intent.getIntExtra(Intent.EXTRA_USER_ID, 0))
+                .named("EXTRA_USER_ID")
+                .isEqualTo(123);
+    }
+
+    @Test
+    public void intentBuilder_setChallenge_shouldAddExtras() {
+        Intent intent = new IntentBuilder(application)
+                .setChallenge(12345L)
+                .setUserId(123)
+                .build();
+
+        assertThat(intent
+                .getBooleanExtra(ChooseLockSettingsHelper.EXTRA_KEY_HAS_CHALLENGE, false))
+                .named("EXTRA_KEY_HAS_CHALLENGE")
+                .isTrue();
+        assertThat(intent
+                .getLongExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE, 0L))
+                .named("EXTRA_KEY_CHALLENGE")
+                .isEqualTo(12345L);
+        assertThat(intent
+                .getIntExtra(Intent.EXTRA_USER_ID, 0))
+                .named("EXTRA_USER_ID")
+                .isEqualTo(123);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/ConfirmCredentialTest.java b/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
similarity index 72%
rename from tests/robotests/src/com/android/settings/ConfirmCredentialTest.java
rename to tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
index f771a1f..6072d42 100644
--- a/tests/robotests/src/com/android/settings/ConfirmCredentialTest.java
+++ b/tests/robotests/src/com/android/settings/password/ConfirmCredentialTest.java
@@ -14,14 +14,15 @@
  * limitations under the License
  */
 
-package com.android.settings;
+package com.android.settings.password;
 
-import static com.android.settings.ConfirmDeviceCredentialBaseFragment.LastTryDialog;
 import static com.google.common.truth.Truth.assertThat;
 
-import android.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.password.ConfirmDeviceCredentialBaseFragment.LastTryDialog;
+
 import android.app.Activity;
-import android.app.Fragment;
 import android.app.FragmentManager;
 
 import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -45,11 +46,14 @@
         FragmentManager fm = Robolectric.buildActivity(Activity.class).get().getFragmentManager();
 
         // Launch only one instance at a time.
-        assertThat(LastTryDialog.show(fm, "title", R.string.yes, R.string.ok, false)).isTrue();
-        assertThat(LastTryDialog.show(fm, "title", R.string.yes, R.string.ok, false)).isFalse();
+        assertThat(LastTryDialog.show(
+                fm, "title", android.R.string.yes, android.R.string.ok, false)).isTrue();
+        assertThat(LastTryDialog.show(
+                fm, "title", android.R.string.yes, android.R.string.ok, false)).isFalse();
 
         // After cancelling, the dialog should be re-shown when asked for.
         LastTryDialog.hide(fm);
-        assertThat(LastTryDialog.show(fm, "title", R.string.yes, R.string.ok, false)).isTrue();
+        assertThat(LastTryDialog.show(
+                fm, "title", android.R.string.yes, android.R.string.ok, false)).isTrue();
     }
 }
diff --git a/tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java b/tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java
new file mode 100644
index 0000000..96bce00
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/password/ScreenLockTypeTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.password;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.admin.DevicePolicyManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+
+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 ScreenLockTypeTest {
+
+    @Test
+    public void fromQuality_shouldReturnLockWithAssociatedQuality() {
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_ALPHABETIC))
+                .isEqualTo(ScreenLockType.PASSWORD);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC))
+                .isEqualTo(ScreenLockType.PASSWORD);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_BIOMETRIC_WEAK))
+                .isNull();
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_COMPLEX))
+                .isEqualTo(ScreenLockType.PASSWORD);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_MANAGED))
+                .isEqualTo(ScreenLockType.MANAGED);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC))
+                .isEqualTo(ScreenLockType.PIN);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX))
+                .isEqualTo(ScreenLockType.PIN);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_SOMETHING))
+                .isEqualTo(ScreenLockType.PATTERN);
+        assertThat(ScreenLockType.fromQuality(DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED))
+                .isEqualTo(ScreenLockType.SWIPE);
+    }
+
+    @Test
+    public void fromKey_shouldReturnLockWithGivenKey() {
+        for (ScreenLockType lock : ScreenLockType.values()) {
+            assertThat(ScreenLockType.fromKey(lock.preferenceKey)).isEqualTo(lock);
+        }
+        assertThat(ScreenLockType.fromKey("nonexistent")).isNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
index 573f5d8..44f1fef 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordActivityTest.java
@@ -16,14 +16,16 @@
 
 package com.android.settings.password;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.Shadows.shadowOf;
+
 import android.content.ComponentName;
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.Settings;
 
-import com.android.settings.ChooseLockGeneric;
 import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.SetupChooseLockGeneric;
 import com.android.settings.TestConfig;
 
 import org.junit.After;
@@ -35,9 +37,6 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowActivity;
 
-import static com.google.common.truth.Truth.assertThat;
-import static org.robolectric.Shadows.shadowOf;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class SetNewPasswordActivityTest {
diff --git a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
index ab01360..bb7f5c1 100644
--- a/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetNewPasswordControllerTest.java
@@ -16,6 +16,25 @@
 
 package com.android.settings.password;
 
+import static android.content.pm.PackageManager.FEATURE_FINGERPRINT;
+
+import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment
+        .HIDE_DISABLED_PREFS;
+import static com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment
+        .MINIMUM_QUALITY_KEY;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE;
+import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT;
+import static com.android.settings.password.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;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
 import android.content.Intent;
@@ -33,20 +52,6 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.annotation.Config;
 
-import static android.content.pm.PackageManager.FEATURE_FINGERPRINT;
-import static com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment.HIDE_DISABLED_PREFS;
-import static com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment.MINIMUM_QUALITY_KEY;
-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;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 
 /**
  * Tests for {@link SetNewPasswordController}.
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
new file mode 100644
index 0000000..2436906
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockPasswordTest.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.password;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.app.Fragment;
+import android.content.Intent;
+import android.os.Bundle;
+import android.widget.Button;
+
+import com.android.settings.R;
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.password.ChooseLockGeneric.ChooseLockGenericFragment;
+import com.android.settings.password.ChooseLockPassword.IntentBuilder;
+import com.android.settings.password.SetupChooseLockPassword.SetupChooseLockPasswordFragment;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
+import com.android.settings.testutils.shadow.ShadowEventLogWriter;
+import com.android.settings.testutils.shadow.ShadowUtils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowActivity;
+import org.robolectric.shadows.ShadowActivity.IntentForResult;
+import org.robolectric.shadows.ShadowDialog;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(
+        manifest = TestConfig.MANIFEST_PATH,
+        sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                SettingsShadowResources.class,
+                SettingsShadowResources.SettingsShadowTheme.class,
+                ShadowDynamicIndexableContentMonitor.class,
+                ShadowEventLogWriter.class,
+                ShadowUtils.class
+        })
+public class SetupChooseLockPasswordTest {
+
+    @Test
+    public void createActivity_shouldNotCrash() {
+        // Basic sanity test for activity created without crashing
+        Robolectric.buildActivity(SetupChooseLockPassword.class,
+                SetupChooseLockPassword.modifyIntentForSetup(
+                        application,
+                        new IntentBuilder(application).build()))
+                .setup().get();
+    }
+
+    @Test
+    public void createActivity_withShowOptionsButtonExtra_shouldShowButton() {
+        Intent intent = SetupChooseLockPassword.modifyIntentForSetup(
+                application,
+                new IntentBuilder(application).build());
+        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
+        SetupChooseLockPassword activity =
+                Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
+
+        Button optionsButton = activity.findViewById(R.id.screen_lock_options);
+        assertThat(optionsButton).isNotNull();
+
+        ShadowActivity shadowActivity = shadowOf(activity);
+        optionsButton.performClick();
+
+        assertThat(ShadowDialog.getLatestDialog()).isNotNull();
+    }
+
+    @Test
+    public void createActivity_clickDifferentOption_extrasShouldBePropagated() {
+        Bundle bundle = new Bundle();
+        bundle.putString("foo", "bar");
+
+        Intent intent = new IntentBuilder(application).build();
+        intent.putExtra(ChooseLockGenericFragment.EXTRA_CHOOSE_LOCK_GENERIC_EXTRAS, bundle);
+        intent = SetupChooseLockPassword.modifyIntentForSetup(application, intent);
+        intent.putExtra(ChooseLockGenericFragment.EXTRA_SHOW_OPTIONS_BUTTON, true);
+
+        SetupChooseLockPassword activity =
+                Robolectric.buildActivity(SetupChooseLockPassword.class, intent).setup().get();
+
+        SetupChooseLockPasswordFragment fragment =
+                (SetupChooseLockPasswordFragment) activity.getFragmentManager()
+                        .findFragmentById(R.id.main_content);
+        fragment.onLockTypeSelected(ScreenLockType.PATTERN);
+
+        ShadowActivity shadowActivity = shadowOf(activity);
+        IntentForResult chooseLockIntent = shadowActivity.getNextStartedActivityForResult();
+        assertThat(chooseLockIntent).isNotNull();
+        assertThat(chooseLockIntent.requestCode)
+                .isEqualTo(SetupChooseLockPasswordFragment.REQUEST_SCREEN_LOCK_OPTIONS);
+        assertThat(chooseLockIntent.intent.getStringExtra("foo")).named("Foo extra")
+                .isEqualTo("bar");
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
index 87eeced..ddbda23 100644
--- a/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
+++ b/tests/robotests/src/com/android/settings/search/BaseSearchIndexProviderTest.java
@@ -108,7 +108,7 @@
             public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                     boolean enabled) {
                 final SearchIndexableResource sir = new SearchIndexableResource(context);
-                sir.xmlResId = R.xml.language_and_input;
+                sir.xmlResId = R.xml.data_usage;
                 return Arrays.asList(sir);
             }
 
@@ -121,13 +121,7 @@
         final List<String> nonIndexableKeys = provider
                 .getNonIndexableKeys(RuntimeEnvironment.application);
 
-        assertThat(nonIndexableKeys).containsAllOf("phone_language", "spellcheckers_settings",
-                "key_user_dictionary_settings", "gesture_settings_category", "gesture_assist",
-                "gesture_swipe_down_fingerprint", "gesture_double_tap_power",
-                "gesture_double_twist", "gesture_double_tap_screen", "gesture_pick_up",
-                "pointer_speed", "tts_settings",
-                "game_controller_settings_category", "vibrate_input_devices");
+        assertThat(nonIndexableKeys).containsAllOf("status_header", "limit_summary",
+                "restrict_background");
     }
-
-
 }
diff --git a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
index 972bca1..4730e41 100644
--- a/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
+++ b/tests/robotests/src/com/android/settings/search/SearchIndexProviderCodeInspector.java
@@ -91,7 +91,7 @@
             // If it's a SettingsPreferenceFragment, it must also be Indexable.
             final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz);
             if (!implementsIndexable) {
-                if (!notImplementingIndexableGrandfatherList.contains(className)) {
+                if (!notImplementingIndexableGrandfatherList.remove(className)) {
                     notImplementingIndexable.add(className);
                 }
                 continue;
@@ -99,7 +99,7 @@
             final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
             // If it implements Indexable, it must also implement the index provider field.
             if (!hasSearchIndexProvider) {
-                if (!notImplementingIndexProviderGrandfatherList.contains(className)) {
+                if (!notImplementingIndexProviderGrandfatherList.remove(className)) {
                     notImplementingIndexProvider.add(className);
                 }
                 continue;
@@ -109,14 +109,14 @@
             final boolean isSharingPrefControllers = DashboardFragmentSearchIndexProviderInspector
                     .isSharingPreferenceControllers(clazz);
             if (!isSharingPrefControllers) {
-                if (!notSharingPrefControllersGrandfatherList.contains(className)) {
+                if (!notSharingPrefControllersGrandfatherList.remove(className)) {
                     notSharingPreferenceControllers.add(className);
                 }
                 continue;
             }
             // Must be in SearchProviderRegistry
             if (SearchIndexableResources.getResourceByName(className) == null) {
-                if (!notInSearchIndexableRegistryGrandfatherList.contains(className)) {
+                if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
                     notInSearchProviderRegistry.add(className);
                 }
                 continue;
@@ -145,6 +145,15 @@
         assertWithMessage(notInProviderRegistryError)
                 .that(notInSearchProviderRegistry)
                 .isEmpty();
+        assertNoObsoleteInGrandfatherList("grandfather_not_implementing_indexable",
+                notImplementingIndexableGrandfatherList);
+        assertNoObsoleteInGrandfatherList("grandfather_not_implementing_index_provider",
+                notImplementingIndexProviderGrandfatherList);
+        assertNoObsoleteInGrandfatherList("grandfather_not_in_search_index_provider_registry",
+                notInSearchIndexableRegistryGrandfatherList);
+        assertNoObsoleteInGrandfatherList(
+                "grandfather_not_sharing_pref_controllers_with_search_provider",
+                notSharingPrefControllersGrandfatherList);
     }
 
     private boolean hasSearchIndexProvider(Class clazz) {
diff --git a/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java b/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
index 5151ca8..6bf421f 100644
--- a/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
+++ b/tests/robotests/src/com/android/settings/search2/DatabaseIndexingManagerTest.java
@@ -259,7 +259,7 @@
         SearchIndexableResource resource = getFakeResource(R.xml.display_settings);
         mManager.indexOneSearchIndexableData(mDb, localeStr, resource, new HashMap<>());
         Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index", null);
-        assertThat(cursor.getCount()).isEqualTo(18);
+        assertThat(cursor.getCount()).isEqualTo(19);
     }
 
     @Test
@@ -274,7 +274,7 @@
         Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
         assertThat(cursor.getCount()).isEqualTo(2);
         cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
-        assertThat(cursor.getCount()).isEqualTo(16);
+        assertThat(cursor.getCount()).isEqualTo(17);
     }
 
     @Test
@@ -692,9 +692,9 @@
                 new HashMap<String, Set<String>>());
 
         Cursor cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 1", null);
-        assertThat(cursor.getCount()).isEqualTo(2);
+        assertThat(cursor.getCount()).isEqualTo(1);
         cursor = mDb.rawQuery("SELECT * FROM prefs_index WHERE enabled = 0", null);
-        assertThat(cursor.getCount()).isEqualTo(4);
+        assertThat(cursor.getCount()).isEqualTo(5);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
index 2296370..2e91ec6 100644
--- a/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/search2/SearchFragmentTest.java
@@ -349,4 +349,21 @@
 
         verify(fragment.mSavedQueryController).loadSavedQueries();
     }
+
+    @Test
+    public void onIndexingFinished_noActivity_shouldNotCrash() {
+        ActivityController<SearchActivity> activityController =
+            Robolectric.buildActivity(SearchActivity.class);
+        activityController.setup();
+        SearchFragment fragment = (SearchFragment) spy(activityController.get().getFragmentManager()
+            .findFragmentById(R.id.main_content));
+        when(mFeatureFactory.searchFeatureProvider.isIndexingComplete(any(Context.class)))
+            .thenReturn(true);
+        fragment.mQuery = "bright";
+        ReflectionHelpers.setField(fragment, "mLoaderManager", null);
+        ReflectionHelpers.setField(fragment, "mHost", null);
+
+        fragment.onIndexingFinished();
+        // no crash
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
new file mode 100644
index 0000000..483dee7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/system/SystemDashboardFragmentTest.java
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.system;
+
+import android.content.Context;
+import android.os.UserManager;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {
+                ShadowUserManager.class
+        })
+public class SystemDashboardFragmentTest {
+
+    @Test
+    public void testNonIndexableKeys_existInXmlLayout() {
+        final Context context = spy(RuntimeEnvironment.application);
+        UserManager manager = mock(UserManager.class);
+        when(manager.isAdminUser()).thenReturn(false);
+        doReturn(manager).when(context).getSystemService(Context.USER_SERVICE);
+        final List<String> niks = SystemDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
+                .getNonIndexableKeys(context);
+        final int xmlId = (new SystemDashboardFragment()).getPreferenceScreenResId();
+
+        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(context, xmlId);
+
+        assertThat(keys).containsAllIn(niks);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
index 65bb389..6085c1e 100644
--- a/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
+++ b/tests/robotests/src/com/android/settings/testutils/FakeFeatureFactory.java
@@ -28,14 +28,13 @@
 import com.android.settings.localepicker.LocaleFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.overlay.SupportFeatureProvider;
-import com.android.settings.security.SecurityFeatureProvider;
-import com.android.settings.search2.SearchFeatureProvider;
 import com.android.settings.overlay.SurveyFeatureProvider;
+import com.android.settings.search2.SearchFeatureProvider;
+import com.android.settings.security.SecurityFeatureProvider;
 import com.android.settings.users.UserFeatureProvider;
 
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.mockingDetails;
 import static org.mockito.Mockito.when;
 
 /**
@@ -64,7 +63,7 @@
      *
      * @param context The context must be a deep mock.
      */
-    public static void setupForTest(Context context) {
+    public static FakeFeatureFactory setupForTest(Context context) {
         sFactory = null;
         when(context.getString(com.android.settings.R.string.config_featureFactory))
                 .thenReturn(FakeFeatureFactory.class.getName());
@@ -74,6 +73,7 @@
         } catch (ClassNotFoundException e) {
             // Ignore.
         }
+        return (FakeFeatureFactory) FakeFeatureFactory.getFactory(context);
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
index 565aff9..d4b0ff7 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -137,6 +137,16 @@
                 realResources, Resources.class, "getInteger", ClassParameter.from(int.class, id));
     }
 
+    @Implementation
+    public boolean getBoolean(int id) {
+        final Object override = sResourceOverrides.get(id);
+        if (override instanceof Boolean) {
+            return (boolean) override;
+        }
+        return Shadow.directlyOn(realResources, Resources.class, "getBoolean",
+                ClassParameter.from(int.class, id));
+    }
+
     @Implements(Theme.class)
     public static class SettingsShadowTheme extends ShadowTheme {
 
@@ -149,10 +159,14 @@
             // 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));
+                    String attributeValue = set.getAttributeValue(i);
+                    Node node = ReflectionHelpers.callInstanceMethod(
+                            XmlResourceParserImpl.class, set, "getAttributeAt",
+                            ReflectionHelpers.ClassParameter.from(int.class, i));
+                    if (attributeValue.contains("attr/fingerprint_layout_theme")) {
+                        // Workaround for https://github.com/robolectric/robolectric/issues/2641
+                        node.setNodeValue("@style/FingerprintLayoutTheme");
+                    } else if (attributeValue.startsWith("@*android:string")) {
                         node.setNodeValue("PLACEHOLDER");
                     }
                 }
@@ -166,7 +180,6 @@
                     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 =
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java
new file mode 100644
index 0000000..886f941
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAudioHelper.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.os.UserHandle;
+import android.os.UserManager;
+import com.android.settings.notification.AudioHelper;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(AudioHelper.class)
+public class ShadowAudioHelper {
+
+    @Implementation
+    public boolean isSingleVolume() {
+        return true;
+    }
+
+    @Implementation
+    public int getManagedProfileId(UserManager um) {
+        return UserHandle.USER_CURRENT;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
index dbf1a65..4c05665 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowConnectivityManager.java
@@ -24,9 +24,14 @@
 @Implements(ConnectivityManager.class)
 public class ShadowConnectivityManager extends org.robolectric.shadows.ShadowConnectivityManager {
 
+    private static boolean mIsNetworkSupported;
+
     @Implementation
     public boolean isNetworkSupported(int networkType) {
-        return false;
+        return mIsNetworkSupported;
     }
 
+    public static void setIsNetworkSupported(boolean isNetworkSupported) {
+        mIsNetworkSupported = isNetworkSupported;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowEntityHeaderController.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowEntityHeaderController.java
new file mode 100644
index 0000000..4ec48d3
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowEntityHeaderController.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.app.Activity;
+import android.app.Fragment;
+import android.view.View;
+
+import com.android.settings.widget.EntityHeaderController;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+import org.robolectric.annotation.Resetter;
+
+@Implements(value = EntityHeaderController.class, callThroughByDefault = false)
+public class ShadowEntityHeaderController {
+
+    private static EntityHeaderController sMockController;
+
+    public static void setUseMock(EntityHeaderController mockController) {
+        sMockController = mockController;
+    }
+
+    @Resetter
+    public static void reset() {
+        sMockController = null;
+    }
+
+    @Implementation
+    public static EntityHeaderController newInstance(Activity activity, Fragment fragment,
+            View header) {
+        return sMockController;
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java
new file mode 100644
index 0000000..7aa28fa
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManagerWrapper.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package com.android.settings.testutils.shadow;
+
+import com.android.settings.display.PowerManagerWrapper;
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+@Implements(PowerManagerWrapper.class)
+public class ShadowPowerManagerWrapper {
+
+    @Implementation
+    public int getMinimumScreenBrightnessSetting() {
+        return 0;
+    }
+
+    @Implementation
+    public int getMaximumScreenBrightnessSetting() {
+        return 0;
+    }
+
+    @Implementation
+    public int getMinimumScreenBrightnessForVrSetting() {
+        return 0;
+    }
+
+    @Implementation
+    public int getMaximumScreenBrightnessForVrSetting() {
+        return 0;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
index 81cc607..87b9103 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowUtils.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 
 import com.android.settings.Utils;
+import com.android.settings.password.IFingerprintManager;
 
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
@@ -26,8 +27,28 @@
 @Implements(Utils.class)
 public class ShadowUtils {
 
+    private static IFingerprintManager sFingerprintManager = null;
+
     @Implementation
     public static int enforceSameOwner(Context context, int userId) {
         return userId;
     }
+
+    @Implementation
+    public static IFingerprintManager getFingerprintManagerWrapperOrNull(Context context) {
+        return sFingerprintManager;
+    }
+
+    public static void setFingerprintManager(IFingerprintManager fingerprintManager) {
+        sFingerprintManager = fingerprintManager;
+    }
+
+    public static void reset() {
+        sFingerprintManager = null;
+    }
+
+    @Implementation
+    public static boolean isWifiOnly(Context context) {
+        return true;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/utils/ThreadUtilsTest.java b/tests/robotests/src/com/android/settings/utils/ThreadUtilsTest.java
deleted file mode 100644
index 4267ed1..0000000
--- a/tests/robotests/src/com/android/settings/utils/ThreadUtilsTest.java
+++ /dev/null
@@ -1,59 +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.utils;
-
-
-import com.android.settings.TestConfig;
-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;
-import static org.junit.Assert.fail;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class ThreadUtilsTest {
-
-    @Test
-    public void testMainThread() throws InterruptedException {
-        assertThat(ThreadUtils.isMainThread()).isTrue();
-        Thread background = new Thread(new Runnable() {
-            public void run() {
-                assertThat(ThreadUtils.isMainThread()).isFalse();
-            }
-        });
-        background.start();
-        background.join();
-    }
-
-    @Test
-    public void testEnsureMainThread() throws InterruptedException {
-        ThreadUtils.ensureMainThread();
-        Thread background = new Thread(new Runnable() {
-            public void run() {
-                try {
-                    ThreadUtils.ensureMainThread();
-                    fail("Should not pass ensureMainThread in a background thread");
-                } catch (RuntimeException e) {
-                }
-            }
-        });
-        background.start();
-        background.join();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java b/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java
new file mode 100644
index 0000000..b8f7820
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/ActionBarShadowControllerTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.support.v7.widget.RecyclerView;
+
+import com.android.settings.SettingsRobolectricTestRunner;
+import com.android.settings.TestConfig;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+
+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 java.util.List;
+
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class ActionBarShadowControllerTest {
+
+    @Mock
+    private RecyclerView mRecyclerView;
+    @Mock
+    private Activity mActivity;
+    @Mock
+    private ActionBar mActionBar;
+    private Lifecycle mLifecycle;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        when(mActivity.getActionBar()).thenReturn(mActionBar);
+        mLifecycle = new Lifecycle();
+    }
+
+    @Test
+    public void attachToRecyclerView_shouldAddScrollWatcherAndUpdateActionBar() {
+        when(mRecyclerView.canScrollVertically(-1)).thenReturn(false);
+
+        ActionBarShadowController.attachToRecyclerView(mActivity, mLifecycle, mRecyclerView);
+
+        verify(mActionBar).setElevation(0);
+    }
+
+
+    @Test
+    public void attachToRecyclerView_lifecycleChange_shouldAttachDetach() {
+        ActionBarShadowController.attachToRecyclerView(mActivity, mLifecycle, mRecyclerView);
+
+        List<LifecycleObserver> observers = ReflectionHelpers.getField(mLifecycle, "mObservers");
+        assertThat(observers).hasSize(1);
+        verify(mRecyclerView).addOnScrollListener(any());
+
+        mLifecycle.onStop();
+        verify(mRecyclerView).removeOnScrollListener(any());
+
+        mLifecycle.onStart();
+        verify(mRecyclerView, times(2)).addOnScrollListener(any());
+    }
+
+}
diff --git a/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
similarity index 60%
rename from tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java
rename to tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index 8b9b4b4..e386282 100644
--- a/tests/robotests/src/com/android/settings/applications/AppHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -14,17 +14,9 @@
  * limitations under the License.
  */
 
-package com.android.settings.applications;
+package com.android.settings.widget;
 
 
-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.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 import android.app.ActionBar;
 import android.app.Activity;
 import android.app.Fragment;
@@ -43,6 +35,8 @@
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.applications.LayoutPreference;
+import com.android.settings.testutils.FakeFeatureFactory;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -53,9 +47,17 @@
 import org.robolectric.RuntimeEnvironment;
 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.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class AppHeaderControllerTest {
+public class EntityHeaderControllerTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
@@ -67,13 +69,15 @@
     private Context mShadowContext;
     private LayoutInflater mLayoutInflater;
     private PackageInfo mInfo;
-    private AppHeaderController mController;
-
+    private EntityHeaderController mController;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory.setupForTest(mContext);
         mShadowContext = RuntimeEnvironment.application;
+        when(mActivity.getApplicationContext()).thenReturn(mShadowContext);
+        when(mContext.getApplicationContext()).thenReturn(mContext);
         when(mFragment.getContext()).thenReturn(mShadowContext);
         mLayoutInflater = LayoutInflater.from(mShadowContext);
         mInfo = new PackageInfo();
@@ -82,7 +86,7 @@
 
     @Test
     public void testBuildView_constructedWithoutView_shouldCreateNewView() {
-        mController = new AppHeaderController(mShadowContext, mFragment, null);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
         View view = mController.done(mActivity);
 
         assertThat(view).isNotNull();
@@ -90,7 +94,7 @@
 
     @Test
     public void testBuildView_withContext_shouldBuildPreference() {
-        mController = new AppHeaderController(mShadowContext, mFragment, null);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
         Preference preference = mController.done(mActivity, mShadowContext);
 
         assertThat(preference instanceof LayoutPreference).isTrue();
@@ -98,8 +102,8 @@
 
     @Test
     public void testBuildView_constructedWithView_shouldReturnSameView() {
-        View inputView = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
-        mController = new AppHeaderController(mShadowContext, mFragment, inputView);
+        View inputView = mLayoutInflater.inflate(R.layout.settings_entity_header, null /* root */);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, inputView);
         View view = mController.done(mActivity);
 
         assertThat(view).isSameAs(inputView);
@@ -108,11 +112,12 @@
     @Test
     public void bindViews_shouldBindAllData() {
         final String testString = "test";
-        final View appHeader = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
-        final TextView label = appHeader.findViewById(R.id.app_detail_title);
-        final TextView version = appHeader.findViewById(R.id.app_detail_summary);
+        final View header = mLayoutInflater.inflate(
+                R.layout.settings_entity_header, null /* root */);
+        final TextView label = header.findViewById(R.id.entity_header_title);
+        final TextView version = header.findViewById(R.id.entity_header_summary);
 
-        mController = new AppHeaderController(mShadowContext, mFragment, appHeader);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
         mController.setLabel(testString);
         mController.setSummary(testString);
         mController.setIcon(mShadowContext.getDrawable(R.drawable.ic_add));
@@ -129,22 +134,23 @@
         info.activityInfo.packageName = "123";
         info.activityInfo.name = "321";
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
+        when(mActivity.getApplicationContext()).thenReturn(mContext);
         when(mContext.getPackageManager().resolveActivity(any(Intent.class), anyInt()))
                 .thenReturn(info);
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setButtonActions(
-                AppHeaderController.ActionType.ACTION_APP_PREFERENCE,
-                AppHeaderController.ActionType.ACTION_NONE);
+                EntityHeaderController.ActionType.ACTION_APP_PREFERENCE,
+                EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.VISIBLE);
-        assertThat(appLinks.findViewById(R.id.right_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
         try {
-            appLinks.findViewById(R.id.left_button).performClick();
+            appLinks.findViewById(android.R.id.button1).performClick();
         } catch (Exception e) {
             // Ignore exception because the launching intent is fake.
         }
@@ -154,94 +160,94 @@
     @Test
     public void bindButton_noAppPref_shouldNotShowButton() {
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
         when(mContext.getPackageManager().resolveActivity(any(Intent.class), anyInt()))
                 .thenReturn(null);
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setButtonActions(
-                AppHeaderController.ActionType.ACTION_APP_PREFERENCE,
-                AppHeaderController.ActionType.ACTION_NONE);
+                EntityHeaderController.ActionType.ACTION_APP_PREFERENCE,
+                EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.GONE);
-        assertThat(appLinks.findViewById(R.id.right_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
     @Test
     public void bindButton_noAppInfo_shouldNotShowButton() {
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setPackageName(null)
                 .setButtonActions(
-                        AppHeaderController.ActionType.ACTION_APP_INFO,
-                        AppHeaderController.ActionType.ACTION_NONE);
+                        EntityHeaderController.ActionType.ACTION_APP_INFO,
+                        EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.GONE);
-        assertThat(appLinks.findViewById(R.id.right_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
     @Test
     public void bindButton_hasAppInfo_shouldShowButton() {
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
         when(mFragment.getActivity()).thenReturn(mock(Activity.class));
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setPackageName("123")
                 .setUid(UserHandle.USER_SYSTEM)
                 .setButtonActions(
-                        AppHeaderController.ActionType.ACTION_APP_INFO,
-                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE);
+                        EntityHeaderController.ActionType.ACTION_APP_INFO,
+                        EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.VISIBLE);
-        assertThat(appLinks.findViewById(R.id.right_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
     @Test
     public void bindButton_hasAppInfo_shouldHaveContentDescription() {
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
         when(mFragment.getActivity()).thenReturn(mock(Activity.class));
         when(mContext.getString(eq(R.string.application_info_label))).thenReturn("App Info");
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setPackageName("123")
                 .setUid(UserHandle.USER_SYSTEM)
                 .setButtonActions(
-                        AppHeaderController.ActionType.ACTION_APP_INFO,
-                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE);
+                        EntityHeaderController.ActionType.ACTION_APP_INFO,
+                        EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getContentDescription())
-                .isEqualTo("App Info");
+        assertThat(appLinks.findViewById(android.R.id.button1).getContentDescription().toString())
+                .isEqualTo("App info");
     }
 
     @Test
     public void bindButton_hasAppNotifIntent_shouldShowButton() {
         final View appLinks = mLayoutInflater
-                .inflate(R.layout.app_details, null /* root */);
+                .inflate(R.layout.settings_entity_header, null /* root */);
 
-        mController = new AppHeaderController(mContext, mFragment, appLinks);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, appLinks);
         mController.setAppNotifPrefIntent(new Intent())
                 .setButtonActions(
-                        AppHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
-                        AppHeaderController.ActionType.ACTION_NONE);
+                        EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
+                        EntityHeaderController.ActionType.ACTION_NONE);
         mController.done(mActivity);
 
-        assertThat(appLinks.findViewById(R.id.left_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button1).getVisibility())
                 .isEqualTo(View.VISIBLE);
-        assertThat(appLinks.findViewById(R.id.right_button).getVisibility())
+        assertThat(appLinks.findViewById(android.R.id.button2).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
@@ -249,31 +255,35 @@
     // app is instant.
     @Test
     public void instantApps_normalAppsDontGetLabel() {
-        final View appHeader = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
-        mController = new AppHeaderController(mContext, mFragment, appHeader);
+        final View header = mLayoutInflater.inflate(
+                R.layout.settings_entity_header, null /* root */);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
         mController.done(mActivity);
-        assertThat(appHeader.findViewById(R.id.install_type).getVisibility())
+
+        assertThat(header.findViewById(R.id.install_type).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
     // Test that the "instant apps" label is present in the header when we have an instant app.
     @Test
     public void instantApps_expectedHeaderItem() {
-        final View appHeader = mLayoutInflater.inflate(R.layout.app_details, null /* root */);
-        mController = new AppHeaderController(mContext, mFragment, appHeader);
+        final View header = mLayoutInflater.inflate(
+                R.layout.settings_entity_header, null /* root */);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, header);
         mController.setIsInstantApp(true);
         mController.done(mActivity);
-        TextView label = appHeader.findViewById(R.id.install_type);
+        TextView label = header.findViewById(R.id.install_type);
+
         assertThat(label.getVisibility()).isEqualTo(View.VISIBLE);
         assertThat(label.getText()).isEqualTo(
-                appHeader.getResources().getString(R.string.install_type_instant));
-        assertThat(appHeader.findViewById(R.id.app_detail_summary).getVisibility())
+                header.getResources().getString(R.string.install_type_instant));
+        assertThat(header.findViewById(R.id.entity_header_summary).getVisibility())
                 .isEqualTo(View.GONE);
     }
 
     @Test
     public void styleActionBar_invalidObjects_shouldNotCrash() {
-        mController = new AppHeaderController(mShadowContext, mFragment, null);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
         mController.styleActionBar(null);
 
         when(mActivity.getActionBar()).thenReturn(null);
@@ -286,7 +296,7 @@
     public void styleActionBar_setElevationAndBackground() {
         final ActionBar actionBar = mActivity.getActionBar();
 
-        mController = new AppHeaderController(mShadowContext, mFragment, null);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
         mController.styleActionBar(mActivity);
 
         verify(actionBar).setElevation(0);
@@ -297,7 +307,7 @@
 
     @Test
     public void initAppHeaderController_appHeaderNull_useFragmentContext() {
-        mController = new AppHeaderController(mContext, mFragment, null);
+        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
 
         // Fragment.getContext() is invoked to inflate the view
         verify(mFragment).getContext();
diff --git a/tests/robotests/src/com/android/settings/widget/FooterPreferenceMixinTest.java b/tests/robotests/src/com/android/settings/widget/FooterPreferenceMixinTest.java
deleted file mode 100644
index 21ebb25..0000000
--- a/tests/robotests/src/com/android/settings/widget/FooterPreferenceMixinTest.java
+++ /dev/null
@@ -1,100 +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.widget;
-
-import android.support.v14.preference.PreferenceFragment;
-import android.support.v7.preference.PreferenceManager;
-import android.support.v7.preference.PreferenceScreen;
-
-import com.android.settings.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
-
-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.any;
-import static org.mockito.Mockito.mock;
-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 FooterPreferenceMixinTest {
-
-    @Mock
-    private PreferenceFragment mFragment;
-    @Mock
-    private PreferenceScreen mScreen;
-
-    private Lifecycle mLifecycle;
-    private FooterPreferenceMixin mMixin;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mLifecycle = new Lifecycle();
-        when(mFragment.getPreferenceManager()).thenReturn(mock(PreferenceManager.class));
-        when(mFragment.getPreferenceManager().getContext())
-                .thenReturn(ShadowApplication.getInstance().getApplicationContext());
-        mMixin = new FooterPreferenceMixin(mFragment, mLifecycle);
-    }
-
-    @Test
-    public void createFooter_screenNotAvailable_noCrash() {
-        assertThat(mMixin.createFooterPreference()).isNotNull();
-    }
-
-    @Test
-    public void createFooter_screenAvailable_canAttachToScreen() {
-        when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-
-        final FooterPreference preference = mMixin.createFooterPreference();
-
-        assertThat(preference).isNotNull();
-        verify(mScreen).addPreference(preference);
-    }
-
-    @Test
-    public void createFooter_screenAvailableDelayed_canAttachToScreen() {
-        final FooterPreference preference = mMixin.createFooterPreference();
-
-        mLifecycle.setPreferenceScreen(mScreen);
-
-        assertThat(preference).isNotNull();
-        verify(mScreen).addPreference(preference);
-    }
-
-    @Test
-    public void createFooterTwice_screenAvailable_replaceOldFooter() {
-        when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-
-        mMixin.createFooterPreference();
-        mMixin.createFooterPreference();
-
-        verify(mScreen).removePreference(any(FooterPreference.class));
-        verify(mScreen, times(2)).addPreference(any(FooterPreference.class));
-    }
-
-}
diff --git a/tests/robotests/src/com/android/settings/widget/FooterPreferenceTest.java b/tests/robotests/src/com/android/settings/widget/FooterPreferenceTest.java
deleted file mode 100644
index 885ac68..0000000
--- a/tests/robotests/src/com/android/settings/widget/FooterPreferenceTest.java
+++ /dev/null
@@ -1,66 +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.widget;
-
-import android.content.Context;
-import android.support.v7.preference.PreferenceViewHolder;
-import android.text.method.LinkMovementMethod;
-import android.view.LayoutInflater;
-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.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 FooterPreferenceTest {
-
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        mContext = ShadowApplication.getInstance().getApplicationContext();
-    }
-
-    @Test
-    public void createNewPreference_shouldSetKeyAndOrder() {
-        final FooterPreference preference = new FooterPreference(mContext);
-
-        assertThat(preference.getKey()).isEqualTo(FooterPreference.KEY_FOOTER);
-        assertThat(preference.getOrder()).isEqualTo(FooterPreference.ORDER_FOOTER);
-    }
-
-    @Test
-    public void bindPreference_shouldLinkifyContent() {
-        final FooterPreference preference = new FooterPreference(mContext);
-        final PreferenceViewHolder holder = PreferenceViewHolder.createInstanceForTests(
-                LayoutInflater.from(mContext).inflate(R.layout.preference_footer, null));
-
-        preference.onBindViewHolder(holder);
-        assertThat(((TextView) holder.findViewById(android.R.id.title)).getMovementMethod())
-                .isInstanceOf(LinkMovementMethod.class);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/widget/ScrollToParentEditTextTest.java b/tests/robotests/src/com/android/settings/widget/ScrollToParentEditTextTest.java
new file mode 100644
index 0000000..e30421e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/widget/ScrollToParentEditTextTest.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.robolectric.RuntimeEnvironment.application;
+import static org.robolectric.Shadows.shadowOf;
+
+import android.graphics.Rect;
+import android.widget.FrameLayout;
+
+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.Robolectric;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowView;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class ScrollToParentEditTextTest {
+
+    private static final int EDIT_TEXT_SIZE = 20;
+    private static final int PARENT_SIZE = 50;
+    private static final int SCROLL_RECT_SIZE = 30;
+
+    private ScrollToParentEditText mEditText;
+    private FrameLayout mParent;
+
+    @Before
+    public void setUp() {
+        mEditText = new ScrollToParentEditText(
+                application,
+                Robolectric.buildAttributeSet().build());
+        mEditText.layout(0, 0, EDIT_TEXT_SIZE, EDIT_TEXT_SIZE);
+
+        mParent = spy(new FrameLayout(application));
+        mParent.layout(0, 0, PARENT_SIZE, PARENT_SIZE);
+
+        doReturn(true).when(mParent).requestRectangleOnScreen(any(Rect.class), anyBoolean());
+    }
+
+    @Test
+    public void requestRectangleOnScreen_noParent_shouldScrollToItself() {
+        assertThat(mEditText.requestRectangleOnScreen(
+                new Rect(0, 0, SCROLL_RECT_SIZE, SCROLL_RECT_SIZE), true)).isFalse();
+    }
+
+    @Test
+    public void requestRectangleOnScreen_withParent_shouldScrollToParent() {
+        ShadowView shadowEditText = shadowOf(mEditText);
+        shadowEditText.setMyParent(mParent);
+
+        assertThat(mEditText.requestRectangleOnScreen(
+                new Rect(0, 0, SCROLL_RECT_SIZE, SCROLL_RECT_SIZE), true)).isTrue();
+        verify(mParent)
+                .requestRectangleOnScreen(eq(new Rect(0, 0, PARENT_SIZE, PARENT_SIZE)), eq(true));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
index 78dbcbd..a3a3e55 100644
--- a/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/NotifyOpenNetworkPreferenceControllerTest.java
@@ -16,29 +16,25 @@
 
 package com.android.settings.wifi;
 
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.anyBoolean;
-import static org.mockito.Mockito.anyInt;
-import static org.mockito.Mockito.anyString;
-import static org.mockito.Mockito.when;
+import static android.provider.Settings.Global.WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON;
 
-import android.app.NotificationManager;
-import android.content.ComponentName;
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
 import android.content.Context;
-import android.content.pm.PackageManager;
-import android.net.NetworkScorerAppData;
-import android.os.RemoteException;
+import android.provider.Settings;
+import android.support.v14.preference.SwitchPreference;
 import android.support.v7.preference.Preference;
-import com.android.settings.R;
+
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.network.NetworkScoreManagerWrapper;
-import com.android.settings.utils.NotificationChannelHelper;
-import com.android.settings.utils.NotificationChannelHelper.NotificationChannelWrapper;
+import com.android.settingslib.core.lifecycle.Lifecycle;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
@@ -47,123 +43,67 @@
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class NotifyOpenNetworkPreferenceControllerTest {
 
-    private static final String TEST_SCORER_PACKAGE = "Test Package";
-    private static final String TEST_SCORER_CLASS = "Test Class";
-    private static final String TEST_SCORER_LABEL = "Test Label";
-    private static final String NOTIFICATION_ID = "Notification Id";
-    private static final CharSequence NOTIFICATION_NAME = "Notification Name";
-
     private Context mContext;
     private NotifyOpenNetworksPreferenceController mController;
-    @Mock private NetworkScoreManagerWrapper mNetworkScorer;
-    @Mock private NotificationChannelHelper mNotificationChannelHelper;
-    @Mock private PackageManager mPackageManager;
-    @Mock private NotificationChannelWrapper mChannel;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
-        mController = new NotifyOpenNetworksPreferenceController(
-                mContext, mNetworkScorer, mNotificationChannelHelper, mPackageManager);
-        ComponentName scorer = new ComponentName(TEST_SCORER_PACKAGE, TEST_SCORER_CLASS);
-
-        NetworkScorerAppData scorerAppData = new NetworkScorerAppData(
-                0, scorer, TEST_SCORER_LABEL, null /* enableUseOpenWifiActivity */,
-                NOTIFICATION_ID);
-        when(mNetworkScorer.getActiveScorer()).thenReturn(scorerAppData);
+        mController = new NotifyOpenNetworksPreferenceController(mContext, mock(Lifecycle.class));
     }
 
     @Test
-    public void testIsAvailable_shouldReturnFalseWhenScorerDoesNotExist()
-            throws RemoteException {
-        when(mNetworkScorer.getActiveScorer()).thenReturn(null);
-
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void testIsAvailable_shouldReturnFalseWhenNotificationChannelIdDoesNotExist()
-            throws RemoteException {
-        ComponentName scorer = new ComponentName(TEST_SCORER_PACKAGE, TEST_SCORER_CLASS);
-        NetworkScorerAppData scorerAppData = new NetworkScorerAppData(
-                0, scorer, TEST_SCORER_LABEL, null /* enableUseOpenWifiActivity */,
-                null /* networkAvailableNotificationChannelId */);
-        when(mNetworkScorer.getActiveScorer()).thenReturn(scorerAppData);
-
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void testIsAvailable_shouldReturnFalseWhenNotificationChannelDoesNotExist()
-            throws RemoteException {
-        when(mNotificationChannelHelper.getNotificationChannelForPackage(
-                anyString(), anyInt(), anyString(), anyBoolean())).thenReturn(null);
-
-        assertThat(mController.isAvailable()).isFalse();
-    }
-
-    @Test
-    public void testIsAvailable_shouldReturnTrueWhenNotificationChannelExists()
-            throws RemoteException {
-        when(mNotificationChannelHelper.getNotificationChannelForPackage(
-                anyString(), anyInt(), anyString(), anyBoolean())).thenReturn(mChannel);
-
+    public void testIsAvailable_shouldAlwaysReturnTrue() {
         assertThat(mController.isAvailable()).isTrue();
     }
 
     @Test
     public void handlePreferenceTreeClick_nonMatchingKey_shouldDoNothing() {
-        final Preference pref = new Preference(mContext);
+        final SwitchPreference pref = new SwitchPreference(mContext);
 
         assertThat(mController.handlePreferenceTreeClick(pref)).isFalse();
     }
 
     @Test
-    public void handlePreferenceTreeClick_nullScorer_shouldDoNothing() {
+    public void handlePreferenceTreeClick_nonMatchingType_shouldDoNothing() {
         final Preference pref = new Preference(mContext);
         pref.setKey(mController.getPreferenceKey());
-        when(mNetworkScorer.getActiveScorer()).thenReturn(null);
 
         assertThat(mController.handlePreferenceTreeClick(pref)).isFalse();
     }
 
     @Test
-    public void handlePreferenceTreeClick_matchingKeyAndScorerExists_shouldLaunchActivity()
-            throws RemoteException {
-        final Preference pref = new Preference(mContext);
+    public void handlePreferenceTreeClick_matchingKeyAndType_shouldUpdateSetting() {
+        final SwitchPreference pref = new SwitchPreference(mContext);
+        pref.setChecked(true);
         pref.setKey(mController.getPreferenceKey());
-        when(mNotificationChannelHelper.getNotificationChannelForPackage(
-                anyString(), anyInt(), anyString(), anyBoolean())).thenReturn(mChannel);
 
         assertThat(mController.handlePreferenceTreeClick(pref)).isTrue();
+        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+                WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0))
+                .isEqualTo(1);
     }
 
     @Test
-    public void updateState_notificationsEnabled_shouldShowEnabledSummary() throws RemoteException {
-        final Preference pref = new Preference(mContext);
-        pref.setKey(mController.getPreferenceKey());
-        when(mNotificationChannelHelper.getNotificationChannelForPackage(
-                anyString(), anyInt(), anyString(), anyBoolean())).thenReturn(mChannel);
-        when(mChannel.getImportance()).thenReturn(NotificationManager.IMPORTANCE_DEFAULT);
-        mController.updateState(pref);
+    public void updateState_preferenceSetCheckedWhenSettingsAreEnabled() {
+        final SwitchPreference preference = mock(SwitchPreference.class);
+        Settings.System.putInt(mContext.getContentResolver(),
+                WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 1);
 
-        assertThat(pref.getSummary()).isEqualTo(
-                mContext.getString(R.string.notification_toggle_on));
+        mController.updateState(preference);
+
+        verify(preference).setChecked(true);
     }
 
     @Test
-    public void updateState_notificationsEnabled_shouldShowDisabledSummary()
-            throws RemoteException {
-        final Preference pref = new Preference(mContext);
-        pref.setKey(mController.getPreferenceKey());
-        when(mNotificationChannelHelper.getNotificationChannelForPackage(
-                anyString(), anyInt(), anyString(), anyBoolean())).thenReturn(mChannel);
-        when(mChannel.getImportance()).thenReturn(NotificationManager.IMPORTANCE_NONE);
-        mController.updateState(pref);
+    public void updateState_preferenceSetCheckedWhenSettingsAreDisabled() {
+        final SwitchPreference preference = mock(SwitchPreference.class);
+        Settings.System.putInt(mContext.getContentResolver(),
+                WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, 0);
 
-        assertThat(pref.getSummary()).isEqualTo(
-                mContext.getString(R.string.notification_toggle_off));
+        mController.updateState(preference);
+
+        verify(preference).setChecked(false);
     }
-
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/UseOpenWifiPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/UseOpenWifiPreferenceControllerTest.java
index 5b55006..27e6f85 100644
--- a/tests/robotests/src/com/android/settings/wifi/UseOpenWifiPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/UseOpenWifiPreferenceControllerTest.java
@@ -39,7 +39,7 @@
 import com.android.settings.network.NetworkScoreManagerWrapper;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
index ac0f5c8..2e57781 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiConfigControllerTest.java
@@ -16,10 +16,6 @@
 
 package com.android.settings.wifi;
 
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -40,6 +36,9 @@
 import org.robolectric.RuntimeEnvironment;
 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,
         shadows = ShadowConnectivityManager.class)
@@ -109,6 +108,7 @@
         when(mAccessPoint.isSaved()).thenReturn(true);
         assertThat(mController.isSubmittable()).isTrue();
     }
+
     @Test
     public void isSubmittable_nullAccessPoint_noException() {
         mController = new TestWifiConfigController(mConfigUiBase, mView, null,
@@ -116,6 +116,13 @@
         mController.isSubmittable();
     }
 
+    @Test
+    public void getSignalString_notReachable_shouldHaveNoSignalString() {
+        when(mAccessPoint.isReachable()).thenReturn(false);
+
+        assertThat(mController.getSignalString()).isNull();
+    }
+
     public class TestWifiConfigController extends WifiConfigController {
 
         public TestWifiConfigController(WifiConfigUiBase parent, View view,
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiInfoPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiInfoPreferenceControllerTest.java
index 40c480f..47e3b4c 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiInfoPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiInfoPreferenceControllerTest.java
@@ -25,7 +25,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
index 61981c4..067a4ab 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiWakeupPreferenceControllerTest.java
@@ -32,8 +32,8 @@
 import com.android.settings.R;
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.After;
 import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/wifi/WpsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/WpsPreferenceControllerTest.java
index ac0861e..8953c09 100644
--- a/tests/robotests/src/com/android/settings/wifi/WpsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/WpsPreferenceControllerTest.java
@@ -33,7 +33,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
index 208c157..9601c49 100644
--- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java
@@ -58,9 +58,9 @@
 import com.android.settings.TestConfig;
 import com.android.settings.applications.LayoutPreference;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
-import com.android.settings.core.lifecycle.Lifecycle;
 import com.android.settings.vpn2.ConnectivityManagerWrapperImpl;
 import com.android.settings.wifi.WifiDetailPreference;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.wifi.AccessPoint;
 
 import org.junit.Before;
diff --git a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2PPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2PPreferenceControllerTest.java
index 06caadf..ede407e 100644
--- a/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2PPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/p2p/WifiP2PPreferenceControllerTest.java
@@ -32,7 +32,7 @@
 
 import com.android.settings.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
-import com.android.settings.core.lifecycle.Lifecycle;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/tests/unit/src/com/android/settings/applications/ManageApplicationsLaunchTest.java b/tests/unit/src/com/android/settings/applications/ManageApplicationsLaunchTest.java
new file mode 100644
index 0000000..e074966
--- /dev/null
+++ b/tests/unit/src/com/android/settings/applications/ManageApplicationsLaunchTest.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.applications;
+
+import android.app.Instrumentation;
+import android.content.Intent;
+import android.provider.Settings;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+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.matches;
+import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static org.hamcrest.Matchers.allOf;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ManageApplicationsLaunchTest {
+
+    private Instrumentation mInstrumentation;
+
+    @Before
+    public void setUp() {
+        mInstrumentation = InstrumentationRegistry.getInstrumentation();
+    }
+
+    @Test
+    public void launchAppsSettings_shouldShowAppList() throws Exception {
+        final Intent appsSettingsIntent = new
+                Intent(Settings.ACTION_MANAGE_APPLICATIONS_SETTINGS);
+
+        mInstrumentation.startActivitySync(appsSettingsIntent);
+
+        onView(allOf(withText("Calculator"))).check(matches(isDisplayed()));
+    }
+}
diff --git a/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java b/tests/unit/src/com/android/settings/applications/ManageApplicationsUnitTest.java
similarity index 93%
rename from tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java
rename to tests/unit/src/com/android/settings/applications/ManageApplicationsUnitTest.java
index 92e556e..10c9edb 100644
--- a/tests/unit/src/com/android/settings/applications/ManageApplicationsTest.java
+++ b/tests/unit/src/com/android/settings/applications/ManageApplicationsUnitTest.java
@@ -16,18 +16,22 @@
 
 package com.android.settings.applications;
 
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.mock;
-
 import android.content.pm.ApplicationInfo;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
 
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.ApplicationsState.AppFilter;
 
 import org.junit.Test;
+import org.junit.runner.RunWith;
 
-public class ManageApplicationsTest {
+import static com.google.common.truth.Truth.assertThat;
+import static org.mockito.Mockito.mock;
+
+@SmallTest
+@RunWith(AndroidJUnit4.class)
+public class ManageApplicationsUnitTest {
     @Test
     public void getOverrideFilter_filtersVolumeForAudio() {
         AppFilter filter =
diff --git a/tests/unit/src/com/android/settings/ChooseLockSettingsHelperTest.java b/tests/unit/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
similarity index 99%
rename from tests/unit/src/com/android/settings/ChooseLockSettingsHelperTest.java
rename to tests/unit/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
index 218a74e..e534fb6 100644
--- a/tests/unit/src/com/android/settings/ChooseLockSettingsHelperTest.java
+++ b/tests/unit/src/com/android/settings/password/ChooseLockSettingsHelperTest.java
@@ -1,6 +1,13 @@
-package com.android.settings;
+package com.android.settings.password;
 
 
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.Activity;
 import android.app.admin.DevicePolicyManager;
 import android.content.ComponentName;
@@ -16,13 +23,6 @@
 
 import java.util.List;
 
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 public class ChooseLockSettingsHelperTest extends AndroidTestCase {
 
     private static final String SYSTEM_PROPERTY_DEXMAKER_DEXCACHE = "dexmaker.dexcache";