diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 80a31fd..485a233 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -924,6 +924,11 @@
                 android:enabled="@*android:bool/config_nightDisplayAvailable"
                 android:icon="@drawable/ic_settings_night_display"
                 android:taskAffinity="">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="com.android.settings.SHORTCUT" />
+            </intent-filter>
             <intent-filter android:priority="1">
                 <action android:name="android.settings.NIGHT_DISPLAY_SETTINGS" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -3006,7 +3011,8 @@
                        android:value="com.android.settings.deletionhelper.AutomaticStorageManagerSettings" />
         </activity>
 
-        <activity android:name="Settings$LegacySupportActivity">
+        <activity android:name="Settings$LegacySupportActivity"
+                  android:label="@string/page_tab_title_support">
             <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
             android:value="com.android.settings.dashboard.SupportFragment"/>
         </activity>
diff --git a/res/drawable/ic_translate_24dp.xml b/res/drawable/ic_translate_24dp.xml
new file mode 100644
index 0000000..4df035c
--- /dev/null
+++ b/res/drawable/ic_translate_24dp.xml
@@ -0,0 +1,26 @@
+<!--
+  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 xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0"
+        android:tint="?android:attr/colorControlNormal">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M12.87,15.07l-2.54,-2.51 0.03,-0.03c1.74,-1.94 2.98,-4.17 3.71,-6.53L17,6L17,4h-7L10,2L8,2v2L1,4v1.99h11.17C11.5,7.92 10.44,9.75 9,11.35 8.07,10.32 7.3,9.19 6.69,8h-2c0.73,1.63 1.73,3.17 2.98,4.56l-5.09,5.02L4,19l5,-5 3.11,3.11 0.76,-2.04zM18.5,10h-2L12,22h2l1.12,-3h4.75L21,22h2l-4.5,-12zM15.88,17l1.62,-4.33L19.12,17h-3.24z"/>
+</vector>
diff --git a/res/drawable/search_panel_list_background.xml b/res/drawable/search_panel_list_background.xml
deleted file mode 100644
index 7f7b560..0000000
--- a/res/drawable/search_panel_list_background.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<inset xmlns:android="http://schemas.android.com/apk/res/android"
-    android:inset="0dip">
-
-    <color android:color="?android:attr/colorBackground" />
-
-</inset>
diff --git a/res/layout-land/fingerprint_enroll_enrolling.xml b/res/layout-land/fingerprint_enroll_enrolling.xml
index b321519..135250b 100644
--- a/res/layout-land/fingerprint_enroll_enrolling.xml
+++ b/res/layout-land/fingerprint_enroll_enrolling.xml
@@ -49,6 +49,7 @@
                 style="@style/SuwGlifIcon"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:layout_gravity="?attr/suwGlifHeaderGravity"
                 android:layout_marginStart="0dp"
                 android:layout_marginEnd="0dp"
                 android:src="@drawable/ic_fingerprint_header" />
@@ -82,6 +83,18 @@
 
             </FrameLayout>
 
+            <Space
+                android:layout_width="0dp"
+                android:layout_height="0dp"
+                android:layout_weight="1" />
+
+            <Button
+                android:id="@+id/skip_button"
+                style="@style/SuwGlifButton.Secondary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/security_settings_fingerprint_enroll_enrolling_skip" />
+
         </LinearLayout>
 
         <FrameLayout
diff --git a/res/layout-land/fingerprint_enroll_find_sensor.xml b/res/layout-land/fingerprint_enroll_find_sensor.xml
index a43534f..7877d98 100644
--- a/res/layout-land/fingerprint_enroll_find_sensor.xml
+++ b/res/layout-land/fingerprint_enroll_find_sensor.xml
@@ -42,7 +42,7 @@
 
             <LinearLayout
                 android:layout_width="match_parent"
-                android:layout_height="wrap_content"
+                android:layout_height="match_parent"
                 android:orientation="vertical"
                 android:clipChildren="false"
                 android:clipToPadding="false">
@@ -52,6 +52,7 @@
                     style="@style/SuwGlifIcon"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
+                    android:layout_gravity="?attr/suwGlifHeaderGravity"
                     android:layout_marginStart="0dp"
                     android:layout_marginEnd="0dp"
                     android:src="@drawable/ic_fingerprint_header" />
@@ -70,13 +71,18 @@
                     android:layout_height="wrap_content"
                     android:text="@string/security_settings_fingerprint_enroll_find_sensor_message"/>
 
+                <Space
+                    android:layout_width="0dp"
+                    android:layout_height="0dp"
+                    android:layout_weight="1" />
+
                 <Button
-                    style="@style/SetupWizardButton.Positive"
-                    android:id="@+id/next_button"
+                    style="@style/SetupWizardButton.Negative"
+                    android:id="@+id/skip_button"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginTop="8dp"
-                    android:text="@string/fingerprint_enroll_button_next" />
+                    android:text="@string/skip_label" />
 
             </LinearLayout>
 
diff --git a/res/layout/battery_header.xml b/res/layout/battery_header.xml
index b7a8199..d59476c 100644
--- a/res/layout/battery_header.xml
+++ b/res/layout/battery_header.xml
@@ -28,15 +28,15 @@
     style="@style/EntityHeader">
 
     <LinearLayout
-        android:layout_width="216dp"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="48dp"
-        android:layout_marginEnd="12dp"
+        android:layout_weight="1"
+        android:layout_marginStart="56dp"
         android:orientation="vertical">
 
         <TextView
             android:id="@+id/battery_percent"
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="12dp"
             android:fontFamily="@*android:string/config_headlineFontFamily"
@@ -44,14 +44,14 @@
 
         <TextView
             android:id="@+id/summary1"
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="12dp"
+            android:layout_marginTop="8dp"
             android:textAppearance="@android:style/TextAppearance.Material.Small"/>
 
         <TextView
             android:id="@+id/summary2"
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:textAppearance="@android:style/TextAppearance.Material.Small"/>
 
@@ -61,7 +61,6 @@
         android:id="@+id/battery_header_icon"
         android:layout_width="@dimen/battery_meter_width"
         android:layout_height="@dimen/battery_meter_height"
-        android:layout_gravity="end"
-        android:layout_marginEnd="24dp"/>
+        android:layout_marginEnd="16dp"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/choose_lock_password_footer.xml b/res/layout/choose_lock_password_footer.xml
index 57be320..323a884 100644
--- a/res/layout/choose_lock_password_footer.xml
+++ b/res/layout/choose_lock_password_footer.xml
@@ -38,6 +38,6 @@
         style="@style/SuwGlifButton.Primary"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="@string/lockpassword_continue_label" />
+        android:text="@string/next_label" />
 
 </LinearLayout>
diff --git a/res/layout/condition_card.xml b/res/layout/condition_card.xml
deleted file mode 100644
index 4edd0f2..0000000
--- a/res/layout/condition_card.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-     Copyright (C) 2015 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:clipChildren="false"
-    android:clipToPadding="false">
-    <LinearLayout
-        android:id="@+id/content"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:background="?android:attr/colorAccent"
-        android:elevation="2dp"
-        android:clickable="true"
-        android:focusable="true">
-
-        <LinearLayout
-            android:id="@+id/collapsed_group"
-            android:layout_width="match_parent"
-            android:layout_height="56dp"
-            android:background="?android:attr/selectableItemBackground"
-            android:orientation="horizontal"
-            android:gravity="center">
-
-            <ImageView
-                android:id="@android:id/icon"
-                android:layout_width="24dp"
-                android:layout_height="wrap_content"
-                android:layout_marginStart="16dp"
-                android:layout_marginEnd="32dp"
-                android:tint="?android:attr/textColorPrimaryInverse" />
-
-            <TextView
-                android:id="@android:id/title"
-                android:layout_width="0dp"
-                android:layout_height="wrap_content"
-                android:layout_weight="1"
-                android:textAppearance="?android:attr/textAppearanceMedium"
-                android:textColor="?android:attr/textColorPrimaryInverse" />
-
-            <ImageView
-                android:id="@+id/expand_indicator"
-                android:layout_width="wrap_content"
-                android:layout_height="match_parent"
-                android:padding="16dp"
-                android:tint="?android:attr/textColorPrimaryInverse"/>
-
-        </LinearLayout>
-
-        <LinearLayout
-            android:id="@+id/detail_group"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingStart="72dp"
-            android:visibility="gone"
-            android:orientation="vertical">
-
-            <!-- TODO: Don't set alpha here, and do proper themeing that
-                 handles night mode -->
-            <TextView
-                android:id="@android:id/summary"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
-                android:paddingBottom="16dp"
-                android:textAppearance="?android:attr/textAppearanceListItemSecondary"
-                android:alpha=".7"
-                android:textColor="?android:attr/textColorPrimaryInverse" />
-
-            <!-- TODO: Better background -->
-            <View
-                android:id="@+id/divider"
-                android:layout_width="match_parent"
-                android:layout_height=".25dp"
-                android:background="@android:color/white" />
-
-            <com.android.internal.widget.ButtonBarLayout
-                android:id="@+id/buttonBar"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:paddingTop="8dp"
-                android:paddingBottom="8dp"
-                style="?android:attr/buttonBarStyle"
-                android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
-
-                <Button
-                    android:id="@+id/first_action"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:paddingStart="0dp"
-                    android:alpha=".8"
-                    android:textAlignment="viewStart"
-                    android:textColor="?android:attr/textColorPrimaryInverse"
-                    style="?android:attr/buttonBarButtonStyle" />
-
-                <Button
-                    android:id="@+id/second_action"
-                    android:layout_width="0dp"
-                    android:layout_height="wrap_content"
-                    android:layout_weight="1"
-                    android:alpha=".8"
-                    android:textAlignment="viewStart"
-                    android:textColor="?android:attr/textColorPrimaryInverse"
-                    style="?android:attr/buttonBarButtonStyle" />
-
-            </com.android.internal.widget.ButtonBarLayout>
-
-        </LinearLayout>
-
-    </LinearLayout>
-</FrameLayout>
diff --git a/res/layout/dashboard_header_spacer.xml b/res/layout/dashboard_header_spacer.xml
deleted file mode 100644
index 442ae48..0000000
--- a/res/layout/dashboard_header_spacer.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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.
--->
-
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="wrap_content"
-    android:padding="@dimen/search_bar_margin">
-    <View
-        android:layout_width="match_parent"
-        android:layout_height="?android:attr/actionBarSize"/>
-</LinearLayout>
diff --git a/res/layout/fingerprint_enroll_enrolling_base.xml b/res/layout/fingerprint_enroll_enrolling_base.xml
index e312c50..c1d1a7f 100644
--- a/res/layout/fingerprint_enroll_enrolling_base.xml
+++ b/res/layout/fingerprint_enroll_enrolling_base.xml
@@ -17,10 +17,12 @@
 
 <com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    style="?attr/fingerprint_layout_theme">
+    style="?attr/fingerprint_layout_theme"
+    app:suwFooter="@layout/fingerprint_enroll_enrolling_base_footer">
 
     <LinearLayout
         style="@style/SuwContentFrame"
@@ -58,8 +60,7 @@
         <FrameLayout
             android:layout_width="match_parent"
             android:layout_height="0dp"
-            android:layout_weight="1"
-            android:paddingBottom="80dp">
+            android:layout_weight="1">
 
             <include layout="@layout/fingerprint_enroll_enrolling_content"
                 android:layout_width="@dimen/fingerprint_progress_bar_max_size"
diff --git a/res/layout/fingerprint_enroll_enrolling_base_footer.xml b/res/layout/fingerprint_enroll_enrolling_base_footer.xml
new file mode 100644
index 0000000..b4ed37e
--- /dev/null
+++ b/res/layout/fingerprint_enroll_enrolling_base_footer.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/SuwGlifButtonBar"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <Button
+        style="@style/SuwGlifButton.Secondary"
+        android:id="@+id/skip_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/security_settings_fingerprint_enroll_enrolling_skip" />
+
+</LinearLayout>
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index fa344ab..44455c5 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -17,10 +17,12 @@
 
 <com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    app:suwFooter="@layout/fingerprint_enroll_find_sensor_base_footer">
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -56,7 +58,7 @@
                 android:layout_weight="1"/>
 
             <Button
-                style="@style/SuwGlifButton.Primary"
+                style="@style/SuwGlifButton.Secondary"
                 android:id="@+id/next_button"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/res/layout/fingerprint_enroll_find_sensor_base_footer.xml b/res/layout/fingerprint_enroll_find_sensor_base_footer.xml
new file mode 100644
index 0000000..e93fae9
--- /dev/null
+++ b/res/layout/fingerprint_enroll_find_sensor_base_footer.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<!-- TODO: Use aapt:attr when it is fixed (b/36809755) -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    style="@style/SuwGlifButtonBar"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <Button
+        style="@style/SuwGlifButton.Secondary"
+        android:id="@+id/skip_button"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/skip_label" />
+
+</LinearLayout>
diff --git a/res/layout/search_panel.xml b/res/layout/search_panel.xml
index d097cfe..7461374 100644
--- a/res/layout/search_panel.xml
+++ b/res/layout/search_panel.xml
@@ -13,19 +13,50 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<RelativeLayout
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/search_panel"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@drawable/search_panel_list_background">
+    android:orientation="vertical">
+
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/material_grey_300">
+        <android.support.v7.widget.CardView
+            android:id="@+id/search_bar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/search_bar_margin"
+            app:cardCornerRadius="2dp"
+            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardElevation="2dp">
+            <Toolbar
+                android:id="@+id/search_toolbar"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="?android:attr/selectableItemBackground"
+                android:contentInsetStart="0dp"
+                android:contentInsetStartWithNavigation="0dp"
+                android:theme="?android:attr/actionBarTheme">
+                <SearchView
+                    android:id="@+id/search_view"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:iconifiedByDefault="false"
+                    android:imeOptions="actionSearch|flagNoExtractUi"
+                    android:searchIcon="@null"/>
+            </Toolbar>
+        </android.support.v7.widget.CardView>
+    </FrameLayout>
 
     <FrameLayout
         android:id="@+id/layout_results"
         android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:layout_above="@id/feedback_popup"
+        android:layout_height="0dp"
+        android:layout_weight="1"
         android:orientation="vertical">
 
         <!-- Padding is included in the background -->
@@ -68,27 +99,8 @@
 
         </LinearLayout>
 
-        <android.support.v7.widget.CardView
-            android:id="@+id/search_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_margin="@dimen/search_bar_margin"
-            app:cardCornerRadius="2dp"
-            app:cardBackgroundColor="?android:attr/colorBackground"
-            app:cardElevation="2dp">
-
-            <SearchView
-                android:id="@+id/search_view"
-                android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                android:iconifiedByDefault="false"
-                android:imeOptions="actionSearch|flagNoExtractUi"
-                android:theme="?android:attr/actionBarTheme"/>
-
-        </android.support.v7.widget.CardView>
-
     </FrameLayout>
 
     <include layout="@layout/search_feedback"/>
 
-</RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/settings_main_dashboard.xml b/res/layout/settings_main_dashboard.xml
index 1a3b133..189c732 100644
--- a/res/layout/settings_main_dashboard.xml
+++ b/res/layout/settings_main_dashboard.xml
@@ -17,32 +17,36 @@
 */
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:layout_width="match_parent">
+    android:orientation="vertical">
+    <FrameLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/material_grey_300">
+        <android.support.v7.widget.CardView
+            android:id="@+id/search_bar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_margin="@dimen/search_bar_margin"
+            app:cardCornerRadius="2dp"
+            app:cardBackgroundColor="?android:attr/colorBackground"
+            app:cardElevation="2dp">
+            <Toolbar
+                android:id="@+id/search_action_bar"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="?android:attr/selectableItemBackground"
+                android:contentInsetStartWithNavigation="64dp"
+                android:navigationIcon="@drawable/ic_search_24dp"
+                android:titleTextColor="@*android:color/text_color_primary"
+                android:theme="?android:attr/actionBarTheme"/>
+        </android.support.v7.widget.CardView>
+    </FrameLayout>
     <FrameLayout
         android:id="@+id/main_content"
         android:layout_height="match_parent"
         android:layout_width="match_parent"/>
-    <android.support.v7.widget.CardView
-        android:id="@+id/search_bar"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="@dimen/search_bar_margin"
-        app:cardCornerRadius="2dp"
-        app:cardBackgroundColor="?android:attr/colorBackground"
-        app:cardElevation="2dp">
-        <Toolbar
-            android:id="@+id/search_action_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_marginStart="@dimen/search_bar_negative_margin"
-            android:background="?android:attr/selectableItemBackground"
-            android:navigationIcon="@drawable/ic_search_24dp"
-            android:title="@string/search_menu"
-            android:titleTextAppearance="?android:attr/subtitleTextAppearance"
-            android:titleTextColor="?android:attr/textColorHint"
-            android:theme="?android:attr/actionBarTheme"/>
-    </android.support.v7.widget.CardView>
-</FrameLayout>
+</LinearLayout>
diff --git a/res/layout/suggestion_header.xml b/res/layout/suggestion_header.xml
deleted file mode 100644
index 2268636..0000000
--- a/res/layout/suggestion_header.xml
+++ /dev/null
@@ -1,52 +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="@dimen/dashboard_category_height"
-    android:clickable="true"
-    android:focusable="true"
-    android:background="@drawable/selectable_card_grey"
-    android:gravity="center_vertical"
-    android:paddingTop="4dp">
-    <ImageView
-        android:id="@android:id/icon"
-        android:layout_width="@dimen/dashboard_tile_image_size"
-        android:layout_height="@dimen/dashboard_tile_image_size"
-        android:layout_marginStart="@dimen/dashboard_tile_image_margin"
-        android:layout_marginEnd="@dimen/dashboard_tile_image_margin"
-        android:src="@drawable/ic_expand_more"/>
-    <TextView
-        android:id="@android:id/title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:singleLine="true"
-        android:textAppearance="@style/TextAppearance.SuggestionTitle"
-        android:textColor="?android:attr/colorAccent"
-        android:ellipsize="marquee"
-        android:fadingEdge="horizontal"/>
-    <TextView
-        android:id="@android:id/summary"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:gravity="end"
-        android:paddingEnd="18dp"
-        android:textAppearance="@style/TextAppearance.SuggestionTitle"
-        android:textColor="?android:attr/colorAccent"/>
-</LinearLayout>
diff --git a/res/layout/suggestion_tile.xml b/res/layout/suggestion_tile.xml
deleted file mode 100644
index cabbafd..0000000
--- a/res/layout/suggestion_tile.xml
+++ /dev/null
@@ -1,58 +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:background="@drawable/selectable_card_grey"
-    android:clickable="true"
-    android:focusable="true"
-    android:gravity="center_vertical"
-    android:minHeight="@dimen/dashboard_tile_minimum_height">
-
-    <ImageView
-        android:id="@android:id/icon"
-        android:layout_width="@dimen/dashboard_tile_image_size"
-        android:layout_height="@dimen/dashboard_tile_image_size"
-        android:layout_marginStart="@dimen/dashboard_tile_image_margin"
-        android:layout_marginEnd="@dimen/dashboard_tile_image_margin"
-        android:scaleType="centerInside"/>
-
-    <RelativeLayout
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_weight="1">
-
-        <TextView android:id="@android:id/title"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:singleLine="true"
-                  android:textAppearance="@style/TextAppearance.TileTitle"
-                  android:ellipsize="marquee"
-                  android:fadingEdge="horizontal"/>
-
-        <TextView android:id="@android:id/summary"
-                  android:layout_width="wrap_content"
-                  android:layout_height="wrap_content"
-                  android:layout_below="@android:id/title"
-                  android:layout_alignStart="@android:id/title"
-                  android:textAppearance="@style/TextAppearance.Small"
-                  android:textColor="?android:attr/textColorSecondary"/>
-
-    </RelativeLayout>
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/suggestion_tile_card.xml b/res/layout/suggestion_tile_card.xml
index 6f94914..fd19b80 100644
--- a/res/layout/suggestion_tile_card.xml
+++ b/res/layout/suggestion_tile_card.xml
@@ -18,9 +18,7 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
-    android:layout_margin="8dp"
-    android:background="@drawable/selectable_card"
+    android:background="@android:color/white"
     android:clickable="true"
-    android:elevation="2dp"
     android:focusable="true"
     android:minHeight="@dimen/dashboard_tile_minimum_height" />
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 65cb20b..cf357c8 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Hou aan om jou vinger op te lig om die verskillende dele van jou vingerafdruk by te voeg"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Vingerafdruk bygevoeg"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Gebruik jou vingerafdruk vir identifikasie om aankope goed te keur wanneer jy hierdie ikoon sien."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Slaan vingerafdrukopstelling oor?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Jy het gekies om jou vingerafdruk te gebruik as een manier om jou foon te ontsluit. As jy dit nou oorslaan, sal jy dit later moet opstel. Dit neem net \'n minuut of wat om op te stel."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Stel skermslot op"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> van algehele batterygebruik"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ontleding sedert battery laas volgelaai is"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Laas volgelaai"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Battery se gebruikdata is benaderd en kan op grond van gebruik verander"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Terwyl dit aktief gebruik word"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"In die agtergrond"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batterygebruik"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sinkroniseer werkdata outomaties"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Laat programme data outomaties herlaai"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Rekeningsinkronisering"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinkronisering aan vir <xliff:g id="ID_1">%1$d</xliff:g> van <xliff:g id="ID_2">%2$d</xliff:g> items"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinkronisering aan vir alle items"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinkronisering af vir alle items"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Inligting oor bestuurde toestel"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Veranderinge en instellings wat deur jou organisasie bestuur word"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Veranderinge en instellings wat deur <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> bestuur word"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 66a870e..eeb8605 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"የእርስዎን የጣት አሻራ የተለያዩ ክፍሎችን ለማከል ጣትዎትን ማንሳትና ማስቀመጥዎን ይቀጥሉ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"የጣት አሻራ ታክሏል"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ይህን አዶ ሲመለከቱ፣ ለይቶ ለማወቅ ወይም ግዢዎችን ለማጽደቅ የእርስዎን የጣት አሻራ ይጠቀሙ።"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"የጣት አሻራን ማቀናበር ይዘለል?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"የእርስዎን ስልክ ለመክፈት የጣት አሻራዎችዎን እንደ አንድ መንገድ መርጠዋል። አሁን ከዘለሉት ይህንን በኋላ ላይ ማዘጋጀት ይኖርብዎታል። ማዘጋጀት አንድ ወይም ሁለት ደቂቃ ብቻ ነው የሚወስደው።"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ማያ ገጽ መቆለፊያ ያዋቅሩ"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ከጠቅላላ ባትሪ"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"መጨረሻ ላይ ሙሉ ኃይል ከነበረበት ጊዜ ጀምሮ ያለው ትንታኔ"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"ሙሉ ኃይል የነበረበት መጨረሻ ጊዜ"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"የባትሪ አጠቃቀም ውሂብ ተቀራራቢ ግምት ሲሆን በአጠቃቀም ላይ በመመስረት ሊለወጥ ይችላል"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"በንቁ አጠቃቀም ላይ እያለ"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"በጀርባ ውስጥ ሳለ"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"የባትሪ አጠቃቀም"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"የስራ ውሂብን በራስ-ሰር አስምር"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"መተግበሪያዎች በራስ-ሰር ያድሱ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"የመለያ ስምሪት"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"ለ<xliff:g id="ID_1">%1$d</xliff:g> ከ<xliff:g id="ID_2">%2$d</xliff:g> ንጥሎች ስምረትን አብራ"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"ለሁሉም ንጥሎች ስምረትን አብራ"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"ለሁሉም ንጥሎች ስምረትን አጥፋ"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"የሚተዳደር መሣሪያ መረጃ"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"በእርስዎ ድርጅት የሚተዳደሩ ለውጦች እና ቅንብሮች"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"በ<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> የሚተዳደሩ ለውጦች እና ቅንብሮች"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 69c9d75..7bac67a 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -404,6 +404,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"استمر في رفع إصبعك لإضافة الأجزاء المختلفة لبصمة الإصبع"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"تمت إضافة بصمة الإصبع"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"عندما ترى هذا الرمز، استخدم بصمة الإصبع لتحديد الهوية أو للموافقة على عمليات الشراء."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"هل تريد تخطي إعداد بصمة الإصبع؟"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"لقد اخترت استخدام بصمة الإصبع كوسيلة لإلغاء تأمين هاتفك. إذا تخطيت ذلك الآن، فستحتاج إلى إعداده لاحقًا. لن يستغرق منك الإعداد سوى دقيقة تقريبًا."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"إعداد تأمين الشاشة"</string>
@@ -2169,8 +2171,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> من إجمالي شحن البطارية"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"تفاصيل الاستخدام منذ آخر شحن كامل"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"آخر شحن كامل"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"بيانات استخدام البطارية تقديرية ويمكن أن تتغير حسب الاستخدام"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"أثناء الاستخدام النشط"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"أثناء الاستخدام في الخلفية"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"استخدام البطارية"</string>
@@ -3793,12 +3794,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"مزامنة بيانات العمل تلقائيًا"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"السماح للتطبيقات بتحديث البيانات تلقائيًا"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"مزامنة الحساب"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"المزامنة قيد التشغيل لـ <xliff:g id="ID_1">%1$d</xliff:g> من إجمالي <xliff:g id="ID_2">%2$d</xliff:g> عنصر"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"المزامنة قيد التشغيل لكل العناصر"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"المزامنة متوقفة لكل العناصر"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"معلومات الجهاز المُدار"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"تتولى مؤسستك إدارة التغييرات والإعدادات."</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"تتولى <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> إدارة التغييرات والإعدادات."</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 7017acc..5f3286e 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Barmaq izini tam əlavə etmək üçün barmağınızı qaldırmağa davam edin"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Barmaq izi əlavə edildi"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Bu ikonanı görən zaman identifikasiya və ya satınalmaları təsdiq etmək üçün barmaq izindən istifadə edin."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Barmaq izi ayarları ötürülsün?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Telefon kilidini açmaq üçün barmaq izindən istifadə etməyi seçmisiniz. Bunu indi ötürsəniz, bu funksiyanı daha sonra ayarlamalı olacaqsınız. Ayarlamaq bir-iki dəqiqə vaxtınızı aparacaq."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ekran kilidi quraşdırın"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya istifadəsi"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Sonuncu tam doldurmadan sonrakı istifadə problemi"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Sonuncu tam doldurma"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Batareya istifadə datası təxminidir və istifadəyə əsasən dəyişir"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktiv istifadədə olarkən"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Arxa fonda olarkən"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batareya istifadəsi"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"İş datasını avtomatik olaraq sinxronizasiya edin"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Tətbiqlərə datanı avtomatik yeniləmək icazəsi verin"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Hesab sinxronizasiyası"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinxronizasiya <xliff:g id="ID_2">%2$d</xliff:g> elementin <xliff:g id="ID_1">%1$d</xliff:g> elementi üçün aktivdir"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Bütün elementlər üçün sinxronizasiya aktivdir"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Bütün elementlər üçün sinxronizasiya deaktivdir"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"İdarə edilən cihaz məlumatı"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Dəyişiklik və ayarlar təşkilat tərəfindən idarə olunur"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Dəyişiklik və ayarlar <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> tərəfindən idarə olunur"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index b1a64ed..0f9d875 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -395,6 +395,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Nastavite da podižete prst da biste dodali različite delove otiska prsta"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Otisak prsta je dodat"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kada vidite ovu ikonu, koristite otisak prsta radi identifikacije ili odobravanja kupovina."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Preskočiti podešavanje otiska prsta?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Izabrali ste da koristite otisak prsta kao jedan način za otključavanje telefona. Ako sada preskočite, moraćete kasnije da obavite ovo podešavanje. Za podešavanje je potrebno samo oko minut vremena."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Podesi zaključavanje ekrana"</string>
@@ -2103,8 +2105,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupnog kapaciteta baterije"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pregled od poslednjeg potpunog punjenja"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Poslednje potpuno punjenje"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Podaci o korišćenju baterije su približni i mogu da se menjaju u zavisnosti od načina korišćenja"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"U aktivnoj upotrebi"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"U pozadini"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Potrošnja baterije"</string>
@@ -3646,12 +3647,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatske sinhronizuj poslovne podatke"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Omogući aplikacijama da automatski osvežavaju podatke"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija naloga"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinhronizacija je uključena za određene stavke (<xliff:g id="ID_1">%1$d</xliff:g> od <xliff:g id="ID_2">%2$d</xliff:g>)"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinhronizacija je uključena za sve stavke"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinhronizacija je isključena za sve stavke"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informacije o uređaju kojim se upravlja"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Promene i podešavanja kojima upravlja organizacija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Promene i podešavanja kojima upravlja <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 4ea0322..4d024f5 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Дакраніцеся некалькі разоў, каб дадаць усе часткі адбітка вашага пальца"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Адбітак пальца дададзены"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Калі вы бачыце гэты значок, вы можаце выкарыстоўваць адбіткі пальцаў для ідэнтыфікацыі або ўхвалення куплі."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Прапусціць усталёўку адбітка пальца?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Вы вырашылі выкарыстоўваць свой адбітак пальца як адзін са спосабоў разблакіроўкі тэлефона. Калі вы прапусціце гэты крок зараз, вам трэба будзе ўсталяваць гэты спосаб пазней. Усталёўка займае ўсяго каля хвіліны."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Наладзіць блакіроўку экрана"</string>
@@ -2126,8 +2128,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ад усяго зараду"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Разбіўка з моманту апошняй поўнай зарадкі"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Апошняя поўная зарадка"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Даныя аб выкарыстанні батарэі — прыблізныя і могуць змяняцца ў залежнасці ад выкарыстання"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Падчас актыўнага выкарыстання"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"У фонавым рэжыме"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Спажыванне зараду"</string>
@@ -3697,12 +3698,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Аўтаматычна сінхранізаваць працоўныя даныя"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Дазволіць праграмам абнаўляць даныя аўтаматычна"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Сінхранізацыя ўліковага запісу"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Сінхранізацыя ўключана для <xliff:g id="ID_1">%1$d</xliff:g> з <xliff:g id="ID_2">%2$d</xliff:g> элементаў"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Сінхранізацыя ўключана для ўсіх элементаў"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Сінхранізацыя выключана для ўсіх элементаў"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Інфармацыя пра прыладу пад кіраваннем"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Змяненні і налады знаходзяцца пад кіраваннем вашай арганізацыі"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Змяненні і налады знаходзяцца пад кіраваннем <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 5e6aafb..afdc07c 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Продължавайте да вдигате пръста си, за да добавите различните части от отпечатъка си"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Отпечатъкът е добавен"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Когато видите тази икона, използвайте отпечатъка си за идентификация или за одобряване на покупки."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Пропуск. на настройването на отпечатък?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Избрахте да използвате отпечатъка си като един от начините за отключване на телефона си. Ако пропуснете сега, ще трябва да настроите по-късно. Настройването отнема около минута."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Заключване на екрана: Настройване"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> от общия капацитет на батерията"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Разбивка след последното пълно зареждане"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Последно пълно зареждане"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Данните за батерията са приблизителни и могат да се променят въз основа на използването"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"При активна употреба"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"При работа на заден план"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Използване на батерията"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Автоматично синхронизиране на данните от служебния профил"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Позволете на приложенията да опресняват автоматично данните"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Синхронизиране на профила"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Синхронизирането е включено за <xliff:g id="ID_1">%1$d</xliff:g> от <xliff:g id="ID_2">%2$d</xliff:g> елемента"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Синхронизирането е включено за всички елементи"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Синхронизирането е изключено за всички елементи"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Информация за управляваното устройство"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Промени и настройки, управлявани от организацията ви"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Промени и настройки, управлявани от <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 2f5f1ee..8df0fb1 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"আপনার আঙ্গুলের ছাপের বিভিন্ন অংশ যোগ করার জন্য বারবার আঙুল তুলে আবার স্পর্শ করতে থাকুন"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"আঙ্গুলের ছাপ যোগ করা হয়েছে"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"যখন আপনি এই আইকনটি দেখতে পাবেন তখন শনাক্ত করার জন্য অথবা কেনাকাটাগুলি অনুমোদন করতে আপনার আঙ্গুলের ছাপ ব্যবহার করুন।"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"আঙ্গুলের ছাপ সেট আপ করা এড়িয়ে যাবেন?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"আপনি আপনার ফোন আনলক করার একটি উপায় হিসেবে আপনার আঙ্গুলের ছাপ ব্যবহারের ব্যবস্থাটিকে বেছে নিয়েছেন। আপনি যদি এখনই এটিকে এড়িয়ে যান, তাহলে আপনাকে পরে আবার এটি সেট আপ করতে হবে। সেট আপ করতে মাত্র এক মিনিট এর মত সময় লাগতে পারে।"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"স্ক্রীন লক সেট আপ করুন"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 03c0e44..bf4ae01 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -397,6 +397,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Nastavite podizati prst da dodate različite segmente otiska"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Dodan je otisak prsta"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kada vidite ovu ikonu, koristite otisak prsta za identifikaciju ili odobravanje kupovine."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Preskočiti postavljanje otiska prsta?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Odabrali ste da koristite otisak prsta kao jedan od načina za otključavanja telefona. Ukoliko sada preskočite ovaj korak, morat ćete ga postaviti kasnije. Postavka traje otprilike samo jednu minutu."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Postavi zaključavanje ekrana"</string>
@@ -2110,8 +2112,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupne baterije"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pregled od posljednje potpune napunjenosti"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Posljednja potpuna napunjenost"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Podaci o korištenju baterije su okvirni i mogu se promijeniti u zavisnosti od upotrebe"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Dok se aktivno koristi"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Dok je u pozadini"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Korištenje baterije"</string>
@@ -3661,12 +3662,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatsko sinhroniziranje radnih podataka"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Omogućava aplikacijama automatsko osvježavanje podataka"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinhronizacija uključena za <xliff:g id="ID_1">%1$d</xliff:g> od ukupno <xliff:g id="ID_2">%2$d</xliff:g> stav."</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinhronizacija je uključena za sve stavke"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinhronizacija je isključena za sve stavke"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Podaci o upravljanom uređaju"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Promjene i postavke kojima upravlja vaša organizacija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Promjene i postavke kojima upravlja organizacija <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 5c54dfd..01bcaad 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Ves aixecant el dit perquè es puguin afegir les diferents parts de l\'empremta digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Empremta digital afegida"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Quan vegis aquesta icona, podràs fer servir l\'empremta digital per identificar-te o aprovar compres."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Sortir de configuració d\'empremta digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Has triat utilitzar la teva empremta digital per desbloquejar el telèfon. Si omets aquest pas ara, hauràs de fer aquesta configuració més endavant. Aquest procés només triga un parell de minuts."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configura el bloqueig de pantalla"</string>
@@ -794,7 +796,7 @@
     <string name="wifi_eap_anonymous" msgid="2989469344116577955">"Identitat anònima"</string>
     <string name="wifi_password" msgid="5948219759936151048">"Contrasenya"</string>
     <string name="wifi_show_password" msgid="6461249871236968884">"Mostra la contrasenya"</string>
-    <string name="wifi_ap_band_config" msgid="1611826705989117930">"Selecciona la banda AP"</string>
+    <string name="wifi_ap_band_config" msgid="1611826705989117930">"Selecciona la banda del punt d\'accés"</string>
     <string name="wifi_ap_choose_2G" msgid="8724267386885036210">"Banda de 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="8137061170937978040">"Banda de 5 GHz"</string>
     <string name="wifi_ip_settings" msgid="3359331401377059481">"Configuració IP"</string>
@@ -882,7 +884,7 @@
     <string name="wifi_hotspot_name_summary_connecting" msgid="3378299995508671967">"S\'està activant <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>..."</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="3888672084861445362">"Altres dispositius es poden connectar a <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_hotspot_password_title" msgid="1955592302902091281">"Contrasenya de la Wi-Fi"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="1165801173359290681">"Banda AP"</string>
+    <string name="wifi_hotspot_ap_band_title" msgid="1165801173359290681">"Banda del punt d\'accés"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="1203489406068036455">"Utilitza el punt d\'accés Wi-Fi per crear una xarxa Wi-Fi per a altres dispositius. El punt d\'accés Wi-Fi proporciona Internet mitjançant la teva connexió de dades mòbils. És possible que s\'hi apliquin càrrecs addicionals per l\'ús de dades mòbils."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="857988412470694109">"Les aplicacions poden crear un punt d\'accés Wi-Fi per compartir contingut amb els dispositius que es trobin a prop."</string>
     <string name="wifi_tether_starting" msgid="1322237938998639724">"S\'està activant el punt d\'accés Wi-Fi…"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> d\'ús de la bateria"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglossament des de l\'última càrrega completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última càrrega completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Les dades d\'ús de la bateria són aproximades i poden variar en funció de l\'ús del dispositiu"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Durant l\'ús actiu"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"En segon pla"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Ús de la bateria"</string>
@@ -3039,10 +3040,10 @@
     <string name="switch_off_text" msgid="1139356348100829659">"Desactivat"</string>
     <string name="screen_pinning_title" msgid="2292573232264116542">"Fixació de pantalla"</string>
     <string name="screen_pinning_description" msgid="3360904523688769289">"Si aquesta opció està activada, pots fixar la pantalla per mantenir-la visible fins que deixis de fixar-la.\n\nPer fer-ho:\n\n1. Assegura\'t que la fixació de pantalla estigui activada.\n\n2. Obre la pantalla que vulguis fixar.\n\n3. Toca Aplicacions recents.\n\n4. Llisca cap amunt i toca la icona de fixació."</string>
-    <string name="screen_pinning_unlock_pattern" msgid="8282268570060313339">"Sol·licita el patró de desbloqueig per anul·lar"</string>
-    <string name="screen_pinning_unlock_pin" msgid="8757588350454795286">"Demana el codi PIN per anul·lar"</string>
-    <string name="screen_pinning_unlock_password" msgid="2514079566873826434">"Demana la contrasenya per anul·lar"</string>
-    <string name="screen_pinning_unlock_none" msgid="3814188275713871856">"Bloqueja el dispositiu en anul·lar la fixació"</string>
+    <string name="screen_pinning_unlock_pattern" msgid="8282268570060313339">"Sol·licita el patró de desbloqueig per deixar de fixar"</string>
+    <string name="screen_pinning_unlock_pin" msgid="8757588350454795286">"Demana el codi PIN per deixar de fixar"</string>
+    <string name="screen_pinning_unlock_password" msgid="2514079566873826434">"Demana la contrasenya per deixar de fixar"</string>
+    <string name="screen_pinning_unlock_none" msgid="3814188275713871856">"Bloqueja el dispositiu en deixar de fixar"</string>
     <string name="opening_paragraph_delete_profile_unknown_company" msgid="2232461523882170874">"L\'administrador d\'aquest perfil professional és:"</string>
     <string name="managing_admin" msgid="8843802210377459055">"Gestionat per <xliff:g id="ADMIN_APP_LABEL">%s</xliff:g>"</string>
     <string name="experimental_preference" msgid="7083015446690681376">"(Experimental)"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronitza les dades professionals automàticament"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permet que les aplicacions actualitzin les dades automàticament"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronització del compte"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"La sincronització està activada per a <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> elements"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"La sincronització està activada per a tots els elements"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"La sincronització està desactivada per a tots els elements"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informació del dispositiu gestionat"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"La teva organització gestiona els canvis i la configuració"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> gestiona els canvis i la configuració"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 4019452..d5fc40e 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Opakovaně prst zvedněte, aby se zaznamenaly různé části otisku"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Otisk byl přidán"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Když je zobrazena tato ikona, můžete se identifikovat nebo schválit nákup otiskem prstu."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Přeskočit nastavení otisku prstu?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Jako jeden ze způsobů odemknutí telefonu jste se rozhodli používat otisk prstu. Pokud nastavení přeskočíte, bude třeba jej dokončit později. Nastavení trvá jen chviličku."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Nastavit zámek obrazovky"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> z celkové kapacity baterie"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Přehled od posledního úplného nabití"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Poslední úplné nabití"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Údaje o využití baterie jsou přibližné a mohou se změnit podle způsobu používání"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Při aktivním používání"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Na pozadí"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Využití baterie"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automaticky synchronizovat pracovní data"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Nechat aplikace automaticky aktualizovat data"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Synchronizace účtů"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synchronizace je zapnuta u <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g> položek"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synchronizace je zapnuta u všech položek"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synchronizace je vypnuta u všech položek"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informace o spravovaném zařízení"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Změny a nastavení spravuje organizace"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Změny a nastavení spravuje organizace <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 3861f2d..acead89 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Bliv ved med at løfte fingeren for at få hele fingeraftrykket med"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingeraftryk tilføjet"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Når du ser dette ikon, kan du bruge dit fingeraftryk til identifikation eller til at godkende køb."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Vil du springe registrering af fingeraftryk over?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Du har valgt at bruge fingeraftryk som en metode til at låse din telefon op. Hvis du springer det over nu, skal du konfigurere dette senere. Konfigurationen tager kun omkring et minut."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Konfigurer skærmlås"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> af det samlede batteriforbrug"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Siden sidste fulde opladning"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Sidste fulde opladning"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Data om batteriforbrug er omtrentlig og kan ændre sig afhængigt af brug"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Under aktiv brug"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Mens den kører i baggrunden"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batteriforbrug"</string>
@@ -2232,7 +2233,7 @@
     <string name="backup_erase_dialog_title" msgid="1027640829482174106"></string>
     <string name="backup_erase_dialog_message" msgid="5221011285568343155">"Vil du stoppe sikkerhedskopieringen af dine Wi-Fi-adgangskoder, bogmærker, andre indstillinger og appdata samt slette alle kopier på Googles servere?"</string>
     <string name="fullbackup_erase_dialog_message" msgid="694766389396659626">"Vil du stoppe med at sikkerhedskopiere enhedsdata (f.eks. Wi-Fi-adgangskoder og opkaldshistorik) og appdata (f.eks. indstillinger og filer, som apps har gemt) og slette alle kopier på fjernservere?"</string>
-    <string name="fullbackup_data_summary" msgid="960850365007767734">"Foretag automatisk ekstern sikkerhedskopiering af enhedsdata (f.eks. Wi-Fi-adgangskoder og opkaldshistorik) og appdata (f.eks. indstillinger og filer, der er gemt i apps).\n\n Når du slår automatisk sikkerhedskopiering til, gemmes enheds- og appdata med jævne mellemrum eksternt. Appdata kan være alle former for data, som en app har gemt (afhængigt af udviklerens indstillinger), f.eks. potentielt følsomme data, såsom kontaktpersoner, beskeder og billeder."</string>
+    <string name="fullbackup_data_summary" msgid="960850365007767734">"Foretag automatisk ekstern backup af enhedsdata (f.eks. Wi-Fi-adgangskoder og opkaldshistorik) og appdata (f.eks. indstillinger og filer, der er gemt i apps).\n\n Når du slår automatisk backup til, gemmes enheds- og appdata med jævne mellemrum eksternt. Appdata kan være alle former for data, som en app har gemt (afhængigt af udviklerens indstillinger), f.eks. potentielt følsomme data, såsom kontaktpersoner, beskeder og billeder."</string>
     <string name="device_admin_settings_title" msgid="4960761799560705902">"Indstillinger for enhedsadministrator"</string>
     <string name="active_device_admin_msg" msgid="578748451637360192">"App til enhedsadministration"</string>
     <string name="remove_device_admin" msgid="9207368982033308173">"Deaktiver denne app til enhedsadministration"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synkroniser arbejdsdata automatisk"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Giv apps tilladelse til at opdatere data automatisk"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synkronisering er aktiveret for <xliff:g id="ID_1">%1$d</xliff:g> ud af <xliff:g id="ID_2">%2$d</xliff:g> elementer"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synkronisering er aktiveret for alle elementer"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synkronisering er deaktiveret for alle elementer"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Oplysninger om administrerede enheder"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ændringer og indstillinger, der administreres af din organisation"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Ændringer og indstillinger, der administreres af <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 78be811..facde25 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -391,6 +391,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Hebe den Finger immer wieder an, um alle unterschiedlichen Teile deines Fingerabdrucks hinzuzufügen"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingerabdruck hinzugefügt"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Wenn du dieses Symbol siehst, kannst du deinen Fingerabdruck zur Identifizierung oder zur Autorisierung eines Kaufs verwenden."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Fingerabdruck-Einrichtung überspringen?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Du hast festgelegt, dass du unter anderem deinen Fingerabdruck zum Entsperren deines Smartphones verwenden möchtest. Wenn du diesen Schritt jetzt überspringst, musst du die Einrichtung zu einem späteren Zeitpunkt vornehmen. Die Einrichtung dauert nur ca. eine Minute."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Displaysperre einrichten"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> des gesamten Akkuverbrauchs"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Verbrauchsdetails seit letzter vollständiger Ladung"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Letzte vollständige Aufladung"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Die Daten zum Akkuverbrauch sind eine Schätzung und können sich je nach Nutzung ändern"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Bei aktiver Nutzung"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Im Hintergrund"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akkunutzung"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Arbeitsdaten automatisch synchronisieren"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Apps die automatische Aktualisierung von Daten erlauben"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Kontosynchronisierung"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synchronisierung für <xliff:g id="ID_1">%1$d</xliff:g> von <xliff:g id="ID_2">%2$d</xliff:g> Elementen aktiviert"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synchronisierung für alle Elemente aktiviert"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synchronisierung für alle Elemente deaktiviert"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Info zu verwalteten Geräten"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Änderungen und Einstellungen, die von deiner Organisation verwaltet werden"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Änderungen und Einstellungen, die von <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> verwaltet werden"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index f815fe6..08315c2 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Συνεχίστε να ανασηκώνετε το δάχτυλό σας, για να προσθέσετε τα διάφορα τμήματα του δακτυλικού σας αποτυπώματος"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Προστέθηκε δακτυλ. αποτύπωμα"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Όταν βλέπετε αυτό το εικονίδιο, χρησιμοποιήστε το δακτυλικό σας αποτύπωμα για ταυτοποίηση ή για την έγκριση αγορών."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Παράβλεψη ρύθμ. μοναδ. χαρακτηριστικού;"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Επιλέξατε να χρησιμοποιήσετε το μοναδικό χαρακτηριστικό σας ως έναν τρόπο για να ξεκλειδώσετε το τηλέφωνό σας. Εάν κάνετε παράβλεψη τώρα, θα πρέπει να το ρυθμίσετε αυτό αργότερα. Η εγκατάσταση διαρκεί μόνο ένα λεπτό περίπου."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ρύθμιση κλειδώματος οθόνης"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> της συνολικής μπαταρίας"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ανάλυση από την τελευταία πλήρη φόρτιση"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Τελευταία πλήρης φόρτιση"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Τα δεδομένα χρήσης μπαταρίας υπολογίζονται κατά προσέγγιση και μπορεί να αλλάξουν ανάλογα με τη χρήση"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Κατά την ενεργή χρήση"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Κατά την εκτέλεση στο παρασκήνιο"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Χρήση της μπαταρίας"</string>
@@ -2535,12 +2536,12 @@
       <item quantity="one">Κατάργηση ή ορισμός του πιστοποιητικού ως αξιόπιστου</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="1489335297837656666">
-      <item quantity="other">Ο τομέας <xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού στη συσκευή σας, η οποία μπορεί να του επιτρέπει να παρακολουθεί τη δραστηριότητα δικτύου της συσκευής σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
-      <item quantity="one">Ο τομέας <xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού στη συσκευή σας, η οποία μπορεί να του επιτρέπει να παρακολουθεί τη δραστηριότητα δικτύου της συσκευής σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
+      <item quantity="other">Ο τομέας <xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού στη συσκευή σας, η οποία μπορεί να του επιτρέπει να παρακολουθεί τη δραστηριότητα δικτύου της συσκευής σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστοτόπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
+      <item quantity="one">Ο τομέας <xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού στη συσκευή σας, η οποία μπορεί να του επιτρέπει να παρακολουθεί τη δραστηριότητα δικτύου της συσκευής σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστοτόπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message" formatted="false" msgid="30645643499556573">
-      <item quantity="other">Ο τομέας <xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού για το προφίλ εργασίας σας, η οποία μπορεί να του επιτρέψει να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
-      <item quantity="one">Ο τομέας <xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού για το προφίλ εργασίας σας, η οποία μπορεί να του επιτρέψει να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστότοπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
+      <item quantity="other">Ο τομέας <xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού για το προφίλ εργασίας σας, η οποία μπορεί να του επιτρέψει να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστοτόπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
+      <item quantity="one">Ο τομέας <xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> εγκατέστησε μια αρχή έκδοσης πιστοποιητικού για το προφίλ εργασίας σας, η οποία μπορεί να του επιτρέψει να παρακολουθεί τη δραστηριότητα του δικτύου εργασίας σας, συμπεριλαμβανομένων των μηνυμάτων ηλεκτρονικού ταχυδρομείου, των εφαρμογών και των ασφαλών ιστοτόπων.\n\nΓια περισσότερες πληροφορίες σχετικά με αυτό το πιστοποιητικό, επικοινωνήστε με τον διαχειριστή σας.</item>
     </plurals>
     <string name="ssl_ca_cert_warning_message" msgid="8216218659139190498">"Ένα τρίτο μέρος έχει τη δυνατότητα να παρακολουθεί τη δραστηριότητα του δικτύου σας, όπως μηνύματα ηλεκτρονικού ταχυδρομείου, εφαρμογές και ασφαλείς ιστότοπους. \n\nΑυτό είναι δυνατό μέσω ενός έγκυρου διαπιστευτηρίου που έχει εγκατασταθεί στη συσκευή σας."</string>
     <plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="2426799352517325228">
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Αυτόματος συγχρονισμός δεδομένων εργασίας"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Επιτρέπει στις εφαρμογές να ανανεώνουν δεδομένα αυτόματα"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Συγχρονισμός λογαριασμού"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Ο συγχρονισμός είναι ενεργοποιημένος για <xliff:g id="ID_1">%1$d</xliff:g> από <xliff:g id="ID_2">%2$d</xliff:g> στοιχεία"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Ο συγχρονισμός είναι ενεργοποιημένος για όλα τα στοιχεία"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Ο συγχρονισμός είναι απενεργοποιημένος για όλα τα στοιχεία"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Πληροφορίες διαχειριζόμενης συσκευής"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Η διαχείριση των αλλαγών και των ρυθμίσεων γίνεται από τον οργανισμό σας"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Η διαχείριση των αλλαγών και των ρυθμίσεων γίνεται από <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index c1e7f01..d7b86e0 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Keep lifting your finger to add the different parts of your fingerprint"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingerprint added"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"When you see this icon, use your fingerprint for identification or to approve purchases."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Skip fingerprint setup?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"You’ve chosen to use your fingerprint as one way to unlock your phone. If you skip now, you’ll need to set this up later. Setup takes only a minute or so."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Set up screen lock"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Last full charge"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Battery usage data is approximate and can change based on usage"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"While in active use"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"While in background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Battery usage"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatically sync work data"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Let apps refresh data automatically"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sync on for <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g> items"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sync on for all items"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sync off for all items"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Managed device info"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Changes &amp; settings managed by your organisation"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Changes &amp; settings managed by <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index c1e7f01..d7b86e0 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Keep lifting your finger to add the different parts of your fingerprint"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingerprint added"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"When you see this icon, use your fingerprint for identification or to approve purchases."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Skip fingerprint setup?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"You’ve chosen to use your fingerprint as one way to unlock your phone. If you skip now, you’ll need to set this up later. Setup takes only a minute or so."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Set up screen lock"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Last full charge"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Battery usage data is approximate and can change based on usage"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"While in active use"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"While in background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Battery usage"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatically sync work data"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Let apps refresh data automatically"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sync on for <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g> items"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sync on for all items"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sync off for all items"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Managed device info"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Changes &amp; settings managed by your organisation"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Changes &amp; settings managed by <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index c1e7f01..d7b86e0 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Keep lifting your finger to add the different parts of your fingerprint"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingerprint added"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"When you see this icon, use your fingerprint for identification or to approve purchases."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Skip fingerprint setup?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"You’ve chosen to use your fingerprint as one way to unlock your phone. If you skip now, you’ll need to set this up later. Setup takes only a minute or so."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Set up screen lock"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> of overall battery"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown since last full charge"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Last full charge"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Battery usage data is approximate and can change based on usage"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"While in active use"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"While in background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Battery usage"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatically sync work data"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Let apps refresh data automatically"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Account sync"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sync on for <xliff:g id="ID_1">%1$d</xliff:g> of <xliff:g id="ID_2">%2$d</xliff:g> items"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sync on for all items"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sync off for all items"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Managed device info"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Changes &amp; settings managed by your organisation"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Changes &amp; settings managed by <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index e58b933..0fc65a0 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -367,7 +367,7 @@
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7066417934622827305">"Usa tus huellas digitales"</string>
     <string name="security_settings_fingerprint_enroll_introduction_message" msgid="3508870672887336095">"Solo toca el sensor de huellas digitales para desbloquear tu teléfono, autorizar compras o acceder a las apps. Ten cuidado con las personas que agregas, ya que todas las huellas digitales que agregues podrán realizar estas acciones.\n\nNota: Tu huella digital puede ser menos segura que un PIN o un patrón eficaz."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1550756694054944874">"Usa tu huella digital para desbloquear el teléfono o aprobar compras.\n\nNota: No puedes usar tu huella digital para desbloquear este dispositivo. Para obtener más información, comunícate con el administrador de la organización."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6817326798834882531">"Usa tu huella digital para desbloquear el teléfono o aprobar compras.\n\nNota: La huella digital es menos segura que un PIN o un patrón eficaz."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6817326798834882531">"Usa tu huella digital para desbloquear el teléfono o aprobar compras.\n\nNota: Es posible que la huella digital no sea tan segura como un PIN o un patrón eficaz."</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="3199351118385606526">"Cancelar"</string>
     <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="7472492858148162530">"Continuar"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="5021369420474432665">"Omitir"</string>
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Sigue levantando el dedo para agregar diferentes partes de tu huella digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Se agregó la huella digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Cuando veas este ícono, usa tu huella digital para identificarte o aprobar compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"¿Omitir configuración de huella digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Decidiste usar la huella digital como una de las formas para desbloquear el teléfono. Si omites este paso, tendrás que configurarla más tarde. La configuración tarda un minuto aproximadamente."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar bloqueo de pantalla"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de la batería total"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglose desde la última carga completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última carga completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Los datos sobre la duración de la batería son aproximados y pueden cambiar en función del uso"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Durante el uso activo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Mientras se ejecuta en segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Uso de la batería"</string>
@@ -3595,12 +3596,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar los datos de trabajo automáticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permitir que las apps actualicen datos automáticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronización activada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> elementos"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronización activada para todos los elementos"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronización desactivada para todos los elementos"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Información del dispositivo administrado"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Cambios y opciones de configuración que administra tu organización"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Cambios y opciones de configuración que administra <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 7dceecf..e2ba627 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Sigue levantando el dedo para añadir las distintas partes de tu huella digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Huella digital añadida"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Cuando veas este icono, utiliza tu huella digital para identificarte o aprobar compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"¿Saltar la configuración de huella digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Has decidido utilizar tu huella digital para desbloquear el teléfono. Si te saltas este paso ahora, tendrás que configurarlo más tarde (este proceso tarda aproximadamente un minuto)."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar bloqueo de pantalla"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> del total de batería"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Desglose desde la última carga completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última carga completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Los datos de uso de la batería son aproximados y pueden variar en función del uso"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"En uso activo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"En segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Uso de batería"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar datos del trabajo automáticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permitir que las aplicaciones actualicen los datos automáticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronización de la cuenta"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Elementos con la sincronización activada: <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronización activada para todos los elementos"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronización desactivada para todos los elementos"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Información sobre el dispositivo administrado"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Cambios y ajustes administrados por tu organización"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Cambios y ajustes administrados por <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 0a01457..8b923be 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Tõstke sõrme, et lisada sõrmejälje eri osad"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Sõrmejälg on lisatud"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kui näete seda ikooni, kasutage tuvastamiseks või ostude kinnitamiseks oma sõrmejälge."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Kas jätta sõrmejälje seadistus vahele?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Valisite telefoni avamise üheks viisiks sõrmejälje kasutamise. Kui seadistamise praegu vahele jätate, peate seda tegema hiljem. See võtab ainult umbes minuti."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Seadista ekraanilukk"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kogu akumahust"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Üksikasjalik teave alates viimasest täislaadimisest"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Viimane täislaadimine"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Aku kasutuse andmed on ligikaudsed ja võivad olenevalt kasutusest muutuda"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktiivse kasutamise ajal"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Taustal"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akukasutus"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sünkrooni tööandmed automaatselt"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Luba rakendustel andmeid automaatselt värskendada"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Konto sünkroonimine"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sünkroonimine on sisse lülitatud <xliff:g id="ID_1">%1$d</xliff:g> üksuse jaoks <xliff:g id="ID_2">%2$d</xliff:g>-st"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sünkroonimine on kõigi üksuste jaoks sisse lülitatud"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sünkroonimine on kõigi üksuste jaoks välja lülitatud"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Hallatava seadme teave"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Teie organisatsiooni hallatavad muudatused ja seaded"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Organisatsiooni <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> hallatavad muudatused ja seaded"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 0b67585..0d4d3bf 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Jarraitu hatza jasotzen, hatz-markaren zati guztiak gehitzeko"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Gehitu da hatz-marka"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Ikono hau ikusten duzunean, erabili hatz-marka zeure burua identifikatzeko edo erosketak onartzeko."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Hatz-markaren konfigurazioa saltatu?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Hatz-marka erabiltzea aukeratu duzu telefonoa desblokeatzeko modu bat gisa. Urratsa saltatzen baduzu, geroago konfiguratu beharko duzu. Minutu bat inguru baino ez duzu beharko konfiguratzeko."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Konfiguratu pantailaren blokeoa"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Bateria osoaren <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Guztiz kargatu zenetik emandako erabileraren datuak"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Azkenekoz guztiz kargatu zenetik"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Bateriaren erabilerari buruzko datuak gutxi gorabeherakoak dira eta aldatu egin litezke erabileraren arabera"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktiboki erabili bitartean"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Atzeko planoan dagoen bitartean"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Bateriaren erabilera"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sinkronizatu laneko datuak automatikoki"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Utzi aplikazioei datuak automatikoki freskatzen"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Kontuaren sinkronizazioa"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g> elementuk aktibatuta dute sinkronizazioa"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Elementu guztiek aktibatuta dute sinkronizazioa"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Elementu guztiek desaktibatuta dute sinkronizazioa"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Gailu kudeatuaren informazioa"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Erakundeak kudeatzen dituen aldaketak eta ezarpenak"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> erakundeak kudeatzen dituen aldaketak eta ezarpenak"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9380355..a78ac39 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"مدام انگشتتان را جابه‌جا کنید تا بخش‌های مختلف اثر انگشتتان را اضافه کنید"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"اثر انگشت اضافه شد"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"وقتی این نماد را می‌بینید، از اثر انگشتتان برای شناسایی یا تأیید خریدها استفاده کنید."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"از تنظیم اثر انگشت رد می‌شوید؟"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"انتخاب کرده‌اید که از اثر انگشتتان به‌عنوان روشی برای باز کردن قفل تلفن استفاده کنید. اگر اکنون این مرحله را رد کنید، باید بعداً آن را تنظیم کنید. تنظیم فقط یک دقیقه یا همین حدود طول می‌کشد."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"تنظیم قفل صفحه"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> از کل شارژ باتری"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"تفکیک مصرف شارژ از زمان آخرین شارژ کامل"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"آخرین شارژ کامل"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"داده‌های مصرف باتری تقریبی هستند و بسته‌ به استفاده می‌توانند تغییر کنند"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"هنگام استفاده فعال"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"درحالت پس‌زمینه"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"مصرف باتری"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"همگام‌سازی خودکار داده‌های کاری"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"اجازه دادن به برنامه‌ها برای بازخوانی خودکار داده‌ها"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"همگام‌سازی حساب"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"همگام‌سازی <xliff:g id="ID_1">%1$d</xliff:g> مورد از <xliff:g id="ID_2">%2$d</xliff:g> مورد روشن است"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"همگام‌سازی همه موارد روشن است"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"همگام‌سازی همه موارد خاموش است"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"اطلاعات دستگاه مدیریت‌شده"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"تغییرات و تنظیماتی که توسط سازمان شما مدیریت می‌شوند"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"تغییرات و تنظیماتی که توسط <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> مدیریت می‌شوند"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 5da99cf..6952d8c 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Kosketa tunnistinta toistuvasti, niin sormenjäljen eri osat lisätään."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Sormenjälki lisätty"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kun tämä kuvake on näkyvissä, voit tunnistautua tai vahvistaa ostoksen sormenjäljellä."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Ohitetaanko sormenjäljen määritys?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Olet valinnut sormenjäljen yhdeksi tavaksi avata puhelimesi lukitus. Jos ohitat tämän nyt, sinun on määritettävä se myöhemmin. Määritys kestää vain noin minuutin."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ota näytön lukitus käyttöön"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kaikesta virrankulutuksesta"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Erittely edellisen täyden latauksen jälkeen"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Edellinen täysi lataus"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Akun käyttötiedot ovat arvioita ja voivat muuttua käytön perusteella."</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktiivisen käytön aikana"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Taustalla"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akun käyttö"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synkronoi työtiedot automaattisesti"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Salli sovellusten päivittää tietoja automaattisesti."</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Tilin synkronointi"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synkronointi käytössä <xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g> kohteella"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synkronointi käytössä kaikilla kohteilla"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synkronointi pois käytöstä kaikilla kohteilla"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Hallinnoidun laitteen tiedot"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Organisaatiosi hallitsemat valinnat ja asetukset"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Valinnat ja asetukset, joita hallitsee <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 1fe2cec..7759013 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Déplacez légèrement votre doigt lorsque vous le relevez pour ajouter toutes les parties de votre empreinte digitale."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Empreinte digitale ajoutée"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Lorsque vous voyez cette icône, vous pouvez utiliser votre empreinte digitale pour vous identifier ou pour autoriser un achat."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Ignorer config. empreintes digitales?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Vous avez choisi de déverrouiller votre téléphone à l\'aide de votre empreinte digitale. Si vous ignorez cette étape maintenant, vous devrez reprendre la configuration plus tard. L\'opération prend environ une minute."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurer le verrouil. de l\'écran"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de l\'utilisation totale de la pile"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Répartition depuis la dernière charge complète"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Dernière charge complète"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Les données d\'utilisation de la pile sont approximatives et peuvent changer en fonction de l\'utilisation"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Durant l\'utilisation active"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Lorsqu\'elle fonctionne en arrière-plan"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Utilisation de la pile"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synchroniser automatiquement les données professionnelles"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Autoriser les applications à actualiser les données automatiquement"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"La synchronisation est activée pour <xliff:g id="ID_1">%1$d</xliff:g> éléments sur <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"La synchronisation est activée pour tous les éléments"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"La synchronisation est désactivée pour tous les éléments"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Renseignements sur l\'appareil géré"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Changements et paramètres gérés par votre organisation"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Changements et paramètres gérés par <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index b672689..76b0e51 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Maintenez le doigt relevé pour ajouter les différentes parties de votre empreinte digitale"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Empreinte digitale ajoutée"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Quand cette icône s\'affiche, utilisez votre empreinte digitale pour vous identifier ou pour approuver des achats."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Ignorer config. empreintes digitales ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Vous avez choisi de déverrouiller votre téléphone à l\'aide de votre empreinte digitale. Si vous ignorez cette étape maintenant, vous devrez reprendre la configuration ultérieurement. L\'opération prend environ une minute."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Verrouillage de l\'écran"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> de la batterie"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Répartition depuis la dernière charge complète"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Dernière charge complète"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Les informations relatives à la batterie sont approximatives et peuvent varier en fonction de l\'utilisation"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Lors des périodes d\'utilisation active"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Lorsque l\'application s\'exécute en arrière-plan"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Utilisation de la batterie"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synchronisation automatique des données professionnelles"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Autoriser les applications à actualiser les données automatiquement"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Synchronisation du compte"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synchronisation activée pour <xliff:g id="ID_1">%1$d</xliff:g> élément(s) sur <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synchronisation activée pour tous les éléments"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synchronisation désactivée pour tous les éléments"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Infos sur l\'appareil géré"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Modifications et paramètres gérés par votre entreprise"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Modifications et paramètres gérés par <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index ed0a158..7d95cf4 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Continúa levantando o dedo para engadir as diferentes partes da túa impresión dixital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Engadiuse a impresión dixital"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Cando vexas esta icona, utiliza a impresión dixital para efectuar a identificación ou autorizar as compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Omitir configuración impresión dixital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Decidiches usar a túa impresión dixital para desbloquear o teu teléfono. Se omites este paso agora, terás que configuralo máis tarde. Non tardarás máis dun minuto en facelo."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar bloqueo da pantalla"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da batería total"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Análise detallada desde a última carga completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última carga completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Os datos da utilización da batería son aproximados e poden cambiar en función do uso"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Durante o uso activo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Mentres está en segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Uso da batería"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar datos do traballo automaticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permite ás aplicacións actualizar os datos automaticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronización da conta"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"A sincronización está activada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> elementos"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"A sincronización está activada para todos os elementos"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"A sincronización está desactivada para todos os elementos"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Información sobre o dispositivo xestionado"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Os cambios e a configuración están xestionados pola túa organización"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Os cambios e a configuración están xestionados por <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index cb0b10b..0acddd5 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"તમારી ફિંગરપ્રિન્ટના વિવિધ ભાગ ઉમેરવા માટે તમારી આંગળી ઉપાડતા રહો"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ફિંગરપ્રિન્ટ ઉમેરી"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"જ્યારે તમે આ આઇકન જુઓ, ત્યારે ઓળખ માટે અથવા ખરીદી મંજૂર કરવા માટે તમારી ફિંગરપ્રિન્ટનો ઉપયોગ કરો."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ફિંગરપ્રિન્ટ સેટ કરવાનું છોડીએ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"તમે તમારા ફોનને અનલૉક કરવા માટેની એક રીત તરીકે તમારી ફિંગરપ્રિન્ટને ઉપયોગમાં લેવાનું પસંદ કર્યું છે. જો તમે હવે છોડી દો છો, તો તમારે આને પછીથી સેટ કરવું પડશે. સેટઅપમાં માત્ર એક મિનિટ અથવા તેથી વધુ સમય લાગે છે."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"સ્ક્રીન લૉક સેટ કરો"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index dc2915a..fc1ddcc 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"अपने फ़िंगरप्रिंट के अलग-अलग भागों को जोड़ने के लिए अपनी अंगुली को उठाते रहें"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"फ़िंगरप्रिंट जोड़ा गया"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"जब आपको यह आइकन दिखाई दे, तब पहचान के लिए या खरीदारियों की स्वीकृति देने के लिए अपने फ़िंगरप्रिंट का उपयोग करें."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फ़िंगरप्रिंट सेटअप छोड़ें?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"आपने अपने फ़ोन को अनलॉक करने के एक तरीके के रूप में अपने फ़िंगरप्रिंट का उपयोग करने का चयन किया है. यदि आप इसे अभी छोड़ते हैं, तो आपको इसे बाद में सेट करना होगा. सेटअप में लगभग एक मिनट लगता है."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्‍क्रीन लॉक सेट करें"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"पूरी बैटरी का <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"पूरी तरह चार्ज होने के बाद से अब तक का विश्लेषण"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"पिछली बार पूरी तरह चार्ज होने का समय"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"बैटरी उपयोग का डेटा अनुमानित है और यह उपयोग के आधार पर बदल सकता है"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"जब सक्रिय उपयोग में हो"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"बैकग्राउंड में होने पर"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"बैटरी उपयोग"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"कार्यस्थल डेटा अपने आप सिंक करें"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"ऐप्लिकेशन को डेटा अपने आप रीफ्रेश करने दें"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"खाता सिंक"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> में से <xliff:g id="ID_1">%1$d</xliff:g> आइटम के लिए सिंक करना चालू है"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"सभी आइटम के लिए सिंक करना चालू है"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"सभी आइटम के लिए सिंक करना बंद है"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"प्रबंधित डिवाइस की जानकारी"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"आपके संगठन की ओर से प्रबंधित किए जाने वाले बदलाव और सेटिंग"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> की ओर से प्रबंधित किए जाने वाले बदलाव और सेटिंग"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 8e6a63d..2d5b7b1 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -395,6 +395,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Nastavite podizati prst da biste dodali različite dijelove otiska prsta"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Otisak prsta dodan"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kada se prikaže ta ikona, upotrijebite otisak prsta da biste se identificirali ili odobrili kupnju."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Preskočiti postavljanje otiska prsta?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Odlučili ste se za otisak prsta kao jedan od načina za otključavanje telefona. Ako sad preskočite, morat ćete ga postaviti kasnije. Postavljanje traje samo otprilike jednu minutu."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Postavi zaključavanje zaslona"</string>
@@ -2103,8 +2105,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ukupne potrošnje baterije"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Razrada od posljednjeg potpunog punjenja"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Posljednje potpuno punjenje"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Podaci o upotrebi približni su i mogu se promijeniti ovisno o upotrebi"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Dok je u aktivnoj upotrebi"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Dok radi u pozadini"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Potrošnja baterije"</string>
@@ -3646,12 +3647,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatski sinkroniziraj radne podatke"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Dopusti aplikacijama da automatski osvježavaju podatke"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizacija računa"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinkronizacija uključena za <xliff:g id="ID_1">%1$d</xliff:g> od sljedećeg broja stavki: <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinkronizacija uključena za sve stavke"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinkronizacija isključena za sve stavke"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informacije o upravljanom uređaju"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Promjene i postavke kojima upravlja vaša organizacija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Promjene i postavke kojima upravlja <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index b91ccc5..2627c46 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Tartsa ujját felemelve az ujjlenyomat részleteinek hozzáadásához"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Ujjlenyomat hozzáadva"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Ha ezt az ikont látja, akkor ujjlenyomata használatával azonosítsa magát vagy engedélyezze a vásárlást."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Átugorja az ujjllenyomat-beállítást?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Kiválasztotta, hogy ujjlenyomattal is feloldhassa telefonját. Ha most kihagyja a lépéseket, később kell majd beállítania a funkciót. Ez hozzávetőlegesen 1 percet vesz igénybe."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Képernyőzár beállítása"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Az akkumulátor teljes töltöttségi szintjének <xliff:g id="PERCENT">%1$s</xliff:g>-a"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Statisztikák az utolsó teljes feltöltés óta"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Utolsó teljes feltöltés"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Az akkumulátorhasználati adatok hozzávetőlegesek, és az eszköz használatától függően módosulhatnak"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktív használatban"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Háttérben"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akkumulátorhasználat"</string>
@@ -3599,12 +3600,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Munkahelyi adatok automatikus szinkronizálása"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Az adatok automatikus frissítésének engedélyezése"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Fiók szinkronizálása"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Szinkronizálás bekapcsolva <xliff:g id="ID_2">%2$d</xliff:g>/<xliff:g id="ID_1">%1$d</xliff:g> elemnél"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Szinkronizálás bekapcsolva minden elemnél"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Szinkronizálás kikapcsolva minden elemnél"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Felügyelt eszköz adatai"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"A szervezet által kezelt módosítások és beállítások"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"A(z) <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> által kezelt módosítások és beállítások"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 5b380aa..25c6c3c 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Շարունակեք բարձրացնել ձեր մատը՝ մատնահետքի տարբեր հատվածներ ավելացնելու համար"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Մատնահետքն ավելացվեց"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Երբ տեսնեք այս պատկերակը, օգտագործեք ձեր մատնահետքը՝ նույնականացման կամ գնումները թույլատրելու համար:"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Բաց թողնե՞լ մատնահետքի կարգավորումը:"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Դուք ընտրել եք մատնահետքի օգտագործումը որպես հեռախոսն ապակողպելու եղանակներից մեկը: Եթե բաց թողնեք հիմա, ապա ձեզ անհրաժեշտ կլինի կատարել կարգավորումն ավելի ուշ: Կարգավորումը տևում է ընդամենը մոտ մեկ րոպե:"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Էկրանի կողպման կարգավորում"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Մարտկոցի ընդհանուր լիցքի <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Օգտագործումը վերջին լիցքավորումից հետո"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Վերջին լրիվ լիցքավորումը"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Մարտկոցի օգտագործման տվյալները մոտավոր են և կարող են փոխվել օգտագործումից կախված"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Ակտիվ օգտագործման ժամանակը"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Ֆոնում"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Մարտկոցի օգտագործում"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Ավտոմատ կերպով համաժամեցնել աշխատանքային տվյալները"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Թույլ տալ հավելվածներին ավտոմատ կերպով թարմացնել տվյալները"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Հաշվի համաժամացում"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Համաժամեցումը միացված է <xliff:g id="ID_2">%2$d</xliff:g> տարրերից <xliff:g id="ID_1">%1$d</xliff:g>-ի համար"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Համաժամեցումը միացված է բոլոր տարրերի համար"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Համաժամեցումն անջատված է բոլոր տարրերի համար"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Կառավարվող սարքի տվյալները"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ձեր կազմակերպության կողմից կառավարվող փոփոխություններ և կարգավորումներ"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> կազմակերպության կողմից կառավարվող փոփոխություններ և կարգավորումներ"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 8b6cdc0..6018f51 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Terus angkat jari Anda untuk menambahkan bagian lain dari sidik jari Anda"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Sidik jari ditambahkan"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Saat melihat ikon ini, gunakan sidik jari untuk identifikasi atau menyetujui pembelian."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Lewati penyiapan sidik jari?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Anda telah memilih untuk menggunakan sidik jari sebagai satu cara untuk membuka kunci perangkat. Jika dilewati sekarang, Anda harus menyiapkannya nanti. Penyiapan hanya memerlukan waktu sekitar satu menit."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Siapkan kunci layar"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> dari seluruh penggunaan baterai"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Penggunaan sejak pengisian baterai terakhir hingga penuh"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Pengisian baterai penuh terakhir"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Data penggunaan baterai merupakan perkiraan dan dapat berubah berdasarkan penggunaan"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Saat aktif digunakan"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Saat di background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Penggunaan baterai"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Otomatis sinkronkan data kerja"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Izinkan aplikasi memuat ulang data secara otomatis"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinkronisasi akun"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinkronisasi untuk <xliff:g id="ID_1">%1$d</xliff:g> dari <xliff:g id="ID_2">%2$d</xliff:g> item aktif"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinkronisasi untuk semua item aktif"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinkronisasi untuk semua item nonaktif"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Info perangkat yang dikelola"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Perubahan &amp; setelan yang dikelola oleh organisasi"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Perubahan &amp; setelan yang dikelola oleh <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 153b8d4..501b27b 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Lyftu fingrinum endurtekið til að bæta við mismunandi hlutum fingrafarsins"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingrafari bætt við"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Þegar þú sérð þetta tákn skaltu nota fingrafarið til að auðkenna þig eða samþykkja kaup."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Viltu sleppa uppsetningu fingrafars?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Þú hefur valið að nota fingrafar þitt sem leið til að opna símann þinn. Ef þú sleppir þessu núna þarftu að setja þetta upp seinna. Uppsetningin tekur einungis um eina mínútu."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Setja upp skjálás"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> af heildarrafhlöðuorku"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Greining frá síðustu fullu hleðslu"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Síðasta fulla hleðsla"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Upplýsingar um rafhlöðunotkun eru áætlaðar og geta breyst eftir notkun"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Í virkri notkun"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Í bakgrunni"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Rafhlöðunotkun"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Samstilla vinnugögn sjálfkrafa"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Leyfa forritum að endurnýja gögn sjálfkrafa"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Samstilling reiknings"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Kveikt á samstillingu fyrir <xliff:g id="ID_1">%1$d</xliff:g> af <xliff:g id="ID_2">%2$d</xliff:g> atriðum"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Kveikt á samstillingu fyrir öll atriði"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Slökkt á samstillingu fyrir öll atriði"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Upplýsingar um stjórnað tæki"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Breytingar og stillingar stýrðar af fyrirtækinu þínu"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Breytingar og stillingar stýrðar af <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 796c456..fcf9965 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Solleva ripetutamente il dito per aggiungere le diverse parti dell\'impronta digitale"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Impronta aggiunta"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Quando vedi questa icona, utilizza l\'impronta digitale per identificarti o autorizzare un acquisto."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Saltare configurazione impronta digitale?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Hai scelto anche l\'utilizzo dell\'impronta digitale tra i vari metodi per sbloccare il telefono. Se salti la configurazione ora, dovrai eseguirla in un secondo momento. Basta un minuto."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Imposta blocco schermo"</string>
@@ -1567,7 +1569,7 @@
     <string name="app_factory_reset" msgid="6635744722502563022">"Disinstalla aggiornamenti"</string>
     <string name="auto_launch_enable_text" msgid="4275746249511874845">"Hai scelto di avviare questa applicazione per impostazione predefinita per alcune azioni."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="566822577792032925">"Hai scelto di consentire a questa applicazione di creare widget e di accedere ai relativi dati."</string>
-    <string name="auto_launch_disable_text" msgid="7800385822185540166">"Nessuna app predefinita impostata."</string>
+    <string name="auto_launch_disable_text" msgid="7800385822185540166">"Nessuna impostazione predefinita."</string>
     <string name="clear_activities" msgid="7408923511535174430">"Cancella predefinite"</string>
     <string name="screen_compatibility_text" msgid="1616155457673106022">"Questa applicazione potrebbe non essere stata ideata per il tuo schermo. Puoi stabilire come adattarla al tuo schermo qui."</string>
     <string name="ask_compatibility" msgid="7225195569089607846">"Chiedi all\'avvio"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> dell\'utilizzo totale della batteria"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Analisi dettagliata dall\'ultima ricarica completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Ultima ricarica completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"I dati sull\'utilizzo della batteria sono approssimativi e possono variare in base all\'utilizzo"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Durante l\'utilizzo attivo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"In background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Utilizzo batteria"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizza i dati di lavoro automaticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Consenti aggiornamento automatico dei dati delle app"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronizzazione account"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronizzazione attiva per <xliff:g id="ID_1">%1$d</xliff:g> elementi su <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronizzazione attivata per tutti gli elementi"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronizzazione disattivata per tutti gli elementi"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informazioni sul dispositivo gestito"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Impostazioni e modifiche sono gestite dalla tua organizzazione"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Impostazioni e modifiche sono gestite da <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index cab4f8b..8ebf452 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"יש להרים את האצבע ולגעת בחיישן בחלקים שונים שלה כדי להוסיף טביעת אצבע מלאה"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"טביעת האצבע שלך נקלטה"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"כשיוצג לך הסמל הזה, משמעות הדבר היא שאפשר להשתמש בטביעת אצבע לצורכי זיהוי או לאישור רכישה."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"האם לדלג על הגדרת טביעת אצבע?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"בחרת להשתמש בטביעת האצבע שלך כאחת מהדרכים שבהן תוכל לבטל את הנעילה בטלפון. אם תדלג על שלב זה עכשיו, תצטרך לבצע את ההגדרה בהמשך. ההגדרה לוקחת רק דקה או שתיים."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"הגדר נעילת מסך"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> מצריכת הסוללה הכוללת"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"פירוט מאז הטעינה המלאה האחרונה"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"הטעינה המלאה האחרונה"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"נתוני השימוש בסוללה משוערים ועשויים להשתנות בהתאם לשימוש בפועל"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"זמן שימוש פעיל"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"זמן פעילות ברקע"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"שימוש בסוללה"</string>
@@ -3697,12 +3698,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"סנכרן נתוני עבודה באופן אוטומטי"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"אפשר לאפליקציות לרענן נתונים באופן אוטומטי"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"סנכרון חשבון"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"הסנכרון פועל ל-<xliff:g id="ID_1">%1$d</xliff:g> מתוך <xliff:g id="ID_2">%2$d</xliff:g> פריטים"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"הסנכרון פועל לכל הפריטים"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"הסנכרון כבוי לכל הפריטים"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"פרטי מכשיר מנוהל"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"שינויים והגדרות שהארגון שלך מנהל"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"הגדרות ושינויים המנוהלים על ידי <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 587a406..4a4e32a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"指を何度か離して、あらゆる角度から指紋を登録します"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"指紋の登録完了"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"このアイコンが表示されているときは、本人確認や購入の承認に指紋認証を使用します。"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"指紋の設定をスキップしますか？"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"スマートフォンのロック解除方法として指紋を選択しています。スキップした場合は、後でセットアップする必要があります。セットアップの所要時間は1分程度です。"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"画面ロックを設定"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"電池使用量全体の <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"前回のフル充電以降の内訳"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"前回のフル充電"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"電池の使用状況データは概算値であり、使用状況によって変わります"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"アクティブ時"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"バックグラウンド時"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"電池使用量"</string>
@@ -3601,12 +3602,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"自動的に仕事用データを同期"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"アプリにデータの自動更新を許可します"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"アカウントの同期"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> 件中 <xliff:g id="ID_1">%1$d</xliff:g> 件のアイテムで同期が ON"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"すべてのアイテムで同期が ON"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"すべてのアイテムで同期が OFF"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"管理対象端末の情報"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"変更と設定は組織によって管理されています"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"変更と設定は <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> によって管理されています"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 3d56ebf..91559a0 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"რამდენჯერმე აიღეთ და ისევ შეახეთ თითი სენსორს, რათა თქვენი თითის ანაბეჭდის ყველა ნაწილის დამატება შეძლოთ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"თითის ანაბეჭდი დამატებულია"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"როდესად ამ ხატულას დაინახავთ, იდენტიფიცირების ან თქვენი შესყიდვის დადასტურებისთვის შეგიძლიათ გამოიყენოთ თქვენი თითის ანაბეჭდი."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"გსურთ თითის ანაბეჭდის დაყენ. გამოტოვება?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"თქვენ აირჩიეთ თქვენი თითის ანაბეჭდის გამოყენება თქვენი ტელეფონის განბლოკვის ერთ-ერთ მეთოდად. თუ ამას ახლა გამოტოვებთ, მისი დაყენება მოგვიანებით მოგიწევთ. დაყენებას მხოლოდ ერთი წუთი სჭირდება."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ეკრანის დაბლოკვის დაყენება"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"ბატარეის საერთო მოხმარების <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"დეტალები ბოლო სრული დატენვიდან"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"ბოლო სრული დატენვა"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ბატარეის მუშაობის მონაცემები მიახლოებითია და შეიძლება შეიცვალოს მოხმარების მიხედვით"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"აქტიურად გამოყენებისას"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"ფონურ რეჟიმში ყოფნისას"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"ბატარეის მოხმარება"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"სამსახურის მონაცემების ავტომატური სინქრონიზაცია"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"აპებისთვის მონაცემების ავტომატურად განახლების დაშვება"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ანგარიშის სინქრონიზაცია"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"სინქრონიზაცია ჩართულია <xliff:g id="ID_2">%2$d</xliff:g>-დან <xliff:g id="ID_1">%1$d</xliff:g> ერთეულისთვის"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"სინქრონიზაცია ჩართულია ყველა ერთეულისთვის"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"სინქრონიზაცია გამორთულია ყველა ერთეულისთვის"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"მართული მოწყობილობის ინფორმაცია"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"ცვლილებებსა და პარამეტრებს მართავს თქვენი ორგანიზაცია"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"ცვლილებებსა და პარამეტრებს მართავს <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 2e9c00f..6425759 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Саусақ ізінің түрлі бөліктерін енгізу үшін саусағыңызды көтеріп тұрыңыз"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Саусақ ізі енгізілді"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Бұл белгіше шыққан кезде, саусақ ізімен жеке басыңызды растаңыз не сатып алған нәрсені мақұлдаңыз."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Саусақ ізін орнатуды өткізіп жіберу керек пе?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Саусақ ізін пайдалануды телефон құлпын ашудың бір жолы ретінде таңдадыңыз. Қазір өткізіп жіберсеңіз, мұны кейінірек орнату керек. Орнату бір минутқа жақын уақыт алады."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Экран құлпын орнату"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Жалпы батарея зарядының <xliff:g id="PERCENT">%1$s</xliff:g>-ы"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Толық зарядталғаннан кейін пайдаланылғаны"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Соңғы толық зарядталуы"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Батарея пайдалану ақпараты уақыты шамамен берілген және пайдалануға байланысты өзгеруі мүмкін"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Белсенді пайдаланылатын кезде"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Фондық режимде болғанда"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Батарея зарядының тұтынылуы"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Жұмыс деректерін автоматты түрде синхрондау"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Қолданбалардың деректерді автоматты жаңартуына рұқсат беру"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Есептік жазбаны синхрондау"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> / <xliff:g id="ID_1">%1$d</xliff:g> элемент үшін синхрондау қосулы"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Барлық элемент үшін синхрондау қосулы"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Барлық элемент үшін синхрондау өшірулі"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Басқарылатын құрылғы ақпараты"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ұйым басқаратын өзгерістер мен параметрлер"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> басқаратын өзгерістер мен параметрлер"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 3ffa794..4885725 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"បន្តលើកម្រាមដៃរបស់អ្នកឡើង ដើម្បីបញ្ចូលផ្នែកផ្សេងទៀតនៃម្រាមដៃរបស់អ្នក"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"បានបញ្ចូល​ស្នាមម្រាមដៃ​រួចហើយ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"នៅពេលដែលអ្នកឃើញរូបតំណាងនេះ សូមប្រើស្នាមម្រាមដៃរបស់អ្នកសម្រាប់ការកំណត់អត្តសញ្ញាណ ឬយល់ព្រមលើការទិញ។"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"រំលងការដំឡើងស្នាមម្រាមដៃឬទេ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"អ្នកបានជ្រើសរើសប្រើស្នាមម្រាមដៃរបស់អ្នកជាវិធីមួយក្នុងការដោះសោទូរស័ព្ទរបស់អ្នក។ ប្រសិនបើអ្នករំលងឥឡូវនេះ អ្នកត្រូវដំឡើងវានៅពេលក្រោយ។ ការដំឡើងចំណាយពេលបន្តិចប៉ុណ្ណោះ។"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"កំណត់ការចាក់សោអេក្រង់"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> នៃ​ថ្ម​ទាំងអស់"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ព័ត៌មានលម្អិតចាប់​តាំងពី​សាកថ្ម​ពេញ​លើកចុងក្រោយ"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"សាកថ្មពេញលើកចុងក្រោយ"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ទិន្នន័យ​ប្រើប្រាស់​ថ្មគឺជា​ចំនួន​ប្រហាក់ប្រហែល និងអាច​មានការផ្លាស់ប្តូរទៅតាមការប្រើប្រាស់"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"ពេល​កំពុងប្រើប្រាស់​"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"ខណៈពេលនៅផ្ទៃខាងក្រោយ"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"ការប្រើប្រាស់ថ្ម"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ធ្វើ​សមកាលកម្ម​ទិន្នន័យ​ការងារ​ដោយស្វ័យប្រវត្តិ"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"អនុញ្ញាតឲ្យ​កម្មវិធី​ផ្ទុក​ទិន្នន័យ​ឡើងវិញ​ដោយស្វ័យប្រវត្តិ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ធ្វើសមកាលកម្មគណនី"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"បើក​សមកាលកម្មសម្រាប់ធាតុ <xliff:g id="ID_1">%1$d</xliff:g> ក្នុងចំណោម <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"បើក​សមកាលកម្ម​សម្រាប់ធាតុ​ទាំងអស់"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"បិទ​សមកាលកម្ម​សម្រាប់ធាតុ​ទាំងអស់"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"ព័ត៌មាន​ឧបករណ៍​ដែល​ស្ថិតក្រោម​ការគ្រប់គ្រង"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"ការផ្លាស់ប្តូរ និង​ការកំណត់​ដែល​ស្ថិត​ក្រោម​ការ​គ្រប់គ្រង​របស់ស្ថាប័ន​អ្នក"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"ការផ្លាស់ប្តូរ និង​ការកំណត់ដែលស្ថិត​ក្រោមការគ្រប់គ្រងរបស់ <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index da2b428..f3bf6ba 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್‌ನ ವಿವಿಧ ಭಾಗಗಳನ್ನು ಸೇರಿಸಲು ನಿಮ್ಮ ಬೆರಳನ್ನು ಎತ್ತುತ್ತಲಿರಿ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೇರಿಸಲಾಗಿದೆ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ನೀವು ಈ ಐಕಾನ್‌ ನೋಡಿದಾಗ, ಗುರುತಿಸಲು ಅಥವಾ ಖರೀದಿಗಳನ್ನು ಅನುಮೋದಿಸಲು ನಿಮ್ಮ ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಬಳಸಿ."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ಬೆರಳಚ್ಚು ಸೆಟಪ್ ಸ್ಕಿಪ್ ಮಾಡುವುದೇ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"ನಿಮ್ಮ ಫೋನ್ ಅನ್‌ಲಾಕ್ ಮಾಡಲು ಒಂದು ಮಾರ್ಗವಾಗಿ ನಿಮ್ಮ ಬೆರಳಚ್ಚು ಅನ್ನು ಬಳಸಲು ನೀವು ಆಯ್ಕೆಮಾಡಿರುವಿರಿ. ನೀವು ಇದೀಗ ಸ್ಕಿಪ್ ಮಾಡಿದರೆ, ನೀವು ಇದನ್ನು ನಂತರ ಹೊಂದಿಸುವ ಅಗತ್ಯವಿರುತ್ತದೆ. ಸೆಟಪ್ ಕೇವಲ ನಿಮಿಷದಷ್ಟು ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಹೊಂದಿಸಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index aee87ea..0a41c2a 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"손가락을 들어 지문의 다른 부분을 추가하세요."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"지문 추가됨"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"이 아이콘이 표시되면 지문을 사용하여 사용자 본인임을 인증하거나 구매를 승인하세요."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"지문 설정을 건너뛰시겠습니까?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"지문으로 휴대전화를 잠금 해제하도록 설정했습니다. 지금 건너뛰면 나중에 설정해야 하며 설정에는 약 1분 정도 소요됩니다."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"화면 잠금 설정"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"전체 배터리 사용량의 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"마지막 충전 완료 후 사용 내역 분석"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"마지막 충전 완료"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"배터리 사용 데이터는 대략적인 수치이며, 사용량에 따라 변경될 수 있습니다."</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"연속사용 중일 때"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"백그라운드에 있을 때"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"배터리 사용량"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"자동으로 직장 데이터 동기화"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"앱에서 데이터를 자동으로 새로고침하도록 허용"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"계정 동기화"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g>개 항목 동기화"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"모든 항목 동기화"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"모든 항목을 동기화하지 않음"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"관리 기기 정보"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"조직에서 관리하는 변경사항 및 설정"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>에서 관리하는 변경사항 및 설정"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 4fcf136..c79552a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Манжа изиңиздин ар кайсы бөлүгүн кошуу үчүн манжаңызды кичинеден өйдө жылдырыңыз"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Манжа изи кошулду"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Бул сүрөтчөнү көргөндө, өздүгүңүздү же сатып алууларды ырастоо үчүн манжа изиңизди пайдаланыңыз."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Манжа изин жөндөө өткөрүлсүнбү?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Телефонуңуздун кулпусун манжа изи менен ачуу ыкмасын тандадыңыз. Эгер азыр өткөрүп жиберсеңиз, аны кийинчерээк жөндөшүңүз керек болот. Жөндөөгө бир мүнөтчө эле убакыт кетет."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Экранды кулпулоо ыкмасын коюу"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Батарея кубатынын <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Толук кубатталгандан бери канчасы колдонулду:"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Акыркы жолу толук кубатталды"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Батареяны пайдалануу убактысы болжол менен көрсөтүлүп, колдонулушуна жараша өзгөрүшү мүмкүн"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Колдонулуп жатканда"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Фондук режимде"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Батарея колдонулушу"</string>
@@ -3601,12 +3602,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Жумушка байланыштуу дайындарды автоматтык түрдө шайкештирүү"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Колдонмолорго дайындарды автоматтык түрдө жаңылоого уруксат берүү"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Каттоо эсебин шайкештештирүү"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Шайкештештирүү <xliff:g id="ID_2">%2$d</xliff:g> нерсенин ичинен <xliff:g id="ID_1">%1$d</xliff:g> нерсе үчүн күйүк"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Шайкештештирүү баардык нерселер үчүн күйүк"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Шайкештештирүү баардык нерселер үчүн өчүк"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Башкарылган түзмөк жөнүндө маалымат"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Өзгөртүүлөр жана жөндөөлөр уюмуңуз тарабынан башкарылат"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Өзгөртүүлөр жана жөндөөлөр <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> тарабынан башкарылат"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 7736ab7..4f13646 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"ຍົກນິ້ວຂອງທ່ານຂຶ້ນເພື່ອເພີ່ມສ່ວນຕ່າງໆຂອງລາຍນິ້ວມືທ່ານ."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ເພີ່ມລາຍນີ້ວມືແລ້ວ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ເມື່ອທ່ານເຫັນໄອຄອນນີ້, ໃຫ້ໃຊ້ນິ້ວມືຂອງທ່ານເພື່ອລະບຸຕົວຕົນ ຫຼື ອະນຸມັດການສັ່ງຊື້."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ຂ້າມ​ການ​ຕັ້ງ​ລາຍ​ນີ້ວ​ມື​ບໍ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"ທ່ານ​ເລືອກ​ໃຊ້​ລາຍ​ນີ້ວ​ມື​ຂອງ​ທ່ານ​ເປັນ​ວິ​ທີ​ໜຶ່ງໃນການ​ປົດ​ລັອກ​ໂທ​ລ​ະ​ສັບ​ຂອງ​ທ່ານ. ຖ້າ​ທ່ານ​ຂ້າມ​​ດຽວ​ນີ້, ທ່ານ​ຈະ​ຕ້ອງ​ໄດ້​ຕັ້ງ​ອັນ​ນີ້​ພາຍ​ຫຼັງ. ການ​ຕັ້ງ​ໃຊ້​ເວ​ລາ​ພຽງ​ໜຶ່ງ​ນາ​ທີ ຫຼື ປະ​ມານນັ້ນ."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ຕັ້ງຄ່າການລັອກໜ້າຈໍ"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ຂອງແບັດເຕີຣີໂດຍຮວມ"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ວິເຄາະນັບຕັ້ງແຕ່ສາກເຕັມຫຼ້າສຸດ"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"ສາກເຕັມຫຼ້າສຸດ"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ຂໍ້ມູນການນຳໃຊ້ແບັດເຕີຣີເປັນການປະມານການເທົ່ານັ້ນ ແລະ ສາມາດປ່ຽນແປງໄດ້ຂຶ້ນກັບການນຳໃຊ້ຕົວຈິງ"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"ໃນຂະນະນຳໃຊ້ຢູ່"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"ໃນຂະນະຢູ່ໃນພື້ນຫຼັງ"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"ການໃຊ້ແບັດເຕີຣີ"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ຊິ້ງຂໍ້ມູນວຽກອັດຕະໂນມັດ"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"ໃຫ້ແອັບໂຫຼດຂໍ້ມູນຄືນໃໝ່ໂດຍອັດຕະໂນມັດ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ການຊິ້ງຂໍ້ມູນບັນຊີ"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"ເປີດຊິ້ງຂໍ້ມູນສຳລັບ <xliff:g id="ID_1">%1$d</xliff:g> ຈາກທັງໝົດ <xliff:g id="ID_2">%2$d</xliff:g> ລາຍການ"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"ເປີດການຊິ້ງຂໍ້ມູນຕະຫຼອດເວລາ"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"ປິດການຊິ້ງຂໍ້ມູນຕະຫຼອດເວລາ"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"ຂໍ້ມູນອຸປະກອນທີ່ມີການຈັດການ"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"ການປ່ຽນແປງ ແລະ ການຕັ້ງຄ່າທີ່ຈັດການໂດຍອົງກອນຂອງທ່ານ"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"ການປ່ຽນແປງ ແລະ ການຕັ້ງຄ່າທີ່ຈັດການໂດຍ <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index b580c9f..8ff6953 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Vis patraukite pirštą, kad pridėtumėte skirtingas piršto atspaudo dalis"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Piršto atspaudas pridėtas"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kai rodoma ši piktograma, naudokite piršto atspaudą tapatybei nustatyti ar pirkimo operacijai autorizuoti."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Praleisti pirštų atspaudų nustatymą?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Pasirinkote naudoti piršto atspaudą kaip vieną iš telefono atrakinimo būdų. Jei praleisite dabar, turėsite nustatyti funkciją vėliau. Nustatymas apytiksliai užtruks tik minutę."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Nustatyti ekrano užraktą"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> visos akumuliatoriaus įkrovos"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Naudojimo nuo paskutinio visiško įkrovimo analizė"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Paskutinis visiškas įkrovimas"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Akumuliatoriaus naudojimo duomenys yra apytiksliai ir gali pasikeisti atsižvelgiant į naudojimą"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktyviai naudojant"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Kai veikia fone"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akumuliatoriaus energijos vartojimas"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatiškai sinchronizuoti darbo duomenis"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Leisti programoms automatiškai atnaujinti duomenis"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Paskyros sinchronizavimas"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Įjungtas elementų sinchronizavimas: <xliff:g id="ID_1">%1$d</xliff:g> iš <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Įjungtas visų elementų sinchronizavimas"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Išjungtas visų elementų sinchronizavimas"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Tvarkoma įrenginio informacija"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Pakeitimus ir nustatymus tvarko jūsų organizacija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Pakeitimus ir nustatymus tvarko „<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>“"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index a6e1af2..20eb4f1 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -395,6 +395,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Atkārtoti uzlieciet pirkstu, lai pievienotu dažādas pirksta nospieduma daļas."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Pirksta nospiedums pievienots"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kad tiek rādīta šī ikona, izmantojiet pirksta nospiedumu identifikācijai vai pirkuma autorizēšanai."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Izlaist pirksta nospieduma iestatīšanu?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Jūs izvēlējāties pirksta nospiedumu kā vienu no tālruņa atbloķēšanas iespējām. Ja izlaidīsiet šo darbību, iestatīšana būs jāveic vēlāk. Iestatīšanai nepieciešama aptuveni viena minūte."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Iestatīt ekrāna bloķēšanu"</string>
@@ -2103,8 +2105,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> no vispārējā akumulatora lietojuma"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Sadalījums kopš pēdējās pilnās uzlādes"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Pēdējā pilnā uzlāde"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Akumulatora lietojuma dati ir aptuveni un var mainīties atkarībā no lietojuma"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktīvi lietojot"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Darbojoties fonā"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Akumulatora lietojums"</string>
@@ -3646,12 +3647,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automātiski sinhronizēt darba datus"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Ļaut lietotnēm automātiski atsvaidzināt datus"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Konta sinhronizācija"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinhronizācija ieslēgta <xliff:g id="ID_1">%1$d</xliff:g> no <xliff:g id="ID_2">%2$d</xliff:g> vienumiem"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinhronizācija ieslēgta visiem vienumiem"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinhronizācija izslēgta visiem vienumiem"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informācija par pārvaldīto ierīci"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Izmaiņas un iestatījumus pārvalda jūsu organizācija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Izmaiņas un iestatījumus pārvalda <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index a789894..8695ebe 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Подигнувајте го прстот за да ги додадете различните делови на отпечатокот"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Отпечатокот е додаден"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Кога ќе ја видите иконава, користете го отпечатокот за идентификација или да ги одобрите купувањата."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Да се прескокне поставувањето отпечаток?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Избравте да го користите отпечатокот од прстот како еден од начините на отклучување на телефонот. Ако го прескокнете сега, ќе треба да го поставите подоцна. За поставувањето ќе ви треба околу една минута."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Поставете заклучување на екранот"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> од целокупната батерија"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Детали по последното целосно полнење"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Последно целосно полнење"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Податоците за батеријата се приближни и може да се променат според употребата"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Во активна употреба"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Употреба во заднина"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Употреба на батеријата"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Автоматска синхронизација на деловни податоци"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Дозволете им на апликациите автоматски да ги освежуваат податоците"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Синхронизирање сметка"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Синхронизацијата е вклучена за <xliff:g id="ID_1">%1$d</xliff:g> од <xliff:g id="ID_2">%2$d</xliff:g> ставки"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Синхронизацијата е вклучена за сите ставки"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Синхронизацијата е исклучена за сите ставки"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Информации за управуваниот уред"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Измени и поставки со кои управува организацијата"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Измени и поставки со кои управува <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index edeeeb4..ddf21e7 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റിന്റെ വ്യത്യസ്ത ഭാഗങ്ങൾ ചേർക്കുന്നതിന് നിങ്ങളുടെ വിരൽ ഉയർത്തിക്കൊണ്ടിരിക്കുക"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ഫിംഗർപ്രിന്റ് ചേർത്തു"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"നിങ്ങൾ ഈ ഐക്കൺ കാണുമ്പോൾ, തിരിച്ചറിയലിനോ ഒരു വാങ്ങലിന് അംഗീകാരം നൽകാനോ നിങ്ങളുടെ ഫിംഗർപ്രിന്റ് ഉപയോഗിക്കുക."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"വിരലടയാളം സജ്ജമാക്കൽ ഒഴിവാക്കണോ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"നിങ്ങളുടെ ഫോൺ അൺലോക്കുചെയ്യുന്നതിനുള്ള ഒരു മാർഗ്ഗമായി നിങ്ങൾ വിരലടലാളം ഉപയോഗിക്കുന്നതിന് തീരുമാനിച്ചിരിക്കുന്നു. നിങ്ങളിത് ഇപ്പോൾ ഒഴിവാക്കുന്നുവെങ്കിൽ, പിന്നീട് സജ്ജമാക്കേണ്ടി വരും. സജ്ജീകരിക്കലിന് ഒരൽപ്പസമയമേ എടുക്കുകയുള്ളൂ."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"സ്‌ക്രീൻ ലോക്ക് സജ്ജമാക്കുക"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"മൊത്തം ബാറ്ററിയുടെ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"ഫുൾ ചാർജിനുശേഷമുള്ള ഉപയോഗ വിശദാംശങ്ങൾ"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"ഒടുവിൽ ഫുൾ ചാർജ്ജുചെയ്‌തത്"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ബാറ്ററി ഉപഭോഗ ഡാറ്റ ഏകദേശ കണക്കാണ്, ഉപയോഗത്തിനനുസരിച്ച് അത് മാറാം"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"സജീവ ഉപയോഗത്തിൽ ആയിരിക്കുമ്പോൾ"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"പശ്ചാത്തലത്തിൽ ആയിരിക്കുമ്പോൾ"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"ബാറ്ററി ഉപയോഗം"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ഔദ്യോഗിക ഡാറ്റ സ്വയം സമന്വയിപ്പിക്കുക"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"ആപ്പുകളെ സ്വയം പുതുക്കിയെടുക്കാൻ അനുവദിക്കുക"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"അക്കൗണ്ട് സമന്വയം"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g> ഇനങ്ങൾക്ക് സമന്വയം ഓണാക്കിയിരിക്കുന്നു"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"എല്ലാ ഇനങ്ങൾക്കും സമന്വയം ഓണാക്കിയിരിക്കുന്നു"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"എല്ലാ ഇനങ്ങൾക്കും സമന്വയം ഓഫാക്കിയിരിക്കുന്നു"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"മാനേജുചെയ്യപ്പെടുന്ന ഉപകരണത്തിന്റെ വിവരങ്ങൾ"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"മാറ്റങ്ങളും ക്രമീകരണവും മാനേജുചെയ്യുന്നത് നിങ്ങളുടെ സ്ഥാപനമാണ്"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"മാറ്റങ്ങളും ക്രമീകരണവും മാനേജുചെയ്യുന്നത് <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> ആണ്"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 4535239..7832152 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Хурууныхаа хээг бүрэн гаргахын тулд хуруугаа хөндийрүүлсэн хэвээр байлгана уу"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Хурууны хээ нэмсэн"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Та энэ дүрс тэмдгийг харсан үедээ өөрийгөө мөн болохыг баталгаажуулах, худалдан авалтыг зөвшөөрөхийн тулд хурууны хээгээ ашиглана уу."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Хурууны хээн тохиргоог алгасах уу?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Та утасны түгжээг тайлах нэг хувилбараар хурууны хээн тохиргоог сонголоо. Хэрэв та одоо алгасвал энэ тохиргоог дараа хийх шаардлагатай болно. Тохиргоо хийхэд хэдхэн хором шаардлагатай."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Дэлгэцийн түгжээ тохируулах"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Бүх батерейны <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Сүүлд бүрэн цэнэглэснээс хойших ашиглалтын мэдээлэл"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Сүүлийн бүрэн цэнэглэлт"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Батерейн ашиглалтын хэмжээг барагцаалах бөгөөд ашиглалтаас хамааран өөрчлөгдөж болно"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Идэвхтэй ашиглалтын үед"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Цаана байх үед"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Батерей ашиглалт"</string>
@@ -3595,12 +3596,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Ажлын өгөгдлийг автоматаар синк хийх"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Өгөгдлийг автоматаар дахин боловсруулахыг апп-д зөвшөөрөх"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Бүртгэл синк хийх"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g>-с <xliff:g id="ID_1">%1$d</xliff:g> зүйлд синк асаалттай"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Бүх зүйлд синк асаалттай"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Бүх зүйлд синкийг унтраасан"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Удирдсан төхөөрөмжийн мэдээлэл"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Таны байгууллагын удирдсан тохиргооны өөрчлөлт"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>-н удирдсан тохиргооны өөрчлөлт"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 0af1153..d21a251 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"तुमच्‍या फिंगरप्रिंटचे वेगवेगळे भाग जोडण्यासाठी तुमचे बोट उचलत रहा"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"फिंगरप्रिंट जोडला"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"तुम्हाला हा आयकन दिसताच ओळख पडताळणीसाठी किंवा खरेदी मंजूर करण्यासाठी तुमचे फिंगरप्रिंट वापरा."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फिंगरप्रिंट सेटअप वगळायचे?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"आपण आपला फोन अनलॉक करण्याची एक पद्धत म्हणून आपण आपले फिंगरप्रिंट वापरणे निवडले. आता आपण वगळल्यास, आपल्याला हे नंतर सेट करण्याची आवश्यकता असेल. सेटअपला केवळ एक मिनिट लागेल."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्क्रीन लॉक सेट करा"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"एकूण बॅटरीचे <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"मागच्या वेळेस पूर्ण चार्ज झाल्यापासूनचा ब्रेकडाउन"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"शेवटचे पूर्ण चार्ज"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"बॅटरी वापर डेटा अंदाजे आहे आणि वापराच्या आधारे बदलू शकतो"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"सक्रिय वापरात असताना"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"पार्श्वभूमीत असताना"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"बॅटरी वापर"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"कार्य डेटा स्वयंचलितपणे संकालित करा"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"अ‍ॅप्सना डेटा स्वयंचलितपणे रीफ्रेश करू द्या"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"खाते संकालन"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> पैकी <xliff:g id="ID_1">%1$d</xliff:g> आयटमसाठी सिंक करणे चालू आहे"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"सर्व आयटमसाठी सिंक करणे चालू करा"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"सर्व आयटमसाठी सिंक करणे बंद करा"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"व्यवस्थापित डिव्हाइस माहिती"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"आपल्‍या संस्‍थेद्वारे व्‍यवस्‍थापित बदल आणि सेटिंग्‍ज"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> द्वारे व्‍यवस्‍थापित बदल आणि सेटिंग्‍ज"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 2ef01e4..23f89c3 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Angkat jari berulang kali untuk menambahkan beberapa bahagian cap jari anda"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Cap jari ditambahkan"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Apabila anda melihat ikon ini, gunakan cap jari anda untuk pengenalan atau untuk membenarkan pembelian."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Langkau persediaan cap jari?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Anda telah memilih untuk menggunakan cap jari sebagai satu cara untuk membuka kunci telefon anda. Jika anda melangkaui sekarang, anda perlu menyediakannya kemudian. Persediaan hanya mengambil sedikit masa."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Sediakan kunci skrin"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> daripada keseluruhan bateri"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Pecahan sejak cas penuh terakhir"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Cas penuh terakhir"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Data penggunaan bateri adalah anggaran dan boleh berubah berdasarkan penggunaan"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Semasa dalam penggunaan aktif"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Semasa di latar belakang"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Penggunaan bateri"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Segerakkan data kerja secara automatik"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Benarkan apl memuatkan semula data secara automatik"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Penyegerakan akaun"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Penyegerakan dihidupkan untuk <xliff:g id="ID_1">%1$d</xliff:g> daripada <xliff:g id="ID_2">%2$d</xliff:g> item"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Penyegerakan dihidupkan untuk semua item"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Penyegerakan dimatikan untuk semua item"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Maklumat peranti terurus"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Perubahan &amp; tetapan diurus oleh organisasi anda"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Perubahan &amp; tetapan diurus oleh <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index a85c1dd..ace4471 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"လက်ဗွေ၏ အစိတ်အပိုင်းအမျိုးမျိုးကို ထည့်ရန်အတွက် သင့်လက်ချောင်းကို အကြိမ်ကြိမ် ပြန်မြှောက်ပါ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"လက်ဗွေကို ထည့်ပြီးပါပြီ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ဤသင်္ကေတကို မြင်ပါက အထောက်အထားတင်ပြရန် သို့မဟုတ် ဝယ်ယူမှုများကို အတည်ပြုရန် သင့်လက်ဗွေကို အသုံးပြုပါ။"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"လက်ဗွေရာ သတ်မှတ်မှုကို ကျော်မလား"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"သင့်လက်ဗွေဖြင့် သင့်ဖုန်းကို သော့ဖွင့်ရန် နည်းလမ်းတစ်ခုအဖြစ် ရွေးချယ်ခဲ့သည်။ အကယ်၍ယခုကျော်သွားလျှင်၊ ၎င်းကိုနောက်နှောင်တွင် သတ်မှတ်ရပါလိမ့်မည်။ သတ်မှတ်ခြင်းသည် မိနစ်အနည်းငယ်သာ ကြာပါသည်။"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ဖုန်းဖန်သားပြင် သော့စနစ် သတ်မှတ်ပါ"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"စုစုပေါင်း ဘက်ထရီ၏<xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"နောက်ဆုံးအကြိမ် အားဖြည့်ပြီးချိန်မှစ၍ ခွဲခြမ်းစိတ်ဖြာချက်"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"နောက်ဆုံးအကြိမ် အားအပြည့် သွင်းခဲ့ချိန်"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ဒေတာအသုံးပြုမှုအတွက် ဘက်ထရီအားသည် ခန့်မှန်းချက်သာဖြစ်ပြီး အသုံးပြုမှုအလိုက် ပြောင်းလဲနိုင်သည်"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"အသုံးပြုနေစဉ်"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"နောက်ခံတွင် ဖွင့်ထားစဉ်"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"ဘက်ထရီ အသုံးပြုမှု"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"အလုပ်ဒေတာကို အလိုအလျောက် စင့်ခ်လုပ်ရန်"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"အက်ပ်အား ဒေတာကို အလိုအလျောက် ပြန်လည်စတင်ပါစေ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"အကောင့်ကို စင့်ခ်လုပ်ရန်"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> အနက်မှ <xliff:g id="ID_1">%1$d</xliff:g> အတွက် စင့်ခ်ကို ဖွင့်ထားသည်"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"အရာအားလုံးအတွက် စင့်ခ်ကို ဖွင့်ထားသည်"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"အရာအားလုံးအတွက် စင့်ခ်ကို ပိတ်ထားသည်"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"စီမံခန့်ခွဲထားသည့် စက်ပစ္စည်း၏ အချက်အလက်များ"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"သင်၏ အဖွဲ့အစည်းက စီမံခန့်ခွဲထားသည့် အပြောင်းအလဲများနှင့် ဆက်တင်များ"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> က စီမံခန့်ခွဲထားသည့် အပြောင်းအလဲများနှင့် ဆက်တင်များ"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index ac9ea38..656000c 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Løft fingeren din gjentatte ganger for å legge til de forskjellige delene av fingeravtrykket ditt"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingeravtrykk lagt til"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Når du ser dette ikonet, kan du bruke fingeravtrykket ditt for å identifisere deg eller godkjenne kjøp."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Vil du hoppe over fingeravtrykk-konfig.?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Du har valgt å bruke fingeravtrykket ditt som én måte å låse opp telefonen din på. Hvis du hopper over konfigureringen nå, må du fullføre den senere. Konfigureringen tar bare et par minutter."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Konfigurer skjermlås"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> av total batteribruk"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Oversikt siden sist batteriet var fulladet"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Sist batteriet var fulladet"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Data om batteribruk er omtrentlig og kan endres avhengig av bruk"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Aktiv bruk"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"I bakgrunnen"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batteribruk"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synkroniser jobbdata automatisk"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"La apper oppdatere data automatisk"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synkronisering er slått på for <xliff:g id="ID_1">%1$d</xliff:g> av <xliff:g id="ID_2">%2$d</xliff:g> elementer"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synkronisering er slått på for alle elementene"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synkronisering er slått av for alle elementene"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informasjon om administrert enhet"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Endringer og innstillinger administreres av organisasjonen din"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Endringer og innstillinger administreres av <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 5d9a7f5..2290b26 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"तपाईंको फिंगरप्रिन्टका फरक-फरक भागहरू थप्न आफ्नो औंलालाई उठाउँदै राख्दै गर्नुहोस्"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"फिंगरप्रिन्ट थपियो"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"तपाईंले यस आइकनलाई देख्नुहुँदा पहिचान वा खरिदहरूको अनुमोदन गर्न आफ्नो फिंगरप्रिन्ट प्रयोग गर्नुहोस्‌।"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"फिंगरप्रिन्ट सेटअप छोड्न चाहनुहुन्छ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"तपाईँले आफ्नो फोन अनलक गर्ने एक तरिका रूपमा फिंगरप्रिन्ट छान्‍नुभएको छ। यदि तपाईँले अहिले छोड्नु भएमा पछि पुन: सेटअप गर्न पर्नेछ। सेटअप गर्न मात्र केहि मिनेट लाग्‍नेछ।"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"स्क्रिन लक सेटअप गर्नुहोस्"</string>
@@ -542,7 +544,7 @@
     <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="2437716252059050291">"तपाईंले अर्को प्रयासमा गलत ढाँचा प्रविष्ट गर्नुभयो भने तपाईंको कार्य प्रोफाइल र यसको डेटालाई मेटाइनेछ"</string>
     <string name="lock_last_pin_attempt_before_wipe_profile" msgid="5799931839127476913">"तपाईंले अर्को प्रयासमा गलत PIN प्रविष्ट गर्नुभयो भने तपाईंको कार्य प्रोफाइल र यसको डेटालाई मेटाइनेछ"</string>
     <string name="lock_last_password_attempt_before_wipe_profile" msgid="6786586046975042158">"तपाईंले अर्को प्रयासमा गलत पासवर्ड प्रविष्ट गर्नुभयो भने तपाईंको कार्य प्रोफाइल र यसको डेटालाई मेटाइनेछ"</string>
-    <string name="lock_failed_attempts_now_wiping_device" msgid="5047439819181833824">"धेरै पकट गलत तरिकाले अनलक गर्ने प्रयास गरियो। यो यन्त्रको डेटा मेटाइनेछ।"</string>
+    <string name="lock_failed_attempts_now_wiping_device" msgid="5047439819181833824">"अनलक गर्ने अत्याधिक गलत प्रयासहरू भए। यो यन्त्रको डेटा मेटाइनेछ।"</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="6188180643494518001">"धेरै पकट गलत प्रयास गरियो। यो प्रयोगकर्तालाई मेटाइनेछ"</string>
     <string name="lock_failed_attempts_now_wiping_profile" msgid="1745475043685915442">"धेरै पकट गलत प्रयास गरियो। यो कार्य प्रोफाइल र यसको डेटालाई मेटाइनेछ।"</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="8246716090548717312">"खारेज गर्नुहोस्"</string>
@@ -2007,7 +2009,7 @@
     <string name="dialog_location_title" msgid="5888917530725874727">"स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्ने हो?"</string>
     <string name="dialog_location_message" product="default" msgid="7684240588903005427">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंले उक्त अनुप्रयोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न बरम्बार अनुरोध गर्ने भएकाले तपाईंको फोनले सामान्य ढंगले ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस फोनको स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
     <string name="dialog_location_message" product="tablet" msgid="7439311770795993356">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंले उक्त अनुप्रायोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न बरम्बार अनुरोध गर्ने भएकाले तपाईंको ट्याब्लेटले सामान्य ढंगले ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस ट्याब्लेटको स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
-    <string name="dialog_location_message" product="device" msgid="6285773079775018012">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंले उक्त अनुप्रायोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न बरम्बार अनुरोध गर्ने भएकाले तपाईंको यन्त्रले सामान्य ढंगले ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस यन्त्रको स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="dialog_location_message" product="device" msgid="6285773079775018012">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंले उक्त अनुप्रयोग प्रयोग नगरेको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न बरम्बार अनुरोध गर्ने भएकाले तपाईंको यन्त्रले सामान्य ढंगले ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस यन्त्रको स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
     <string name="dialog_location_ok" msgid="4572391197601313986">"निष्क्रिय पार्नुहोस्"</string>
     <string name="power_screen" msgid="3023346080675904613">"स्क्रिन"</string>
     <string name="power_flashlight" msgid="7794409781003567614">"फ्ल्यासलाइट"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 16a716c..bc63200 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Raak de sensor meerdere keren aan om de verschillende delen van je vingerafdruk toe te voegen"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Vingerafdruk toegevoegd"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Wanneer je dit pictogram ziet, kun je je vingerafdruk gebruiken voor identificatie of om een aankoop goed te keuren."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Instellen van vingerafdruk overslaan?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Je hebt ervoor gekozen je vingerafdruk te gebruiken als manier om je telefoon te ontgrendelen. Als je dit nu overslaat, moet je het later instellen. Het instellen neemt ongeveer een minuut in beslag."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Schermvergrendeling instellen"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> van batterij"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Uitsplitsing sinds laatste volledige lading"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Laatste volledige lading"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"De batterijgebruiksgegevens zijn bij benadering en kunnen veranderen op basis van het gebruik"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Tijdens actief gebruik"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Wanneer op de achtergrond"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batterijgebruik"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Werkgegevens automatisch synchroniseren"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Apps gegevens automatisch laten vernieuwen"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Accountsynchronisatie"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synchronisatie is ingeschakeld voor <xliff:g id="ID_1">%1$d</xliff:g> van de <xliff:g id="ID_2">%2$d</xliff:g> items"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synchronisatie is ingeschakeld voor alle items"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synchronisatie is uitgeschakeld voor alle items"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informatie over beheerd apparaat"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Wijzigingen en instellingen beheerd door je organisatie"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Wijzigingen en instellingen beheerd door <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 99f7ab5..432a6a2 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਰੱਖਣਾ-ਚੁੱਕਣਾ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕੀਤਾ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ਜਦ ਤੁਹਾਨੂੰ ਇਹ ਪ੍ਰਤੀਕ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਪਛਾਣ ਕਰਨ ਜਾਂ ਖਰੀਦਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ਕੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਟਅਪ ਛੱਡਣਾ ਹੈ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਨਲੌਕ ਕਰਨ ਦਾ ਇੱਕ ਤਰੀਕਾ ਆਪਣੇ ਉਂਗਲਾਂ ਦੇ ਨਿਸ਼ਾਨ ਦਾ ਉਪਯੋਗ ਕਰਨਾ ਚੁਣਿਆ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਹੁਣੇ ਇਸਨੂੰ ਛੱਡਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਇਹ ਬਾਅਦ ਵਿੱਚ ਸਥਾਪਿਤ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ। ਸੈੱਟਅੱਪ ਸਿਰਫ਼ ਇੱਕ ਮਿੰਟ ਲੈਂਦਾ ਹੈ।"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ਸਕ੍ਰੀਨ ਲੌਕ ਸੈੱਟਅੱਪ ਕਰੋ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 578501d..1890fe1 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Unoś palec, by odcisk był dokładniejszy"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Odcisk palca dodany"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Gdy zobaczysz tę ikonę, możesz użyć odcisku palca, aby się zidentyfikować lub zatwierdzić zakup."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Pominąć konfigurację odcisku palca?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Chcesz odblokowywać telefon m.in. odciskiem palca. Jeśli nie skonfigurujesz tej funkcji teraz, musisz to zrobić później. Zajmie Ci to około minuty."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Skonfiguruj blokadę ekranu"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> całkowitego zużycia baterii"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Zestawienie od ostatniego pełnego naładowania"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Ostatnie naładowanie"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Dane o wykorzystaniu baterii są przybliżone i mogą się zmienić w zależności od wykorzystania"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Podczas aktywnej pracy"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"W tle"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Wykorzystanie baterii"</string>
@@ -3697,12 +3698,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automatycznie synchronizuj dane do pracy"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Pozwala aplikacjom automatycznie odświeżać dane"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Synchronizacja konta"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Włącz synchronizację <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g> elementów"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Włącz synchronizację wszystkich elementów"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Wyłącz synchronizację wszystkich elementów"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informacje o urządzeniu zarządzanym"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Zmiany i ustawienia, którymi zarządza Twoja organizacja"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Zmiany i ustawienia, którymi zarządza organizacja <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 071adc3..af0cd97 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Continue levantando o dedo para adicionar as diferentes partes da sua impressão digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Impressão digital adicionada"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Sempre que vir este ícone, use sua impressão digital para se identificar ou aprovar compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Pular configuração da impressão digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Você optou por usar a impressão digital como uma maneira de desbloquear seu smartphone. Se você pular agora, precisará fazer essa configuração mais tarde. A configuração demora apenas um minuto aproximadamente."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar bloqueio de tela"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhamento desde a última carga completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última carga completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Os dados de uso da bateria são aproximados e podem mudar conforme o uso"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Ativo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Em segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Uso da bateria"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar dados de trabalho automaticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permitir que os apps atualizem dados automaticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronização ativada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> itens"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronização ativada para todos os itens"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronização desativada para todos os itens"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informações do dispositivo gerenciado"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Alterações e configurações gerenciadas pela sua organização"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Alterações e configurações gerenciadas por <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 78a5e90..148d4fa 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Mantenha o dedo levantado para adicionar as diferentes partes da sua impressão digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Impressão digital adicionada"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Quando vir este ícone, utilize a sua impressão digital para identificação ou para autorizar compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Ignorar configur. de impressão digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Optou por utilizar a sua impressão digital como uma forma de desbloquear o telemóvel. Se ignorar agora, terá de configurar esta opção mais tarde. A configuração demora apenas alguns minutos."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar o bloqueio de ecrã"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhes desde o último carregamento completo"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Último carregamento completo"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Os dados de utilização da bateria são aproximados e podem variar com base na utilização."</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Numa utilização ativa"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Em segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Utilização da bateria"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar dados de trabalho automaticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permitir que as aplicações atualizem os dados automaticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronização da conta"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronização ativada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> itens"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronização ativada para todos os itens"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronização desativada para todos os itens"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informações do dispositivo gerido"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Alterações e definições geridas pela sua entidade"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Alterações e definições geridas pela <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 071adc3..af0cd97 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Continue levantando o dedo para adicionar as diferentes partes da sua impressão digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Impressão digital adicionada"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Sempre que vir este ícone, use sua impressão digital para se identificar ou aprovar compras."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Pular configuração da impressão digital?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Você optou por usar a impressão digital como uma maneira de desbloquear seu smartphone. Se você pular agora, precisará fazer essa configuração mais tarde. A configuração demora apenas um minuto aproximadamente."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurar bloqueio de tela"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detalhamento desde a última carga completa"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Última carga completa"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Os dados de uso da bateria são aproximados e podem mudar conforme o uso"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Ativo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Em segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Uso da bateria"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizar dados de trabalho automaticamente"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permitir que os apps atualizem dados automaticamente"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronização de contas"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronização ativada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> itens"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronização ativada para todos os itens"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronização desativada para todos os itens"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informações do dispositivo gerenciado"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Alterações e configurações gerenciadas pela sua organização"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Alterações e configurações gerenciadas por <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index fc43e09..ae83ca9 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -395,6 +395,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Ridicați încontinuu degetul pentru a adăuga toate părțile amprentei"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Amprentă adăugată"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Când vedeți această pictogramă, folosiți amprenta pentru identificare sau pentru a aproba achizițiile."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Omiteți configurarea amprentei?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Ați ales ca amprenta să fie una dintre modalitățile de deblocare a telefonului. Dacă omiteți acum această etapă, va trebui să o configurați mai târziu. Configurarea durează în jur de un minut."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Configurați blocarea ecranului"</string>
@@ -2103,8 +2105,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> din bateria încărcată complet"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Detaliere de la ultima încărcare completă"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Ultima încărcare completă"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Datele despre utilizarea bateriei sunt aproximative și se pot modifica în funcție de utilizare"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"În timp ce se află în utilizare activă"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"În timp ce se află în fundal"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Utilizarea bateriei"</string>
@@ -3646,12 +3647,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sincronizare automată a datelor de serviciu"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Permiteți aplicațiilor să actualizeze date automat"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sincronizarea contului"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sincronizare activată pentru <xliff:g id="ID_1">%1$d</xliff:g> din <xliff:g id="ID_2">%2$d</xliff:g> articole"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sincronizare activată pentru toate articolele"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sincronizare dezactivată pentru toate articolele"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informații privind dispozitivul gestionat"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Modificări și setări gestionate de organizația dvs."</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Modificări și setări gestionate de <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 757fc32..bb34dbe 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Немного перемещайте палец, чтобы отсканировать его полностью"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Отпечаток добавлен"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Этот значок указывает на то, что вы можете подтверждать покупки и свою личность с помощью отпечатка пальца."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Не настраивать доступ по отпечаткам?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Для разблокировки телефона вы выбрали сканирование отпечатка пальца. Настройка займет около минуты. Если вы пропустите ее сейчас, вам все равно придется сделать это позже."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Настроить блокировку экрана"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> заряда батареи"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Использование с момента полной зарядки"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Последняя полная зарядка"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Время работы батареи указано приблизительно и может меняться в зависимости от интенсивности использования"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"В активном режиме"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"В фоновом режиме"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Расход заряда батареи"</string>
@@ -3047,8 +3048,8 @@
     <string name="zen_mode_schedule_rule_days" msgid="3195058680641389948">"Дни"</string>
     <string name="zen_mode_schedule_rule_days_none" msgid="4954143628634166317">"–"</string>
     <string name="zen_mode_schedule_rule_days_all" msgid="146511166522076034">"Каждый день"</string>
-    <string name="zen_mode_schedule_alarm_title" msgid="767054141267122030">"Следующий сигнал переопределяет время остановки текущего"</string>
-    <string name="zen_mode_schedule_alarm_summary" msgid="4597050434723180422">"Отключать, когда наступает время остановки сигнала или срабатывает следующий (если это происходит раньше)"</string>
+    <string name="zen_mode_schedule_alarm_title" msgid="767054141267122030">"Отключать с будильником"</string>
+    <string name="zen_mode_schedule_alarm_summary" msgid="4597050434723180422">"Отключать по сигналу будильника, если он срабатывает раньше времени окончания"</string>
     <string name="summary_divider_text" msgid="7228986578690919294">", "</string>
     <string name="summary_range_symbol_combination" msgid="5695218513421897027">"<xliff:g id="START">%1$s</xliff:g>–<xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="summary_range_verbal_combination" msgid="8467306662961568656">"с <xliff:g id="START">%1$s</xliff:g> по <xliff:g id="END">%2$s</xliff:g>"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Автоматическая синхронизация корпоративных данных"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Данные приложений обновляются без участия пользователя"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Синхронизировать аккаунты"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Синхронизация включена для некоторых объектов (<xliff:g id="ID_1">%1$d</xliff:g> из <xliff:g id="ID_2">%2$d</xliff:g>)"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Синхронизация включена для всех элементов"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Синхронизация отключена для всех элементов"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Информация об управляемом устройстве"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Изменения и настройки, управляемые организацией"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Изменения и настройки, управляемые организацией \"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>\""</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 2da3c14..bfd8def 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"ඔබේ ඇඟිලි සලකුණෙහි විවිධ කොටස් එක් කිරීමට ඔබගේ ඇඟිල්ල ඔසවා තබා ගන්න"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"ඇඟිලි සලකුණ එක් කරන ලදී"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"ඔබ මෙම නිරූපකය දුටු විට, හඳුනා ගැනීම හෝ මිලදී ගැනීම් සඳහා අනුමැතිය දීමට ඔබගේ ඇඟිලි සලකුණ භාවිත කරන්න."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ඇඟිලි සලකුණ පිහිටුවීම මග හරින්නද?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"ඔබ ඔබේ දුරකථනය අගුලු හැරීමේ එක් ක්‍රමයක් ලෙස ඔබේ ඇඟිලි සලකුණ භාවිත කිරීම තෝරා ඇත. ඔබ දැන් මග හැරියොත්, ඔබට මෙය පසුව පිහිටුවීමට අවශ්‍ය වනු ඇත. පිහිටුවීම මිනිත්තුවක් හෝ කිහිපයක් ගනු ඇත."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"තිර අගුළු දැමීම සකසන්න"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"සමස්ත බැටරියෙන් <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"අවසන් පූර්ණ ආරෝපණයෙන් පසුව ප්‍රභේදනය"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"අවසන් පූර්ණ ආරෝපණය"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"බැටරි භාවිත දත්ත දළ අගයක් වන අතර භාවිතය අනුව වෙනස් විය හැකිය"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"සක්‍රිය භාවිතයෙහි ඇති අතර"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"පසුබිමේ සිටින අතරතුර"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"බැටරි භාවිතය"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ස්වයංක්‍රියව වැඩ දත්ත සමමුහුර්ත කරන්න"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"යෙදුම් වෙත දත්ත ස්වයංක්‍රියව නැවුම් කිරීමට ඉඩ දෙන්න"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ගිණුම් සමමුහුර්තය"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"අයිතම <xliff:g id="ID_2">%2$d</xliff:g>කින් <xliff:g id="ID_1">%1$d</xliff:g>ක් සඳහා සමමුහුර්තය ක්‍රියාත්මකයි"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"සියලු අයිතම සඳහා සමමුහුර්තය ක්‍රියාත්මකයි"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"සියලු අයිතම සඳහා සමමුහුර්තය ක්‍රියාවිරහිතයි"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"කළමනාකරණය කළ උපාංග තොරතුරු"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"ඔබගේ සංවිධානය විසින් වෙනස් කිරීම් සහ සැකසීම් කළමනාකරණය කරනු ලැබේ"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> විසින් වෙනස් කිරීම් සහ සැකසීම් කළමනාකරණය කරනු ලැබේ"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index e56a0ba..b9d4fef 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Zdvíhajte prst, aby ste pridali všetky odlišné časti odtlačku"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Odtlačok bol pridaný"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Keď uvidíte túto ikonu, môžete na identifikáciu alebo schválenie nákupov použiť odtlačok prsta."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Preskočiť nastavenie odtlačkov prstov?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Vybrali ste, že chcete používať odtlačok prsta ako jeden zo spôsobov odomknutia telefónu. Ak tento krok preskočíte, budete musieť odtlačok nastaviť neskôr. Trvá to približne minútu."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Nastaviť zámku obrazovky"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> celkovej výdrže batérie"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Prehľad od posledného úplného nabitia"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Posledné úplné nabitie"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Údaje o využívaní batérie sú približné a môžu sa meniť podľa spôsobu používania"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Pri aktívnom používaní"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Na pozadí"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Využitie batérie"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Automaticky synchronizovať pracovné dáta"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Umožniť aplikáciám automatické obnovovanie dát"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Synchronizácia účtu"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synchronizácia je zapnutá pre <xliff:g id="ID_1">%1$d</xliff:g> z <xliff:g id="ID_2">%2$d</xliff:g> položiek"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synchronizácia je zapnutá pre všetky položky"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synchronizácia je vypnutá pre všetky položky"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informácie o spravovanom zariadení"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Zmeny a nastavenia spravované vašou organizáciou"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Zmeny a nastavenia spravované organizáciou <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f6e6dea..1d5ed65 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Še naprej privzdigujte prst, da dodate različne dele prstnega odtisa"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Prstni odtis dodan"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Ko se pokaže ta ikona, uporabite prstni odtis za identifikacijo ali odobritev nakupov."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Želite preskočiti nast. prstnega odtisa?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Za odklepanja telefona ste izbrali možnost prstnega odtisa. Če zdaj preskočite, boste to morali nastaviti pozneje. Nastavitev traja samo približno eno minuto."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Nastavi zaklepanje zaslona"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> celotne napolnjenosti akumulatorja"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Razčlenitev od zadnje napol. akumulatorja"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Zadnja polna napolnjenost akumulatorja"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Podatki o uporabi akumulatorja so približni in se lahko spremenijo glede na uporabo naprave"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Med aktivno uporabo"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Med izvajanjem v ozadju"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Poraba akumulatorja"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Samodejno sinhroniziranje delovnih podatkov"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Omogoči, da aplikacije samodejno osvežijo podatke"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinhronizacija računa"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinhronizacija je vklopljena za <xliff:g id="ID_1">%1$d</xliff:g> od <xliff:g id="ID_2">%2$d</xliff:g> elementov"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinhronizacija je vklopljena za vse elemente"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinhronizacija je izklopljena za vse elemente"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Podatki o upravljani napravi"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Spremembe in nastavitve, ki jih upravlja vaša organizacija"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Spremembe in nastavitve, ki jih upravlja <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index cbb4700..17376dd 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Vazhdo ta ngresh gishtin për të shtuar pjesë të ndryshme të gjurmës së gishtit"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Gjurma e gishtit u shtua"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kur shikon këtë ikonë, përdor gjurmën e gishtit për identifikim ose për të miratuar blerjet."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Kapërce konfigurimin e gjurmës së gishtit?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Ke zgjedhur që të përdorësh gjurmën e gishtit si një mënyrë për ta shkyçur telefonin. Nëse e kapërcen teni, do të duhet ta konfigurosh këtë më vonë. Konfigurimi do të zgjasë vetëm afro një minutë."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Konfiguro kyçjen e ekranit"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> nga e gjithë bateria"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Analiza që nga ngarkimi i fundit i plotë"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Ngarkimi i fundit i plotë"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Të dhënat e përdorimit të baterisë janë të përafërta dhe mund të ndryshojnë bazuar në përdorimin"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Kur është në përdorim aktiv"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Kur është në sfond"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Përdorimi i baterisë"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sinkronizo automatikisht të dhënat e punës"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Lejo që aplikacionet të rifreskojnë automatikisht të dhënat"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Sinkronizimi i llogarisë"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Sinkronizimi aktiv për <xliff:g id="ID_1">%1$d</xliff:g> nga <xliff:g id="ID_2">%2$d</xliff:g> artikuj"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Sinkronizimi aktiv për të gjithë artikujt"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Sinkronizimi joaktiv për të gjithë artikujt"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Informacioni i pajisjes së menaxhuar"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ndryshimet dhe cilësimet menaxhohen nga organizata jote"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Ndryshimet dhe cilësimet menaxhohen nga <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 9c578f2..da1ff4e 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -395,6 +395,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Наставите да подижете прст да бисте додали различите делове отиска прста"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Отисак прста је додат"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Када видите ову икону, користите отисак прста ради идентификације или одобравања куповина."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Прескочити подешавање отиска прста?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Изабрали сте да користите отисак прста као један начин за откључавање телефона. Ако сада прескочите, мораћете касније да обавите ово подешавање. За подешавање је потребно само око минут времена."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Подеси закључавање екрана"</string>
@@ -2103,8 +2105,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> укупног капацитета батерије"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Преглед од последњег потпуног пуњења"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Последње потпуно пуњење"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Подаци о коришћењу батерије су приближни и могу да се мењају у зависности од начина коришћења"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"У активној употреби"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"У позадини"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Потрошња батерије"</string>
@@ -3646,12 +3647,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Аутоматске синхронизуј пословне податке"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Омогући апликацијама да аутоматски освежавају податке"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Синхронизација налога"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Синхронизација је укључена за одређене ставке (<xliff:g id="ID_1">%1$d</xliff:g> од <xliff:g id="ID_2">%2$d</xliff:g>)"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Синхронизација је укључена за све ставке"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Синхронизација је искључена за све ставке"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Информације о уређају којим се управља"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Промене и подешавања којима управља организација"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Промене и подешавања којима управља <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index c9d3062..1e64f2e 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Lyft fingret flera gånger för att lägga till hela fingeravtrycket"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Fingeravtrycket är tillagt"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"När du ser den här ikonen kan du identifiera dig eller godkänna köp med hjälp av ditt fingeravtryck."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Hoppa över fingeravtryckskonfigurering?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Du har valt att låsa upp mobilen med hjälp av ditt fingeravtryck. Om du hoppar över konfigureringen nu måste du slutföra den senare. Konfigureringen tar bara en minut eller två."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ställ in skärmlåset"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> av den totala batterianvändningen"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Fördelning sedan senaste fulladdningen"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Sedan senaste fulladdning"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Informationen om batterianvändning är en uppskattning och kan ändras utifrån användning"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Under aktiv användning"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"I bakgrunden"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batteriförbrukning"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Synkronisera jobbdata automatiskt"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Tillåt att data uppdateras av appar automatiskt"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Kontosynkronisering"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Synkronisering har aktiverats för <xliff:g id="ID_1">%1$d</xliff:g> av <xliff:g id="ID_2">%2$d</xliff:g> objekt"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Synkronisering har aktiverats för alla objekt"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Synkronisering har inaktiverats för alla objekt"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Information om hanterad enhet"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ändringar och inställningar som hanteras av organisationen"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Ändringar och inställningar som hanteras av <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 0ca4886..c0928fb 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Endelea kuinua kidole chako ili uongeze sehemu tofauti za alama yako ya kidole"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Alama ya kidole imeongezwa"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Ukiona aikoni hii, tumia alama yako ya kidole kujitambulisha au kuidhinisha ununuzi."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Ungependa kuruka kusanidi kitambulisho?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Umechagua kutumia kitambulisho kama njia ya kufungua simu yako. Ukiruka sasa, utahitajika kusanidi hii baadaye. Usanidi huchukua takriban dakika moja."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Weka mbinu ya kufunga skrini"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Imetumia <xliff:g id="PERCENT">%1$s</xliff:g> ya chaji ya betri"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Uchanganuzi tangu mara ya mwisho ilipojaa chaji"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Mwisho ilipokuwa imejaa chaji"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Data ya matumizi ya betri imekadiriwa na inaweza kubadilika kulingana na matumizi"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Inapotumika"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Ikitumika chini chini"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Matumizi ya betri"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Sawazisha data ya kazini kiotomatiki"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Ruhusu programu zionyeshe data upya kiotomatiki"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Usawazishaji akaunti"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Umewasha usawazishaji katika vipengee <xliff:g id="ID_1">%1$d</xliff:g> kati ya <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Umewasha usawazishaji katika vipengee vyote"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Umezima usawazishaji katika vipengee vyote"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Maelezo kuhusu kifaa kinachosimamiwa"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Mabadiliko na mipangilio inayosimamiwa na shirika lako"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Mabadiliko na mipangilio inayosimamiwa na <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 555b02e..f012c2b 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"கைரேகையின் வெவ்வேறு பகுதிகளைச் சேர்க்க, விரலைத் தூக்கவும்"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"கைரேகை சேர்க்கப்பட்டது"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"இந்த ஐகானைப் பார்க்கும் போது, அடையாளப்படுத்தலுக்கு அல்லது வாங்குவதை அங்கீகரிக்க, உங்கள் கைரேகையைப் பயன்படுத்தவும்."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"கைரேகை அமைவைத் தவிர்க்கவா?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"கைரேகையை மட்டும் பயன்படுத்தி மொபைலைத் திறக்கும் முறையைத் தேர்வுசெய்துள்ளீர்கள். இப்போது தவிர்த்தால், இதைப் பின்னர் அமைக்க வேண்டியிருக்கும். அமைவுக்குத் தோராயமாக ஒரு நிமிடம் மட்டுமே எடுக்கும்."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"திரைப் பூட்டை அமை"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"ஒட்டுமொத்த பேட்டரியில் <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"கடைசியாக முழுவதும் சார்ஜ் ஆனதிலிருந்து பிரேக் டவுன்"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"கடைசியாக முழு சார்ஜ் செய்தது:"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"பேட்டரியின் உபயோகத் தரவு தோராயமானதாகும். இது பயன்படுத்துவதன் அடிப்படையில் மாறலாம்"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"உபயோகத்தில் இருக்கும் போது"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"பின்னணியில் இருக்கும் போது"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"பேட்டரி உபயோகம்"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"பணித் தரவைத் தானாக ஒத்திசை"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"பயன்பாடுகள் தானாகவே தரவைப் புதுப்பிக்க அனுமதி"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"கணக்கு ஒத்திசைவு"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g> இல் <xliff:g id="ID_1">%1$d</xliff:g>க்கு ஒத்திசைவை முடக்கு"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"எல்லாவற்றுக்கும் ஒத்திசைவை இயக்கு"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"எல்லாவற்றுக்கும் ஒத்திசைவை முடக்கு"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"நிர்வகிக்கப்படும் சாதனத் தகவல்"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"உங்கள் நிறுவனம் நிர்வகிக்கும் மாற்றங்களும் அமைப்புகளும்"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> நிர்வகிக்கும் மாற்றங்களும் அமைப்புகளும்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 38bb0d2..77bb735 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"మీ వేలిముద్ర యొక్క వివిధ భాగాలను జోడించడం కోసం మీ వేలిని అనేకసార్లు పైకి ఎత్తండి"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"వేలిముద్ర జోడించబడింది"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"మీకు ఈ చిహ్నం కనిపించినప్పుడు, గుర్తింపు లేదా కొనుగోళ్ల ఆమోదం కోసం మీ వేలిముద్రను ఉపయోగించండి."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"వేలిముద్ర సెటప్‌ను దాటవేయాలా?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"మీరు మీ ఫోన్‌ను అన్‌లాక్ చేయడానికి మీ వేలిముద్రను ఒక మార్గంగా ఎంచుకున్నారు. ఇప్పుడు దాటవేసినా, దీన్ని తర్వాత సెటప్ చేయాల్సి ఉంటుంది. కేవలం ఒక నిమిషంలో సెటప్‌ను పూర్తి చేయవచ్చు."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"స్క్రీన్ లాక్‌ను సెటప్ చేయి"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"మొత్తం బ్యాటరీలో <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"చివరిసారి పూర్తిగా ఛార్జ్ చేసినప్పటి నుండి వినియోగ వివరాలు"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"చివరిసారిగా పూర్తిగా ఛార్జ్ చేసిన సమయం"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"బ్యాటరీ వినియోగ డేటా ఇంచుమించుగా ఉంటుంది మరియు వినియోగం ఆధారంగా మారుతుంటుంది"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"క్రియాశీల ఉపయోగంలో ఉన్నప్పుడు"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"నేపథ్యంలో ఉన్నప్పుడు"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"బ్యాటరీ వినియోగం"</string>
@@ -3600,12 +3601,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"కార్యాలయ డేటాని స్వయంచాలకంగా సమకాలీకరించు"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"డేటాని స్వయంచాలకంగా రీఫ్రెష్ చేసేలా అనువర్తనాలు అనుమతించబడతాయి"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"ఖాతా సమకాలీకరణ"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_2">%2$d</xliff:g>లో <xliff:g id="ID_1">%1$d</xliff:g> అంశాలకు సమకాలీకరణ ఆన్‌లో ఉంది"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"అన్ని అంశాలకు సమకాలీకరణ ఆన్‌లో ఉంది"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"అన్ని అంశాలకు సమకాలీకరణ ఆఫ్‌లో ఉంది"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"నిర్వహించబడిన పరికర సమాచారం"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"మీ సంస్థ నిర్వహిస్తున్న మార్పులు &amp; సెట్టింగ్‌లు"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> నిర్వహిస్తున్న మార్పులు &amp; సెట్టింగ్‌లు"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index 85dfa4a..1898eed 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"ยกนิ้วมือเรื่อยๆ เพิ่มส่วนต่างๆ ของลายนิ้วมือ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"เพิ่มลายนิ้วมือแล้ว"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"เมื่อเห็นไอคอนนี้ ให้ใช้ลายนิ้วมือเพื่อระบุตัวตนหรือเพื่ออนุมัติการซื้อ"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"ข้ามการตั้งค่าลายนิ้วมือไหม"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"คุณได้เลือกที่จะใช้ลายนิ้วมือเป็นวิธีการหนึ่งในการปลดล็อกโทรศัพท์ หากคุณข้ามในตอนนี้ คุณจะต้องตั้งค่าฟีเจอร์นี้ในภายหลัง การตั้งค่าจะใช้เวลาราว 1 นาทีเท่านั้น"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"ตั้งค่าการล็อกหน้าจอ"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ของแบตเตอรี่ทั้งหมด"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"รายละเอียดนับตั้งแต่ชาร์จจนเต็มครั้งล่าสุด"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"ชาร์จจนเต็มครั้งล่าสุด"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"ข้อมูลการใช้งานแบตเตอรี่เป็นเพียงการประมาณการและอาจเปลี่ยนไปตามการใช้งาน"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"ขณะใช้งานอยู่"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"ขณะอยู่ในพื้นหลัง"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"การใช้งานแบตเตอรี่"</string>
@@ -2738,7 +2739,7 @@
     <string name="app_default_dashboard_title" msgid="7342549305933047317">"แอปเริ่มต้น"</string>
     <string name="system_dashboard_summary" msgid="5797743225249766685">"ภาษา เวลา การสำรองข้อมูล การอัปเดต"</string>
     <string name="search_results_title" msgid="1796252422574886932">"การตั้งค่า"</string>
-    <string name="search_menu" msgid="6283419262313758339">"การตั้งค่าการค้นหา"</string>
+    <string name="search_menu" msgid="6283419262313758339">"ค้นหาการตั้งค่า"</string>
     <string name="query_hint_text" msgid="3350700807437473939">"การตั้งค่าการค้นหา"</string>
     <string name="keywords_wifi" msgid="1395786161993828719">"wifi, wi-fi, การเชื่อมต่อเครือข่าย"</string>
     <string name="keywords_more_default_sms_app" msgid="2265154063220360784">"ข้อความ, การส่งข้อความ, ข้อความ, การส่งข้อความ"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"ซิงค์ข้อมูลงานอัตโนมัติ"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"ให้แอปรีเฟรชข้อมูลอัตโนมัติ"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"การซิงค์บัญชี"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"การซิงค์เปิดอยู่สำหรับ <xliff:g id="ID_1">%1$d</xliff:g> จาก <xliff:g id="ID_2">%2$d</xliff:g> รายการ"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"การซิงค์เปิดอยู่สำหรับรายการทั้งหมด"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"การซิงค์ปิดอยู่สำหรับรายการทั้งหมด"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"จัดการข้อมูลอุปกรณ์"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"องค์กรของคุณเป็นผู้จัดการการเปลี่ยนแปลงและการตั้งค่า"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"การเปลี่ยนแปลงและการตั้งค่าได้รับการจัดการโดย <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 7cc2f5a..6a7dbe1 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Panatilihing nakaangat ang iyong daliri upang idagdag ang iba\'t ibang bahagi ng fingerprint mo"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Naidagdag ang fingerprint"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Kapag nakita mo ang icon na ito, gamitin ang iyong fingerprint para sa pagkakakilanlan o upang aprubahan ang mga pagbili."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Laktawan ang pag-set up ng fingerprint?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Pinili mong gamitin ang iyong fingerprint bilang isang paraan upang i-unlock ang iyong telepono. Kung lalaktaw ka ngayon, kakailanganin mo itong i-set up sa ibang pagkakataon. Tumatagal lang nang isang minuto o higit pa ang pag-setup."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"I-set up ang screen lock"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> ng kabuuang baterya"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Breakdown mula noong huling napuno ang baterya"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Noong huling napuno ang baterya"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Pagtatantya lang ang data ng paggamit ng baterya at maaaring magbago batay sa paggamit"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Habang aktibong ginagamit"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Habang nasa background"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Paggamit ng baterya"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Awtomatikong i-sync ang data sa trabaho"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Hayaan ang mga app na awtomatikong mag-refresh ng data"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Pag-sync ng account"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Naka-on ang pag-sync para sa <xliff:g id="ID_1">%1$d</xliff:g> sa <xliff:g id="ID_2">%2$d</xliff:g> (na) item"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Naka-on ang pag-sync para sa lahat ng item"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Naka-off ang pag-sync para sa lahat ng item"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Impormasyon ng pinamamahalaang device"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Mga pagbabago at setting na pinamamahalaan ng iyong organisasyon"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Mga pagbabago at setting na pinamamahalaan ng <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 25403cd..dd47b1f 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Parmak izinizin tüm farklı noktalarını eklemek için parmağınızı sürekli kaldırıp dokunun"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Parmak izi eklendi"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Bu simgeyi gördüğünüzde, kimlik belirlemek veya bir satın alma işlemine onay vermek için parmak izinizi kullanın."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Parmak izi ayarlama atlansın mı?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Telefonunuzun kilidini açmak için tek yöntem olarak parmak izinizi kullanmayı seçtiniz. Şimdi atlarsanız bunu daha sonra ayarlamanız gerekecek. Ayarlama işlemi yalnızca bir veya birkaç dakika sürer."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ekran kilidini ayarla"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"Toplam pilin <xliff:g id="PERCENT">%1$s</xliff:g> kadarı"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Son tam şarj sonrası kullanım dökümü"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Son tam şarj"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Pil kullanımı verileri yaklaşık değerlerdir ve kullanıma dayalı olarak değişebilir"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Etkin kullanımdayken"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Arka plandayken"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Pil kullanımı"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"İş verilerini otomatik olarak senkronize et"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Uygulamaların verileri otomatik olarak yenilemesine izin ver"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Hesap senkronizasyonu"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Senkronizasyon <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g> öğe için açık"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Senkronizasyon tüm öğeler için açık"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Senkronizasyon tüm öğeler için kapalı"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Yönetilen cihaz bilgisi"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Kuruluşunuz tarafından yönetilen değişiklikler ve ayarlar"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"<xliff:g id="ORGANIZATION_NAME">%s</xliff:g> tarafından yönetilen değişiklikler ve ayarlar"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index e16af46..c4a851b 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -398,6 +398,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Піднімайте палець, щоб додати різні частини відбитка"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Відбиток пальця додано"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Коли ви бачите цей значок, підтвердьте свою особу або покупку за допомогою відбитка пальця."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Пропустити налаштування відбитка?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Ви вибрали відбиток пальця як один зі способів розблокування телефона. Якщо пропустити цей крок зараз, потрібно буде налаштувати відбиток пізніше. Це займає близько хвилини."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Налаштувати блокування екрана"</string>
@@ -2125,8 +2127,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> усього заряду"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Використання після повного заряджання"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Останнє повне заряджання"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Дані про використання акумулятора приблизні та можуть змінюватися залежно від використання"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Поки активно використовується"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"У фоновому режимі"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Використання заряду"</string>
@@ -3695,12 +3696,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Автоматично синхронізувати робочі дані"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Дозволити додаткам автоматично оновлювати дані"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Синхронізація облікового запису"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Синхронізацію ввімкнено для стількох елементів: <xliff:g id="ID_1">%1$d</xliff:g> з <xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Синхронізацію ввімкнено для всіх елементів"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Синхронізацію вимкнено для всіх елементів"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Інформація про керований пристрій"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Зміни та налаштування, якими керує адміністратор вашої організації"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Зміни та налаштування, якими керує адміністратор організації <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 697d555..d58142b 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"اپنے فنگرپرنٹ کے مختلف حصوں کو شامل کرنے کے لیے اپنی انگلی کو اٹھاتے رہیں"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"فنگر پرنٹ شامل ہو گیا"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"جب آپ کو یہ آئیکن دکھائی دے تو آپ شناخت کرنے یا خریداریوں کی منظوری کے لیے اپنے فنگرپرنٹ کا استعمال کریں۔"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"فنگر پرنٹ سیٹ اپ نظر انداز کریں؟"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"آپ نے اپنا فون غیر مقفل کرنے کیلئے ایک طریقہ اپنے فنگرپرنٹ کا استعمال منتخب کیا ہے۔ اگر آپ اب نظر انداز کرتے ہیں تو آپ کو اسے بعد میں سیٹ اپ کرنا ہوگا۔ سیٹ اپ میں کم و بیش ایک منٹ کا وقت لگتا ہے۔"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"اسکرین لاک کو ترتیب دیں"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 1de59c6..b2580c0 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -393,6 +393,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Barmoq izingizning boshqa qismlarini qo‘shish uchun barmog‘ingizni ko‘tarib turing"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Barmoq izi qo‘shildi"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Agar shu belgi ko‘rinsa, identifikatsiya yoki xaridlarni tasdiqlash uchun barmoq izingizdan foydalaning."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Barmoq izini sozlash o‘tkazib yuborilsinmi?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Siz telefoningizni qulfdan chiqarishning bir usuli sifatida barmoq izini tanlagansiz. Agar buni hozir o‘tkazib yuborsangiz, uni keyinroq sozlashga to‘g‘ri keladi. Sozlash atigi bir daqiqa atrofida vaqt oladi."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Ekranni qulfini sozlash"</string>
@@ -1485,7 +1487,7 @@
     <string name="lockpassword_strong_auth_required_reason_restart_work_password" msgid="8923861444535970646">"Davom etish uchun ishchi profilingiz parolini kiriting. Qurilma o‘chirib yoqilgandan so‘ng talab qilinadi."</string>
     <string name="lockpassword_invalid_pin" msgid="15588049067548470">"PIN-kod noto‘g‘ri"</string>
     <string name="lockpassword_invalid_password" msgid="4038507398784975200">"Parol noto‘g‘ri"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1745247595356012176">"Grafik kalit noto‘g‘ri"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1745247595356012176">"Grafik kalit xato"</string>
     <string name="lock_settings_title" msgid="4213839087748988686">"Qurilma xavfsizligi"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="5679630792003440352">"Grafik kalitni o‘zgartirish"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="266707138486731661">"Qulfni ochish PIN kodini o‘zgartirish"</string>
@@ -2092,8 +2094,7 @@
     <!-- String.format failed for translation -->
     <!-- no translation found for battery_last_full_charge (7151251641099019361) -->
     <skip />
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Batareyaning qolgan vaqti taxminiy va u foydalanish intensivligiga qarab farq qilishi mumkin"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Faol rejimda"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Fon rejimida"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Batareya sarfi"</string>
@@ -2352,7 +2353,7 @@
     <string name="enter_password" msgid="8035706727471334122">"Androidni ishga tushirish uchun parolni kiriting"</string>
     <string name="enter_pin" msgid="5305333588093263790">"Androidni ishga tushirish uchun PIN kodni kiriting"</string>
     <string name="enter_pattern" msgid="4187435713036808566">"Androidni ishga tushirish uchun chizmali parolni chizing"</string>
-    <string name="cryptkeeper_wrong_pattern" msgid="8423835922362956999">"Grafik kalit noto‘g‘ri"</string>
+    <string name="cryptkeeper_wrong_pattern" msgid="8423835922362956999">"Grafik kalit xato"</string>
     <string name="cryptkeeper_wrong_password" msgid="5200857195368904047">"Parol noto‘g‘ri"</string>
     <string name="cryptkeeper_wrong_pin" msgid="755720788765259382">"PIN-kod noto‘g‘ri"</string>
     <string name="checking_decryption" msgid="8287458611802609493">"Tekshirilmoqda…"</string>
@@ -3610,12 +3611,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Ishchi ma’lumotlarni avtomatik sinxronlash"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Ilovalarga ma’lumotlarni avtomatik yangilashiga ruxsat berish"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Hisobni sinxronlash"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"<xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g> ta narsa uchun sinxronizatsiya yoniq"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Barcha narsalar uchun sinxronizatsiya yoniq"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Barcha narsalar uchun sinxronizatsiya o‘chiq"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Boshqariluvchi qurilma ma’lumotlari"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"O‘zgartirishlar va sozlamalar tashkilotingiz tomonidan boshqariladi"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"O‘zgartirishlar va sozlamalar <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> tomonidan boshqariladi"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 7fa8078..627e1e2 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Tiếp tục nhấc ngón tay để thêm các phần khác nhau của vân tay"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Đã thêm vân tay"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Khi bạn nhìn thấy biểu tượng này, hãy sử dụng vân tay của bạn để nhận dạng hoặc phê duyệt các giao dịch mua."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Bỏ qua thiết lập vân tay?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Bạn đã chọn sử dụng vân tay là cách mở khóa điện thoại của mình. Nếu bỏ qua ngay bây giờ, bạn sẽ cần thiết lập cài đặt này sau. Thiết lập sẽ chỉ mất ít phút."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Thiết lập khóa màn hình"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> trong tổng số thời lượng pin"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Chi tiết từ lần sạc đầy gần đây nhất"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Lần sạc đầy gần đây nhất"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Dữ liệu về mức sử dụng pin chỉ mang tính tương đối và có thể thay đổi tùy theo mức sử dụng"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Khi đang sử dụng"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Khi ở chế độ nền"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Mức sử dụng pin"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Tự động đồng bộ hóa dữ liệu công việc"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Cho phép ứng dụng tự động làm mới dữ liệu"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Đồng bộ hóa tài khoản"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Bật đồng bộ hóa cho <xliff:g id="ID_1">%1$d</xliff:g> / <xliff:g id="ID_2">%2$d</xliff:g> mục"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Bật đồng bộ hóa cho tất cả các mục"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Tắt đồng bộ hóa cho tất cả các mục"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Thông tin thiết bị được quản lý"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Thay đổi và cài đặt do tổ chức của bạn quản lý"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Thay đổi và cài đặt do <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> quản lý"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 50d604b..6ed5e3d 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"不时地移开手指，以便传感器更完整地记录下您的指纹"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"指纹已添加"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"当您看见此图标时，请使用您的指纹进行身份验证或批准购买交易。"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"要跳过指纹设置？"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"您已选择使用指纹作为解锁手机的方式之一。如果您现在跳过这项设置，则以后还需要再进行设置。设置过程只需大约一分钟的时间。"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"设置屏幕锁定"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"整体用电量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"自上次充满电后的用电明细"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"上次充满电"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"电池用量数据为大致数据，可能会因使用情形而变化"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"在前台运行时"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"在后台运行时"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"电池用量"</string>
@@ -3597,12 +3598,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"自动同步工作数据"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"让应用自动刷新数据"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"帐号同步"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"已开启 <xliff:g id="ID_1">%1$d</xliff:g> 项（共 <xliff:g id="ID_2">%2$d</xliff:g> 项）的同步功能"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"已开启所有项的同步功能"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"已关闭所有项的同步功能"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"受管理设备的信息"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"由贵单位管理的更改和设置"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"由“<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>”管理的更改和设置"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index ab79fd4..d0337d9 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -169,7 +169,7 @@
     <string name="bluetooth_device_name_summary" msgid="4757990010751789977">"對其他裝置顯示為「<xliff:g id="DEVICE_NAME">^1</xliff:g>」"</string>
     <string name="bluetooth_paired_device_title" msgid="8638994696317952019">"您的裝置"</string>
     <string name="bluetooth_pairing_page_title" msgid="7712127387361962608">"配對新裝置"</string>
-    <string name="date_and_time" msgid="9062980487860757694">"日期與時間"</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) -->
     <skip />
@@ -293,8 +293,8 @@
     <string name="cellular_data_summary" msgid="4660351864416939504">"允許使用流動數據網絡"</string>
     <string name="allow_data_usage_title" msgid="2238205944729213062">"允許漫遊時使用數據"</string>
     <string name="roaming" msgid="3596055926335478572">"數據漫遊"</string>
-    <string name="roaming_enable" msgid="3737380951525303961">"漫遊時連線到數據傳輸服務"</string>
-    <string name="roaming_disable" msgid="1295279574370898378">"漫遊時連線到數據傳輸服務"</string>
+    <string name="roaming_enable" msgid="3737380951525303961">"漫遊時連線到數據服務"</string>
+    <string name="roaming_disable" msgid="1295279574370898378">"漫遊時連線到數據服務"</string>
     <string name="roaming_reenable_message" msgid="9141007271031717369">"您已離開主網絡覆蓋範圍，且已關閉數據傳輸漫遊服務，因此數據連線已中斷。"</string>
     <string name="roaming_turn_it_on_button" msgid="4387601818162120589">"開啟"</string>
     <string name="roaming_warning" msgid="4275443317524544705">"您可能需要支付龐大的費用。"</string>
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"重覆按壓指紋感應器，即可加入各個部分的指紋"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"已加入指紋"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"看到此圖示時，請使用您的指紋識別身份或核准購物交易。"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"略過指紋設定？"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"您已選擇使用指紋作為唯一的手機解鎖方式。如果您現在略過，將需要稍後設定。設定過程只需約一分鐘。"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"設定螢幕鎖定"</string>
@@ -1310,7 +1312,7 @@
     <string name="menu_delete" msgid="6981294422841124659">"刪除 APN"</string>
     <string name="menu_new" msgid="3014205883303921729">"新增 APN"</string>
     <string name="menu_save" msgid="8109345640668285399">"儲存"</string>
-    <string name="menu_cancel" msgid="2194502410474697474">"丟棄"</string>
+    <string name="menu_cancel" msgid="2194502410474697474">"捨棄"</string>
     <string name="error_title" msgid="7631322303341024692"></string>
     <string name="error_name_empty" msgid="5508155943840201232">"[名稱] 欄位不得留空。"</string>
     <string name="error_apn_empty" msgid="4932211013600863642">"APN 不可留空。"</string>
@@ -1379,7 +1381,7 @@
     <string name="bluetooth_tethering_off_subtext_config" msgid="6326877798974938021">"透過藍牙分享此<xliff:g id="DEVICE_NAME">%1$d</xliff:g>的互聯網連線"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="2135590598511178690">"不可與超過 <xliff:g id="MAXCONNECTION">%1$d</xliff:g> 部裝置分享網絡。"</string>
     <string name="bluetooth_untether_blank" msgid="2871192409329334813">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的網絡共享即將中斷。"</string>
-    <string name="tethering_footer_info" msgid="1308462275952345985">"使用熱點和網絡共享功能，透過您的流動數據連線向其他裝置提供互聯網服務。應用程式亦可以建立熱點，與附近的裝置分享內容。"</string>
+    <string name="tethering_footer_info" msgid="1308462275952345985">"使用熱點和網絡共享功能，透過您的流動數據連線提供互聯網服務給其他裝置。應用程式亦可以建立熱點，與附近的裝置分享內容。"</string>
     <string name="tethering_help_button_text" msgid="656117495547173630">"說明"</string>
     <string name="network_settings_title" msgid="2876509814832830757">"流動網絡"</string>
     <string name="manage_mobile_plan_title" msgid="7630170375010107744">"流動數據計劃"</string>
@@ -1579,9 +1581,9 @@
     <string name="show_running_services" msgid="5736278767975544570">"顯示執行中的服務"</string>
     <string name="show_background_processes" msgid="2009840211972293429">"顯示快取處理程序"</string>
     <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" 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_button" msgid="2559089511841281242">"重設應用程式"</string>
     <string name="manage_space_text" msgid="8852711522447794676">"管理空間"</string>
     <string name="filter" msgid="2018011724373033887">"篩選"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"整體電量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"上次充滿電後的詳細用量"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"上次充滿電"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"電池用量資料只屬約數，視乎使用情況而定"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"在前景中執行時"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"在背景中執行時"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"電池用量"</string>
@@ -2582,7 +2583,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5116692653439737050">"限制存取的個人檔案無法新增帳戶"</string>
     <string name="user_remove_user_menu" msgid="6897150520686691355">"將 <xliff:g id="USER_NAME">%1$s</xliff:g> 從這部裝置中刪除"</string>
     <string name="user_lockscreen_settings" msgid="4965661345247084878">"上鎖畫面設定"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="9072312646546364619">"螢幕鎖定時新增使用者"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="9072312646546364619">"上鎖畫面上新增使用者"</string>
     <string name="user_new_user_name" msgid="369856859816028856">"新使用者"</string>
     <string name="user_new_profile_name" msgid="2632088404952119900">"新個人檔案"</string>
     <string name="user_confirm_remove_self_title" msgid="8432050170899479556">"您要刪除自己嗎？"</string>
@@ -2631,7 +2632,7 @@
     <string name="nfc_how_it_works_content" msgid="4749007806393224934">"設定付款應用程式，然後將機背對準任何終端機的非接觸式符號。"</string>
     <string name="nfc_how_it_works_got_it" msgid="259653300203217402">"知道了"</string>
     <string name="nfc_more_title" msgid="815910943655133280">"更多…"</string>
-    <string name="nfc_payment_set_default_label" msgid="7315817259485674542">"設為您的喜好設定？"</string>
+    <string name="nfc_payment_set_default_label" msgid="7315817259485674542">"設為您的偏好設定？"</string>
     <string name="nfc_payment_set_default" msgid="8532426406310833489">"每次使用 Tap &amp; Pay 時都使用<xliff:g id="APP">%1$s</xliff:g>？"</string>
     <string name="nfc_payment_set_default_instead_of" msgid="6993301165940432743">"每次使用 Tap &amp; Pay 時都使用<xliff:g id="APP_0">%1$s</xliff:g> (而非<xliff:g id="APP_1">%2$s</xliff:g>)？"</string>
     <string name="restriction_settings_title" msgid="4233515503765879736">"限制"</string>
@@ -2639,7 +2640,7 @@
     <string name="restriction_menu_change_pin" msgid="740081584044302775">"更改 PIN 碼"</string>
     <string name="app_notifications_switch_label" msgid="9124072219553687583">"顯示通知"</string>
     <string name="help_label" msgid="6886837949306318591">"說明和意見反映"</string>
-    <string name="support_summary" msgid="2705726826263742491">"說明文章、手機和即時通訊、開始使用"</string>
+    <string name="support_summary" msgid="2705726826263742491">"說明文章、電話和即時通訊、開始使用"</string>
     <string name="user_account_title" msgid="1127193807312271167">"內容帳戶"</string>
     <string name="user_picture_title" msgid="7297782792000291692">"相片 ID"</string>
     <string name="extreme_threats_title" msgid="6549541803542968699">"極嚴重威脅"</string>
@@ -2787,9 +2788,9 @@
     <string name="keywords_gesture" msgid="5696040361482126337">"手勢"</string>
     <string name="keywords_payment_settings" msgid="5220104934130446416">"支付, 輕按, 付款"</string>
     <string name="keywords_backup" msgid="470070289135403022">"備份內容, 備份"</string>
-    <string name="keywords_squeeze_to_launch_gesture" msgid="4459283333825902485">"手勢、邊緣、側邊、有效的邊緣、擠壓、拿起、協助、助理、擠壓、緊握、握住、握緊、Ok Google、Google 助理"</string>
-    <string name="keywords_wake_squeeze_gesture" msgid="6923058534235267845">"手勢、喚醒、通知、螢幕、顯示、螢幕關閉、螢幕開啟、擠壓、邊緣、休眠、睡眠、拿起"</string>
-    <string name="keywords_alarm_silence_gesture" msgid="8507935972184597252">"手勢、靜音、延後、鬧鐘、來電、安靜、顯示、鎖定螢幕、擠壓、拿起、邊緣、停止"</string>
+    <string name="keywords_squeeze_to_launch_gesture" msgid="4459283333825902485">"手勢、邊框、側邊、使用中的邊框、擠壓、拿起、協助、助理、緊握手勢、緊握、握住、握緊、Ok Google、Google 助理"</string>
+    <string name="keywords_wake_squeeze_gesture" msgid="6923058534235267845">"手勢、喚醒、通知、螢幕、顯示、螢幕關閉、螢幕開啟、握緊、邊框、休眠、睡眠、拿起"</string>
+    <string name="keywords_alarm_silence_gesture" msgid="8507935972184597252">"手勢、靜音、延後、鬧鐘、來電、安靜、顯示、鎖定螢幕、握緊、拿起、邊框、停止"</string>
     <string name="setup_wifi_nfc_tag" msgid="9028353016222911016">"設定 Wi-Fi NFC 標籤"</string>
     <string name="write_tag" msgid="8571858602896222537">"寫入"</string>
     <string name="status_awaiting_tap" msgid="2130145523773160617">"輕按標籤即可寫入…"</string>
@@ -2886,7 +2887,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="1820188704793497324">"允許發出音效"</string>
+    <string name="allow_sound" msgid="1820188704793497324">"允許音效"</string>
     <string name="show_silently_summary" msgid="7616604629123146565">"禁止這些通知發出音效、震動或不時於目前螢幕上出現。"</string>
     <string name="notification_channel_summary_min" msgid="5401718014765921892">"重要性：低"</string>
     <string name="notification_channel_summary_low" msgid="322317684244981244">"重要性：中"</string>
@@ -2943,9 +2944,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="6370122441168519809">"允許使用通知圓點"</string>
+    <string name="notification_badge_title" msgid="6370122441168519809">"允許通知圓點"</string>
     <string name="notification_channel_badge_title" msgid="2240827899882847087">"顯示通知圓點"</string>
-    <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"取代「請勿騷擾」"</string>
+    <string name="app_notification_override_dnd_title" msgid="7867458246395884830">"覆寫「請勿騷擾」"</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>
@@ -3313,7 +3314,7 @@
     <string name="screen_zoom_conversation_timestamp_3" msgid="3785674344762707688">"星期二下午 6:02"</string>
     <string name="screen_zoom_conversation_timestamp_4" msgid="2511469395448561259">"星期二下午 6:03"</string>
     <string name="disconnected" msgid="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="other">已停用 <xliff:g id="COUNT">%d</xliff:g> 個應用程式的通知</item>
       <item quantity="one">已停用 1 個應用程式的通知</item>
@@ -3556,7 +3557,7 @@
     <string name="double_twist_for_camera_suggestion_summary" product="default" msgid="447403641027147153">"轉動手機兩下即可開啟自拍模式"</string>
     <string name="double_twist_for_camera_suggestion_summary" product="tablet" msgid="1724660290703318739">"轉動平板電腦兩下即可開啟自拍模式"</string>
     <string name="double_twist_for_camera_suggestion_summary" product="device" msgid="5980398380988039489">"轉動裝置兩下即可開啟自拍模式"</string>
-    <string name="ambient_display_title" product="default" msgid="5144814600610448504">"輕按兩下即可查看手機"</string>
+    <string name="ambient_display_title" product="default" msgid="5144814600610448504">"輕按兩下以查看手機"</string>
     <string name="ambient_display_title" product="tablet" msgid="8688795028609563837">"輕按兩下即可查看平板電腦"</string>
     <string name="ambient_display_title" product="device" msgid="3423781975742145894">"輕按兩下即可查看裝置"</string>
     <string name="ambient_display_summary" msgid="525662960806416373">"輕按螢幕兩下即可查看時間、通知圖示和其他資訊。"</string>
@@ -3575,7 +3576,7 @@
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="1677291167470357802">"快速查看通知"</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_summary" msgid="127592803294414082">"在指紋感應器向下快速滑動"</string>
     <string name="camera_lift_trigger_title" msgid="2758206307949942951">"拿起手機時開啟相機"</string>
-    <string name="camera_lift_trigger_summary" msgid="8580625412416846375">"只要拿起手機做出拍照 (橫向或直向) 動作，即可讓系統自動開啟相機。即使手機進入休眠狀態或已上鎖，亦能使用此功能。"</string>
+    <string name="camera_lift_trigger_summary" msgid="8580625412416846375">"只要拿起手機做出拍照動作 (橫向或直向)，相機就會自動開啟。即使手機在休眠狀態或已上鎖，亦能使用此功能。"</string>
     <string name="camera_lift_trigger_suggestion_summary" msgid="7209899898244722404">"在手機處於休眠狀態或鎖定時拍攝相片"</string>
     <string name="assist_gesture_title" msgid="7746563137898655539">"輔助手勢"</string>
     <string name="assist_gesture_summary" msgid="7575773425455374300"></string>
@@ -3600,12 +3601,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"自動同步處理工作資料"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"允許應用程式自動重新整理資料"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"已啟用 <xliff:g id="ID_1">%1$d</xliff:g> 個項目 (共 <xliff:g id="ID_2">%2$d</xliff:g> 個) 的同步處理功能"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"已啟用所有項目的同步處理功能"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"已停用所有項目的同步處理功能"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"受管理的裝置資料"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"由您的機構管理的變更和設定"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"由「<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>」管理的變更和設定"</string>
@@ -3703,5 +3701,5 @@
     <string name="carrier_provisioning" msgid="4398683675591893169">"流動網絡供應商佈建資料"</string>
     <string name="trigger_carrier_provisioning" msgid="3434865918009286187">"觸發流動網絡供應商佈建程序"</string>
     <string name="new_device_suggestion_title" msgid="698847081680980774">"新增了哪些精彩功能？"</string>
-    <string name="new_device_suggestion_summary" msgid="7172709269203435870">"查看前 5 個熱門功能"</string>
+    <string name="new_device_suggestion_summary" msgid="7172709269203435870">"查看 5 大功能"</string>
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index ea4cf0a..8341eae 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"重覆按壓指紋感應器，即可加入完整的指紋"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"指紋新增成功"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"當你看到這個圖示時，請使用你的指紋來驗證身分或核准購物交易。"</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"要略過指紋設定程序嗎？"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"你已選擇使用指紋做為其中一種手機解鎖方式。如果現在略過這項程序，你必須在稍後完成設定。設定程序只需要一分鐘左右。"</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"設定螢幕鎖定"</string>
@@ -2081,8 +2083,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"整體電量的 <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"上次充飽後的詳細用量資訊"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"上次完全充飽電"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"電池用量資料為概略值，而且會依使用情形而有變化"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"在前景執行時"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"在背景執行時"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"電池用量"</string>
@@ -3601,12 +3602,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"自動同步處理工作資料"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"允許應用程式自動重新整理資料"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"帳戶同步處理"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"已啟用 <xliff:g id="ID_1">%1$d</xliff:g> 個項目 (共 <xliff:g id="ID_2">%2$d</xliff:g> 個) 的同步處理功能"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"已啟用所有項目的同步處理功能"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"已停用所有項目的同步處理功能"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"受管理的裝置資訊"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"由貴機構所管理的變更內容和設定"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"由 <xliff:g id="ORGANIZATION_NAME">%s</xliff:g> 所管理的變更內容和設定"</string>
@@ -3703,6 +3701,6 @@
     <string name="storage_movies_tv" msgid="5498394447562086890">"影視應用程式"</string>
     <string name="carrier_provisioning" msgid="4398683675591893169">"電信業者佈建資訊"</string>
     <string name="trigger_carrier_provisioning" msgid="3434865918009286187">"觸發電信業者佈建程序"</string>
-    <string name="new_device_suggestion_title" msgid="698847081680980774">"有什麼值得一試的新功能？"</string>
+    <string name="new_device_suggestion_title" msgid="698847081680980774">"有什麼新奇功能？"</string>
     <string name="new_device_suggestion_summary" msgid="7172709269203435870">"查看前 5 大熱門功能"</string>
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 640f609..b91c22e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -392,6 +392,8 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="6158989350522518586">"Qhubeka nokuphakamisa umunwe wakho ukuze ungeze izingxenye ezahlukahlukene zesigxiviso sakho somunwe"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="7567276170287972230">"Izigxivizo zeminwe zingeziwe"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="4796715961273420536">"Uma usebenzisa lesi sithonjana, sebenzisa isigxivizo somunwe ukuze ukhombe nomauvume ukuthenta."</string>
+    <!-- no translation found for security_settings_fingerprint_enroll_enrolling_skip (3710211704052369752) -->
+    <skip />
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="6808422329107426923">"Yeqa ukusethwa kwezigxivizo zeminwe?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="274849306857859783">"Ukhethe ukusebenzisa izigxivizo zakho zeminwe njengendlela eyodwa yokuvula ifoni yakho. Uma weqa manje, kuzomele usethe lokhu ngemuva kwesikhathi. Ukusetha kuthatha iminithi noma isikhathi esingalapho."</string>
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="1195743489835505376">"Hlela ukuvala isikrini"</string>
@@ -2082,8 +2084,7 @@
     <string name="battery_overall_usage" msgid="2093409063297375436">"<xliff:g id="PERCENT">%1$s</xliff:g> kwalo lonke ibhethri"</string>
     <string name="battery_detail_since_full_charge" msgid="7515347842046955855">"Ukwaphuka kusuka ekushajeni okuphelele"</string>
     <string name="battery_last_full_charge" msgid="7151251641099019361">"Ukushija okuphelele kokugcina"</string>
-    <!-- no translation found for battery_footer_summary (67169726550144016) -->
-    <skip />
+    <string name="battery_footer_summary" msgid="67169726550144016">"Idatha yokusetshenziswa kwebhethri iyalinganiselwa futhi ingashintsha kusukela ekusetshenzisweni"</string>
     <string name="battery_detail_foreground" msgid="3350401514602032183">"Ngenkathi kusebenza"</string>
     <string name="battery_detail_background" msgid="1929644393553768999">"Ngenkathi kusemuva"</string>
     <string name="battery_detail_power_usage" msgid="6485766868610469101">"Ukusetshenziswa kwebhethri"</string>
@@ -3598,12 +3599,9 @@
     <string name="auto_sync_work_account_title" msgid="4489172450037434152">"Vumelanisa ngokuzenzakalelayo idatha yomsebenzi"</string>
     <string name="auto_sync_account_summary" msgid="692499211629185107">"Vumela izinhlelo zokusebenza ziqalise kabusha idatha ngokuzenzakalelayo"</string>
     <string name="account_sync_title" msgid="7214747784136106491">"Ukuvumelanisa kwe-akhawunti"</string>
-    <!-- no translation found for account_sync_summary_some_on (3375930757891381175) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_on (570431636622254156) -->
-    <skip />
-    <!-- no translation found for account_sync_summary_all_off (8782409931761182734) -->
-    <skip />
+    <string name="account_sync_summary_some_on" msgid="3375930757891381175">"Ukuvumelanisa kuvulelwe okungu-<xliff:g id="ID_1">%1$d</xliff:g> kuzinto ezingu-<xliff:g id="ID_2">%2$d</xliff:g>"</string>
+    <string name="account_sync_summary_all_on" msgid="570431636622254156">"Ukuvumelanisa kuvulelwe zonke izinto"</string>
+    <string name="account_sync_summary_all_off" msgid="8782409931761182734">"Ukuvumelanisa kuvalelwe zonke izinto"</string>
     <string name="enterprise_privacy_settings" msgid="1177106810374146496">"Ulwazi lwedivayisi oluphethwe"</string>
     <string name="enterprise_privacy_settings_summary_generic" msgid="5853292305730761128">"Ushintsho nezilungiselelo eziphethwe inhlangano yakho"</string>
     <string name="enterprise_privacy_settings_summary_with_name" msgid="4266234968317996188">"Ushintsho nezilungiselelo eziphethwe yi-<xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 76dacb3..1af8395 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -319,8 +319,11 @@
     <dimen name="storage_donut_view_label_text_size">14sp</dimen>
     <!-- Text size of the label text in the donut if the label text is long. -->
     <dimen name="storage_donut_view_shrunken_label_text_size">10sp</dimen>
+    <!-- The width of the storage summary donut -->
+    <dimen name="storage_donut_thickness">4dp</dimen>
 
     <!-- Battery meter view size -->
     <dimen name="battery_meter_width">66dp</dimen>
     <dimen name="battery_meter_height">100dp</dimen>
+
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9580206..32e3548 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -872,6 +872,8 @@
     <string name="security_settings_fingerprint_enroll_finish_title">Fingerprint added</string>
     <!-- Message shown in fingerprint enrollment dialog once enrollment is completed -->
     <string name="security_settings_fingerprint_enroll_finish_message">When you see this icon, use your fingerprint for identification or to approve purchases.</string>
+    <!-- Button text to skip enrollment of fingerprint [CHAR LIMIT=40] -->
+    <string name="security_settings_fingerprint_enroll_enrolling_skip">Do it later</string>
     <!-- Title of the dialog shown when the user tries to skip fingerprint setup, asking them to confirm the action [CHAR LIMIT=40] -->
     <string name="setup_fingerprint_enroll_enrolling_skip_title">Skip fingerprint setup?</string>
     <!-- Content of the dialog shown when the user tries to skip fingerprint setup, asking them to confirm the action [CHAR LIMIT=NONE] -->
@@ -4660,34 +4662,41 @@
     <!-- Title for force stop dialog [CHAR LIMIT=30] -->
     <string name="dialog_stop_title">Stop app?</string>
     <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_stop_message" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your phone awake.\n\nTo try to fix this issue, you can force stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+    <string name="dialog_stop_message" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your phone awake.\n\nTo try to fix this issue, you can stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
     <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_stop_message" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your tablet awake.\n\nTo try to fix this issue, you can force stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+    <string name="dialog_stop_message" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your tablet awake.\n\nTo try to fix this issue, you can stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
     <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_stop_message" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your device awake.\n\nTo try to fix this issue, you can force stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+    <string name="dialog_stop_message" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> is keeping your device awake.\n\nTo try to fix this issue, you can stop the app.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+
+    <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
+    <string name="dialog_stop_message_wakeup_alarm" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your phone.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g>.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+    <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
+    <string name="dialog_stop_message_wakeup_alarm" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your tablet.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g>.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
+    <!-- Message body for force stop dialog [CHAR LIMIT=NONE] -->
+    <string name="dialog_stop_message_wakeup_alarm" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your device.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g>.\n\nIf this keeps happening, you may need to uninstall the app to improve battery performance.</string>
 
     <!-- Text for OK button in force stop dialog [CHAR LIMIT=30] -->
     <string name="dialog_stop_ok">Stop app</string>
 
     <!-- Title for background usage dialog [CHAR LIMIT=60] -->
-    <string name="dialog_background_check_title">Turn off background usage?</string>
+    <string name="dialog_background_check_title">Turn off background usage &amp; stop app?</string>
     <!-- Message body for background usage dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_background_check_message" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your phone.\n\nTo address this issue, your phone can prevent this app from running in the background.</string>
+    <string name="dialog_background_check_message" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your phone.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g> and prevent it from running in the background.</string>
     <!-- Message body for background usage dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_background_check_message" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your tablet.\n\nTo address this issue, your tablet can prevent this app from running in the background.</string>
+    <string name="dialog_background_check_message" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your tablet.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g> and prevent it from running in the background.</string>
     <!-- Message body for background usage dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_background_check_message" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your device.\n\nTo address this issue, your device can prevent this app from running in the background.</string>
+    <string name="dialog_background_check_message" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps waking up your device.\n\nTo try to fix this issue, you can stop <xliff:g id="app">%1$s</xliff:g> and prevent it from running in the background.</string>
     <!-- Text for OK button in background usage dialog [CHAR LIMIT=30] -->
     <string name="dialog_background_check_ok">Turn off</string>
 
     <!-- Title for location dialog [CHAR LIMIT=60] -->
     <string name="dialog_location_title">Turn off location?</string>
     <!-- Message body for location dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_location_message" product="default">Your phone can’t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you're not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
+    <string name="dialog_location_message" product="default">Your phone can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you\'re not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
     <!-- Message body for location dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_location_message" product="tablet">Your tablet can’t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you're not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
+    <string name="dialog_location_message" product="tablet">Your tablet can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you\'re not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
     <!-- Message body for location dialog [CHAR LIMIT=NONE] -->
-    <string name="dialog_location_message" product="device">Your device can’t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you're not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
+    <string name="dialog_location_message" product="device">Your device can\'t manage battery normally because <xliff:g id="app">%1$s</xliff:g> keeps requesting your location when you\'re not using the app.\n\nTo fix this issue, you can turn off location for this app.</string>
 
     <!-- Text for OK button in location dialog [CHAR LIMIT=30] -->
     <string name="dialog_location_ok">Turn off</string>
@@ -6500,7 +6509,7 @@
     <string name="keywords_lockscreen">slide to unlock, password, pattern, PIN</string>
     <string name="keywords_profile_challenge">work challenge, work, profile</string>
     <string name="keywords_unification">work profile, managed profile, unify, unification, work, profile</string>
-    <string name="keywords_gesture">gesture</string>
+    <string name="keywords_gesture">gestures</string>
     <string name="keywords_payment_settings">pay, tap, payments</string>
     <string name="keywords_backup">backup, back up</string>
     <string name="keywords_squeeze_to_launch_gesture">gesture, edge, side, active edge, squeeze, grip, assist, assistant, squeezy, squeezie, squeezey, squeezee, ok google, google assistant</string>
@@ -8594,7 +8603,7 @@
     <string name="deletion_helper_preference_title">Free up space now</string>
 
     <!-- Preference title for gesture settings [CHAR LIMIT=40 BACKUP_MESSAGE_ID:5280023307132819052]-->
-    <string name="gesture_preference_title">Gesture</string>
+    <string name="gesture_preference_title">Gestures</string>
 
     <!-- Preference summary for gesture settings (phone) [CHAR LIMIT=NONE]-->
     <string name="gesture_preference_summary" product="default">Quick gestures to control your phone</string>
diff --git a/res/xml/account_type_settings.xml b/res/xml/account_type_settings.xml
index 0ba961f..7f57ed0 100644
--- a/res/xml/account_type_settings.xml
+++ b/res/xml/account_type_settings.xml
@@ -39,6 +39,7 @@
       android:key="remove_account"
       android:layout="@layout/remove_account_button"
       android:order="1000"
-      android:selectable="false"/>
+      android:selectable="false"
+      settings:allowDividerAbove="true"/>
 
 </PreferenceScreen>
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index 5ea8836..1cbeecd 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -23,6 +23,7 @@
     <Preference
         android:key="phone_language"
         android:title="@string/phone_language"
+        android:icon="@drawable/ic_translate_24dp"
         android:fragment="com.android.settings.localepicker.LocaleListEditor"/>
 
     <PreferenceCategory
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 9ce4c4a..c7f349e 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -127,6 +127,7 @@
                 public List<String> getNonIndexableKeys(Context context) {
                     List<String> keys = super.getNonIndexableKeys(context);
                     keys.add(KEY_DISPLAY_SIZE);
+                    keys.add(WallpaperPreferenceController.KEY_WALLPAPER);
                     return keys;
                 }
 
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index c352bf0..f0115b8 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -24,6 +24,7 @@
 import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -57,6 +58,12 @@
     }
 
     @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    @Override
     protected boolean isValidFragment(String fragmentName) {
         return EncryptionInterstitialFragment.class.getName().equals(fragmentName);
     }
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 805f965..556dbfb 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -337,6 +337,14 @@
             Toolbar toolbar = findViewById(R.id.search_action_bar);
             toolbar.setOnClickListener(this);
             setActionBar(toolbar);
+
+            // Please forgive me for what I am about to do.
+            //
+            // Need to make the navigation icon non-clickable so that the entire card is clickable
+            // and goes to the search UI. Also set the background to null so there's no ripple.
+            View navView = toolbar.getNavigationView();
+            navView.setClickable(false);
+            navView.setBackground(null);
         }
 
         ActionBar actionBar = getActionBar();
diff --git a/src/com/android/settings/SetupEncryptionInterstitial.java b/src/com/android/settings/SetupEncryptionInterstitial.java
index 4f30cc0..989cc2b 100644
--- a/src/com/android/settings/SetupEncryptionInterstitial.java
+++ b/src/com/android/settings/SetupEncryptionInterstitial.java
@@ -18,7 +18,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.Bundle;
 import android.widget.LinearLayout;
 
@@ -55,12 +54,6 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
     protected void onCreate(Bundle savedInstance) {
         super.onCreate(savedInstance);
         LinearLayout layout = (LinearLayout) findViewById(R.id.content_parent);
diff --git a/src/com/android/settings/SetupRedactionInterstitial.java b/src/com/android/settings/SetupRedactionInterstitial.java
index 321040e..ac1db15 100644
--- a/src/com/android/settings/SetupRedactionInterstitial.java
+++ b/src/com/android/settings/SetupRedactionInterstitial.java
@@ -60,12 +60,6 @@
         return SetupRedactionInterstitialFragment.class.getName().equals(fragmentName);
     }
 
-    @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
     public static class SetupRedactionInterstitialFragment extends RedactionInterstitialFragment {
 
         // Setup wizard specific UI customizations can be done here
diff --git a/src/com/android/settings/accounts/AccountSyncPreferenceController.java b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
index 0b095f7..2eee579 100644
--- a/src/com/android/settings/accounts/AccountSyncPreferenceController.java
+++ b/src/com/android/settings/accounts/AccountSyncPreferenceController.java
@@ -19,23 +19,31 @@
 import static android.content.Intent.EXTRA_USER;
 
 import android.accounts.Account;
+import android.content.ContentResolver;
 import android.content.Context;
+import android.content.SyncAdapterType;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
+import android.support.v7.preference.PreferenceScreen;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.Utils;
 import com.android.settings.core.PreferenceController;
+import com.android.settingslib.accounts.AuthenticatorHelper;
 
-public class AccountSyncPreferenceController extends PreferenceController {
+public class AccountSyncPreferenceController extends PreferenceController
+        implements AuthenticatorHelper.OnAccountsUpdateListener {
 
     private static final String TAG = "AccountSyncController";
     private static final String KEY_ACCOUNT_SYNC = "account_sync";
 
     private Account mAccount;
     private UserHandle mUserHandle;
+    private AuthenticatorHelper mAuthenticatorHelper;
+    private Preference mPreference;
 
     public AccountSyncPreferenceController(Context context) {
         super(context);
@@ -65,8 +73,61 @@
         return KEY_ACCOUNT_SYNC;
     }
 
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference = screen.findPreference(getPreferenceKey());
+    }
+
+    @Override
+    public void updateState(Preference preference) {
+        updateSummary(preference);
+    }
+
+    @Override
+    public void onAccountsUpdate(UserHandle userHandle) {
+        updateSummary(mPreference);
+    }
+
     public void init(Account account, UserHandle userHandle) {
         mAccount = account;
         mUserHandle = userHandle;
+        mAuthenticatorHelper = new AuthenticatorHelper(mContext, mUserHandle, this);
+    }
+
+    @VisibleForTesting
+    void updateSummary(Preference preference) {
+        final int userId = mUserHandle.getIdentifier();
+        final SyncAdapterType[] syncAdapters = ContentResolver.getSyncAdapterTypesAsUser(userId);
+        int total = 0;
+        int enabled = 0;
+        if (syncAdapters != null) {
+            for (int i = 0, n = syncAdapters.length; i < n; i++) {
+                final SyncAdapterType sa = syncAdapters[i];
+                if (!sa.accountType.equals(mAccount.type) || !sa.isUserVisible()) {
+                    continue;
+                }
+                final int syncState =
+                        ContentResolver.getIsSyncableAsUser(mAccount, sa.authority, userId);
+                if (syncState > 0) {
+                    total++;
+                    final boolean syncEnabled = ContentResolver.getSyncAutomaticallyAsUser(
+                            mAccount, sa.authority, userId);
+                    final boolean oneTimeSyncMode =
+                            !ContentResolver.getMasterSyncAutomaticallyAsUser(userId);
+                    if (oneTimeSyncMode || syncEnabled) {
+                        enabled++;
+                    }
+                }
+            }
+        }
+        if (enabled == 0) {
+            preference.setSummary(R.string.account_sync_summary_all_off);
+        } else if (enabled == total) {
+            preference.setSummary(R.string.account_sync_summary_all_on);
+        } else {
+            preference.setSummary(
+                    mContext.getString(R.string.account_sync_summary_some_on, enabled, total));
+        }
     }
 }
diff --git a/src/com/android/settings/applications/LayoutPreference.java b/src/com/android/settings/applications/LayoutPreference.java
index 6ae0772..f2bd183 100644
--- a/src/com/android/settings/applications/LayoutPreference.java
+++ b/src/com/android/settings/applications/LayoutPreference.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.res.TypedArray;
 import android.support.annotation.VisibleForTesting;
+import android.support.v4.content.res.TypedArrayUtils;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
@@ -33,19 +34,30 @@
 public class LayoutPreference extends Preference {
 
     private final View.OnClickListener mClickListener = v -> performClick(v);
+    private boolean mAllowDividerAbove;
+    private boolean mAllowDividerBelow;
 
     @VisibleForTesting
     View mRootView;
 
     public LayoutPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
-        final TypedArray a = context.obtainStyledAttributes(
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Preference);
+        mAllowDividerAbove = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerAbove,
+                R.styleable.Preference_allowDividerAbove, false);
+        mAllowDividerBelow = TypedArrayUtils.getBoolean(a, R.styleable.Preference_allowDividerBelow,
+                R.styleable.Preference_allowDividerBelow, false);
+        a.recycle();
+
+        a = context.obtainStyledAttributes(
                 attrs, com.android.internal.R.styleable.Preference, 0, 0);
         int layoutResource = a.getResourceId(com.android.internal.R.styleable.Preference_layout,
                 0);
         if (layoutResource == 0) {
             throw new IllegalArgumentException("LayoutPreference requires a layout to be defined");
         }
+        a.recycle();
+
         // Need to create view now so that findViewById can be called immediately.
         final View view = LayoutInflater.from(getContext())
                 .inflate(layoutResource, null, false);
@@ -78,6 +90,8 @@
         final boolean selectable = isSelectable();
         holder.itemView.setFocusable(selectable);
         holder.itemView.setClickable(selectable);
+        holder.setDividerAllowedAbove(mAllowDividerAbove);
+        holder.setDividerAllowedBelow(mAllowDividerBelow);
 
         FrameLayout layout = (FrameLayout) holder.itemView;
         layout.removeAllViews();
diff --git a/src/com/android/settings/applications/SpacePreference.java b/src/com/android/settings/applications/SpacePreference.java
index d90ff18..58a1dce 100644
--- a/src/com/android/settings/applications/SpacePreference.java
+++ b/src/com/android/settings/applications/SpacePreference.java
@@ -17,6 +17,7 @@
 
 import android.content.Context;
 import android.content.res.TypedArray;
+import android.support.v4.content.res.TypedArrayUtils;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceViewHolder;
 import android.util.AttributeSet;
@@ -33,7 +34,9 @@
     private int mHeight;
 
     public SpacePreference(Context context, AttributeSet attrs) {
-        this(context, attrs, com.android.internal.R.attr.preferenceStyle);
+        this(context, attrs, TypedArrayUtils.getAttr(context,
+                android.support.v7.preference.R.attr.preferenceStyle,
+                android.R.attr.preferenceStyle));
     }
 
     public SpacePreference(Context context, AttributeSet attrs, int defStyleAttr) {
diff --git a/src/com/android/settings/applications/assist/ManageAssist.java b/src/com/android/settings/applications/assist/ManageAssist.java
index 3b8edf3..4209a42 100644
--- a/src/com/android/settings/applications/assist/ManageAssist.java
+++ b/src/com/android/settings/applications/assist/ManageAssist.java
@@ -72,7 +72,8 @@
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new DefaultAssistPreferenceController(context));
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST,
+                true /* assistOnly */));
         controllers.add(new AssistContextPreferenceController(context, lifecycle));
         controllers.add(new AssistScreenshotPreferenceController(context, lifecycle));
         controllers.add(new AssistFlashScreenPreferenceController(context, lifecycle));
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index c81e1ee..2445619 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -20,6 +20,11 @@
 
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.VisibleForTesting;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
 
 import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
@@ -36,15 +41,42 @@
     public static final String KEY_DEVICE_ADDRESS = "device_address";
     private static final String TAG = "BTDeviceDetailsFrg";
 
+    @VisibleForTesting
+    static int EDIT_DEVICE_NAME_ITEM_ID = Menu.FIRST;
+
     private String mDeviceAddress;
+    private LocalBluetoothManager mManager;
+    private CachedBluetoothDevice mCachedDevice;
 
     public BluetoothDeviceDetailsFragment() {
         super(DISALLOW_CONFIG_BLUETOOTH);
     }
 
+    @VisibleForTesting
+    LocalBluetoothManager getLocalBluetoothManager(Context context) {
+        return Utils.getLocalBtManager(context);
+    }
+
+    @VisibleForTesting
+    CachedBluetoothDevice getCachedDevice(String deviceAddress) {
+        BluetoothDevice remoteDevice =
+                mManager.getBluetoothAdapter().getRemoteDevice(deviceAddress);
+        return mManager.getCachedDeviceManager().findDevice(remoteDevice);
+    }
+
+    public static BluetoothDeviceDetailsFragment newInstance(String deviceAddress) {
+        Bundle args = new Bundle(1);
+        args.putString(KEY_DEVICE_ADDRESS, deviceAddress);
+        BluetoothDeviceDetailsFragment fragment = new BluetoothDeviceDetailsFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
     @Override
     public void onAttach(Context context) {
         mDeviceAddress = getArguments().getString(KEY_DEVICE_ADDRESS);
+        mManager = getLocalBluetoothManager(context);
+        mCachedDevice = getCachedDevice(mDeviceAddress);
         super.onAttach(context);
     }
 
@@ -64,20 +96,36 @@
     }
 
     @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        MenuItem item = menu.add(0, EDIT_DEVICE_NAME_ITEM_ID, 0, R.string.bluetooth_rename_button);
+        item.setIcon(R.drawable.ic_mode_edit);
+        item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+        super.onCreateOptionsMenu(menu, inflater);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem menuItem) {
+        if (menuItem.getItemId() == EDIT_DEVICE_NAME_ITEM_ID) {
+            RemoteDeviceNameDialogFragment.newInstance(mCachedDevice).show(
+                    getFragmentManager(), RemoteDeviceNameDialogFragment.TAG);
+            return true;
+        }
+        return super.onOptionsItemSelected(menuItem);
+    }
+
+    @Override
     protected List<PreferenceController> getPreferenceControllers(Context context) {
         ArrayList<PreferenceController> controllers = new ArrayList<>();
-        LocalBluetoothManager manager = Utils.getLocalBtManager(context);
-        BluetoothDevice remoteDevice = manager.getBluetoothAdapter().getRemoteDevice(
-                mDeviceAddress);
-        CachedBluetoothDevice device = manager.getCachedDeviceManager().findDevice(remoteDevice);
-        if (device != null) {
+
+        if (mCachedDevice != null) {
             Lifecycle lifecycle = getLifecycle();
-            controllers.add(new BluetoothDetailsHeaderController(context, this, device, lifecycle));
-            controllers.add(new BluetoothDetailsButtonsController(context, this, device,
+            controllers.add(new BluetoothDetailsHeaderController(context, this, mCachedDevice,
                     lifecycle));
-            controllers.add(new BluetoothDetailsProfilesController(context, this, manager, device,
+            controllers.add(new BluetoothDetailsButtonsController(context, this, mCachedDevice,
                     lifecycle));
-            controllers.add(new BluetoothDetailsMacAddressController(context, this, device,
+            controllers.add(new BluetoothDetailsProfilesController(context, this, mManager,
+                    mCachedDevice, lifecycle));
+            controllers.add(new BluetoothDetailsMacAddressController(context, this, mCachedDevice,
                     lifecycle));
         }
         return controllers;
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
index baab3fc..7e826c8 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceNamePreferenceController.java
@@ -37,7 +37,6 @@
 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;
 
@@ -111,7 +110,8 @@
     @Override
     public boolean handlePreferenceTreeClick(Preference preference) {
         if (KEY_DEVICE_NAME.equals(preference.getKey())) {
-            new BluetoothNameDialogFragment().show(mFragment.getFragmentManager(), "rename device");
+            LocalDeviceNameDialogFragment.newInstance()
+                    .show(mFragment.getFragmentManager(), LocalDeviceNameDialogFragment.TAG);
             return true;
         }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
index 484d4b3..e415b47 100644
--- a/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothNameDialogFragment.java
@@ -18,19 +18,13 @@
 
 import android.app.AlertDialog;
 import android.app.Dialog;
-import android.app.DialogFragment;
-import android.bluetooth.BluetoothAdapter;
-import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.DialogInterface;
-import android.content.Intent;
-import android.content.IntentFilter;
 import android.content.res.Configuration;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.InputFilter;
 import android.text.TextWatcher;
-import android.util.Log;
 import android.view.KeyEvent;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -40,25 +34,19 @@
 import android.widget.EditText;
 import android.widget.TextView;
 
-import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
-import com.android.settingslib.bluetooth.LocalBluetoothManager;
 
 /**
- * Dialog fragment for renaming the local Bluetooth device.
+ * Dialog fragment for renaming a Bluetooth device.
  */
-public final class BluetoothNameDialogFragment extends InstrumentedDialogFragment
+abstract class BluetoothNameDialogFragment extends InstrumentedDialogFragment
         implements TextWatcher {
     private static final int BLUETOOTH_NAME_MAX_LENGTH_BYTES = 248;
 
     private AlertDialog mAlertDialog;
     private Button mOkButton;
 
-    // accessed from inner class (not private to avoid thunks)
-    static final String TAG = "BluetoothNameDialogFragment";
-    LocalBluetoothAdapter mLocalAdapter;
     EditText mDeviceNameView;
 
     // This flag is set when the name is updated by code, to distinguish from user changes
@@ -71,63 +59,43 @@
     private static final String KEY_NAME = "device_name";
     private static final String KEY_NAME_EDITED = "device_name_edited";
 
-    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
-        @Override
-        public void onReceive(Context context, Intent intent) {
-            String action = intent.getAction();
-            if (action.equals(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED)) {
-                updateDeviceName();
-            } else if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED) &&
-                    (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR) ==
-                            BluetoothAdapter.STATE_ON)) {
-                updateDeviceName();
-            }
-        }
-    };
+    /**
+     * @return the title to use for the dialog.
+     */
+    abstract protected int getDialogTitle();
 
-    @Override
-    public int getMetricsCategory() {
-        return MetricsProto.MetricsEvent.DIALOG_BLUETOOTH_RENAME;
-    }
+    /**
+     * @return the current name used for this device.
+     */
+    abstract protected String getDeviceName();
 
-    @Override
-    public void onCreate(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-
-        LocalBluetoothManager localManager = Utils.getLocalBtManager(getActivity());
-        mLocalAdapter = localManager.getBluetoothAdapter();
-    }
+    /**
+     * Set the device to the given name.
+     * @param deviceName the name to use
+     */
+    abstract protected void setDeviceName(String deviceName);
 
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
-        String deviceName = mLocalAdapter.getName();
+        String deviceName = getDeviceName();
         if (savedInstanceState != null) {
             deviceName = savedInstanceState.getString(KEY_NAME, deviceName);
             mDeviceNameEdited = savedInstanceState.getBoolean(KEY_NAME_EDITED, false);
         }
-        mAlertDialog = new AlertDialog.Builder(getActivity())
-                .setTitle(R.string.bluetooth_rename_device)
+        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
+                .setTitle(getDialogTitle())
                 .setView(createDialogView(deviceName))
-                .setPositiveButton(R.string.bluetooth_rename_button,
-                        new DialogInterface.OnClickListener() {
-                            public void onClick(DialogInterface dialog, int which) {
-                                String deviceName = mDeviceNameView.getText().toString();
-                                setDeviceName(deviceName);
-                            }
-                        })
-                .setNegativeButton(android.R.string.cancel, null)
-                .create();
+                .setPositiveButton(R.string.bluetooth_rename_button, (dialog, which) -> {
+                    setDeviceName(mDeviceNameView.getText().toString());
+                })
+                .setNegativeButton(android.R.string.cancel, null);
+        mAlertDialog = builder.create();
         mAlertDialog.getWindow().setSoftInputMode(
                 WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
 
         return mAlertDialog;
     }
 
-    private void setDeviceName(String deviceName) {
-        Log.d(TAG, "Setting device name to " + deviceName);
-        mLocalAdapter.setName(deviceName);
-    }
-
     @Override
     public void onSaveInstanceState(Bundle outState) {
         outState.putString(KEY_NAME, mDeviceNameView.getText().toString());
@@ -174,23 +142,14 @@
             mOkButton = mAlertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
             mOkButton.setEnabled(mDeviceNameEdited);    // Ok button enabled after user edits
         }
-        IntentFilter filter = new IntentFilter();
-        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
-        filter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
-        getActivity().registerReceiver(mReceiver, filter);
-    }
-
-    @Override
-    public void onPause() {
-        super.onPause();
-        getActivity().unregisterReceiver(mReceiver);
     }
 
     void updateDeviceName() {
-        if (mLocalAdapter != null && mLocalAdapter.isEnabled()) {
+        String name = getDeviceName();
+        if (name != null) {
             mDeviceNameUpdated = true;
             mDeviceNameEdited = false;
-            mDeviceNameView.setText(mLocalAdapter.getName());
+            mDeviceNameView.setText(name);
         }
     }
 
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 4703031..85eb23e 100644
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -316,7 +316,6 @@
             // New version - uses a separate screen.
             args.putString(BluetoothDeviceDetailsFragment.KEY_DEVICE_ADDRESS,
                     device.getDevice().getAddress());
-            BluetoothDeviceDetailsFragment fragment = new BluetoothDeviceDetailsFragment();
             final SettingsActivity activity =
                     (SettingsActivity) BluetoothSettings.this.getActivity();
             activity.startPreferencePanel(this,
diff --git a/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java b/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.java
new file mode 100644
index 0000000..029b974
--- /dev/null
+++ b/src/com/android/settings/bluetooth/LocalDeviceNameDialogFragment.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.bluetooth;
+
+import android.bluetooth.BluetoothAdapter;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.os.Bundle;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.LocalBluetoothAdapter;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+/** Provides a dialog for changing the advertised name of the local bluetooth adapter. */
+public class LocalDeviceNameDialogFragment extends BluetoothNameDialogFragment {
+    public static final String TAG = "LocalAdapterName";
+    private LocalBluetoothAdapter mLocalAdapter;
+
+    public static LocalDeviceNameDialogFragment newInstance() {
+        return new LocalDeviceNameDialogFragment();
+    }
+
+    private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED.equals(action) ||
+                    (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action) &&
+                            intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)
+                                    == BluetoothAdapter.STATE_ON)) {
+                updateDeviceName();
+            }
+        }
+    };
+
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        LocalBluetoothManager localManager = Utils.getLocalBtManager(getActivity());
+        mLocalAdapter = localManager.getBluetoothAdapter();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        IntentFilter filter = new IntentFilter();
+        filter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        filter.addAction(BluetoothAdapter.ACTION_LOCAL_NAME_CHANGED);
+        getActivity().registerReceiver(mReceiver, filter);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        getActivity().unregisterReceiver(mReceiver);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsProto.MetricsEvent.DIALOG_BLUETOOTH_RENAME;
+    }
+
+    @Override
+    protected int getDialogTitle() {
+        return R.string.bluetooth_rename_device;
+    }
+
+    @Override
+    protected String getDeviceName() {
+        if (mLocalAdapter != null && mLocalAdapter.isEnabled()) {
+            return mLocalAdapter.getName();
+        }
+        return null;
+    }
+
+    @Override
+    protected void setDeviceName(String deviceName) {
+        mLocalAdapter.setName(deviceName);
+    }
+}
diff --git a/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragment.java b/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragment.java
new file mode 100644
index 0000000..4e5acefe
--- /dev/null
+++ b/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragment.java
@@ -0,0 +1,82 @@
+/*
+ * 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.BluetoothDevice;
+import android.content.Context;
+import android.os.Bundle;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.R;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+/** Provides a dialog for changing the display name of a remote bluetooth device. */
+public class RemoteDeviceNameDialogFragment extends BluetoothNameDialogFragment {
+    public static final String TAG = "RemoteDeviceName";
+    private static final String KEY_CACHED_DEVICE_ADDRESS = "cached_device";
+
+    private CachedBluetoothDevice mDevice;
+
+    public static RemoteDeviceNameDialogFragment newInstance(CachedBluetoothDevice device) {
+        Bundle args = new Bundle(1);
+        args.putString(KEY_CACHED_DEVICE_ADDRESS, device.getDevice().getAddress());
+        RemoteDeviceNameDialogFragment fragment = new RemoteDeviceNameDialogFragment();
+        fragment.setArguments(args);
+        return fragment;
+    }
+
+    @VisibleForTesting
+    CachedBluetoothDevice getDevice(Context context) {
+        String deviceAddress = getArguments().getString(KEY_CACHED_DEVICE_ADDRESS);
+        LocalBluetoothManager manager = Utils.getLocalBtManager(context);
+        BluetoothDevice device = manager.getBluetoothAdapter().getRemoteDevice(deviceAddress);
+        return manager.getCachedDeviceManager().findDevice(device);
+    }
+
+    @Override
+    public void onAttach(Context context) {
+        super.onAttach(context);
+        mDevice = getDevice(context);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsProto.MetricsEvent.DIALOG_BLUETOOTH_PAIRED_DEVICE_RENAME;
+    }
+
+    @Override
+    protected int getDialogTitle() {
+        return R.string.bluetooth_device_name;
+    }
+
+    @Override
+    protected String getDeviceName() {
+        if (mDevice != null) {
+            return mDevice.getName();
+        }
+        return null;
+    }
+
+    @Override
+    protected void setDeviceName(String deviceName) {
+        if (mDevice != null) {
+            mDevice.setName(deviceName);
+        }
+    }
+}
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 8e795cb..35d7c28 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings.dashboard;
 
-import android.annotation.ColorInt;
 import android.app.Activity;
 import android.content.Context;
 import android.content.res.TypedArray;
@@ -40,12 +39,10 @@
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.R.id;
-import com.android.settings.SettingsActivity;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.dashboard.DashboardData.SuggestionConditionHeaderData;
 import com.android.settings.dashboard.conditional.Condition;
 import com.android.settings.dashboard.conditional.ConditionAdapter;
-import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
 import com.android.settings.dashboard.suggestions.SuggestionAdapter;
 import com.android.settings.dashboard.suggestions.SuggestionDismissController;
 import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
@@ -63,11 +60,12 @@
     public static final String TAG = "DashboardAdapter";
     private static final String STATE_SUGGESTION_LIST = "suggestion_list";
     private static final String STATE_CATEGORY_LIST = "category_list";
-    private static final String STATE_SUGGESTION_MODE = "suggestion_mode";
     private static final String STATE_SUGGESTIONS_SHOWN_LOGGED = "suggestions_shown_logged";
-    private static final int DONT_SET_BACKGROUND_ATTR = -1;
     private static final String STATE_SUGGESTION_CONDITION_MODE = "suggestion_condition_mode";
 
+    @VisibleForTesting
+    static final int SUGGESTION_CONDITION_HEADER_POSITION = 0;
+
     private final IconCache mCache;
     private final Context mContext;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -75,7 +73,6 @@
     private final SuggestionFeatureProvider mSuggestionFeatureProvider;
     private final ArrayList<String> mSuggestionsShownLogged;
     private boolean mFirstFrameDrawn;
-    private boolean mCombineSuggestionAndCondition;
     private RecyclerView mRecyclerView;
     private SuggestionParser mSuggestionParser;
     private SuggestionAdapter mSuggestionAdapter;
@@ -97,46 +94,20 @@
 
         @Override
         public void onClick(View v) {
-            if (mCombineSuggestionAndCondition) {
-                Condition condition = (Condition) v.getTag();
-                //TODO: get rid of setTag/getTag
-                mMetricsFeatureProvider.action(mContext,
+            Condition condition = (Condition) v.getTag();
+            //TODO: get rid of setTag/getTag
+            mMetricsFeatureProvider.action(mContext,
                     MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
                     condition.getMetricsConstant());
-                condition.onPrimaryClick();
-            } else {
-                Condition expandedCondition = mDashboardData.getExpandedCondition();
-
-                //TODO: get rid of setTag/getTag
-                if (v.getTag() == expandedCondition) {
-                    mMetricsFeatureProvider.action(mContext,
-                        MetricsEvent.ACTION_SETTINGS_CONDITION_CLICK,
-                        expandedCondition.getMetricsConstant());
-                    expandedCondition.onPrimaryClick();
-                } else {
-                    expandedCondition = (Condition) v.getTag();
-                    mMetricsFeatureProvider.action(mContext,
-                        MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
-                        expandedCondition.getMetricsConstant());
-
-                    updateExpandedCondition(expandedCondition);
-                }
-            }
+            condition.onPrimaryClick();
         }
     };
 
-    @Deprecated
-    public DashboardAdapter(Context context, Bundle savedInstanceState,
-        List<Condition> conditions) {
-        this(context, savedInstanceState, conditions, null, null);
-    }
-
     public DashboardAdapter(Context context, Bundle savedInstanceState,
             List<Condition> conditions, SuggestionParser suggestionParser,
             SuggestionDismissController.Callback callback) {
         List<Tile> suggestions = null;
         List<DashboardCategory> categories = null;
-        int suggestionMode = DashboardData.SUGGESTION_MODE_DEFAULT;
         int suggestionConditionMode = DashboardData.HEADER_MODE_DEFAULT;
 
         mContext = context;
@@ -144,7 +115,6 @@
         mMetricsFeatureProvider = factory.getMetricsFeatureProvider();
         mDashboardFeatureProvider = factory.getDashboardFeatureProvider(context);
         mSuggestionFeatureProvider = factory.getSuggestionFeatureProvider(context);
-        mCombineSuggestionAndCondition = mDashboardFeatureProvider.combineSuggestionAndCondition();
         mCache = new IconCache(context);
         mSuggestionParser = suggestionParser;
         mCallback = callback;
@@ -156,8 +126,6 @@
             categories = savedInstanceState.getParcelableArrayList(STATE_CATEGORY_LIST);
             suggestionConditionMode = savedInstanceState.getInt(
                 STATE_SUGGESTION_CONDITION_MODE, suggestionConditionMode);
-            suggestionMode = savedInstanceState.getInt(
-                    STATE_SUGGESTION_MODE, DashboardData.SUGGESTION_MODE_DEFAULT);
             mSuggestionsShownLogged = savedInstanceState.getStringArrayList(
                     STATE_SUGGESTIONS_SHOWN_LOGGED);
         } else {
@@ -168,8 +136,6 @@
                 .setConditions(conditions)
                 .setSuggestions(suggestions)
                 .setCategories(categories)
-                .setSuggestionMode(suggestionMode)
-                .setCombineSuggestionAndCondition(mCombineSuggestionAndCondition)
                 .setSuggestionConditionMode(suggestionConditionMode)
                 .build();
     }
@@ -211,24 +177,12 @@
                 .build();
         notifyDashboardDataChanged(prevData);
         List<Tile> shownSuggestions = null;
-        if (mCombineSuggestionAndCondition) {
-            final int mode = mDashboardData.getSuggestionConditionMode();
-            if (mode == DashboardData.HEADER_MODE_DEFAULT) {
-                shownSuggestions = suggestions.subList(0,
+        final int mode = mDashboardData.getSuggestionConditionMode();
+        if (mode == DashboardData.HEADER_MODE_DEFAULT) {
+            shownSuggestions = suggestions.subList(0,
                     Math.min(suggestions.size(), DashboardData.DEFAULT_SUGGESTION_COUNT));
-            } else if (mode != DashboardData.HEADER_MODE_COLLAPSED) {
-                shownSuggestions = suggestions;
-            }
-        } else {
-            switch (mDashboardData.getSuggestionMode()) {
-                case DashboardData.SUGGESTION_MODE_DEFAULT:
-                    shownSuggestions = suggestions.subList(0,
-                        Math.min(suggestions.size(), DashboardData.DEFAULT_SUGGESTION_COUNT));
-                    break;
-                case DashboardData.SUGGESTION_MODE_EXPANDED:
-                    shownSuggestions = suggestions;
-                    break;
-            }
+        } else if (mode != DashboardData.HEADER_MODE_COLLAPSED) {
+            shownSuggestions = suggestions;
         }
         if (shownSuggestions != null) {
             for (Tile suggestion : shownSuggestions) {
@@ -253,16 +207,9 @@
     public void setConditions(List<Condition> conditions) {
         final DashboardData prevData = mDashboardData;
         Log.d(TAG, "adapter setConditions called");
-        if (mCombineSuggestionAndCondition) {
-            mDashboardData = new DashboardData.Builder(prevData)
+        mDashboardData = new DashboardData.Builder(prevData)
                 .setConditions(conditions)
                 .build();
-        } else {
-            mDashboardData = new DashboardData.Builder(prevData)
-                .setConditions(conditions)
-                .setExpandedCondition(null)
-                .build();
-        }
         notifyDashboardDataChanged(prevData);
     }
 
@@ -305,9 +252,6 @@
     public void onBindViewHolder(DashboardItemHolder holder, int position) {
         final int type = mDashboardData.getItemTypeByPosition(position);
         switch (type) {
-            case R.layout.dashboard_header_spacer:
-                onBindHeaderSpacer(holder, position);
-                break;
             case R.layout.dashboard_category:
                 onBindCategory(holder,
                         (DashboardCategory) mDashboardData.getItemEntityByPosition(position));
@@ -318,44 +262,6 @@
                 holder.itemView.setTag(tile);
                 holder.itemView.setOnClickListener(mTileClickListener);
                 break;
-            case R.layout.suggestion_header:
-                onBindSuggestionHeader(holder, (DashboardData.SuggestionHeaderData)
-                        mDashboardData.getItemEntityByPosition(position));
-                break;
-            case R.layout.suggestion_tile:
-            case R.layout.suggestion_tile_card:
-                final Tile suggestion = (Tile) mDashboardData.getItemEntityByPosition(position);
-                final String suggestionId = mSuggestionFeatureProvider.getSuggestionIdentifier(
-                        mContext, suggestion);
-                // This is for cases when a suggestion is dismissed and the next one comes to view
-                if (!mSuggestionsShownLogged.contains(suggestionId)) {
-                    mMetricsFeatureProvider.action(
-                            mContext, MetricsEvent.ACTION_SHOW_SETTINGS_SUGGESTION, suggestionId);
-                    mSuggestionsShownLogged.add(suggestionId);
-                }
-                onBindTile(holder, suggestion);
-                View clickHandler = holder.itemView;
-                // If a view with @android:id/primary is defined, use that as the click handler
-                // instead.
-                final View primaryAction = holder.itemView.findViewById(android.R.id.primary);
-                if (primaryAction != null) {
-                    clickHandler = primaryAction;
-                    // set the item view to disabled to remove any touch effects
-                    holder.itemView.setEnabled(false);
-                }
-                clickHandler.setOnClickListener(v -> {
-                    mMetricsFeatureProvider.action(mContext,
-                            MetricsEvent.ACTION_SETTINGS_SUGGESTION, suggestionId);
-                    ((SettingsActivity) mContext).startSuggestion(suggestion.intent);
-                });
-                break;
-            case R.layout.condition_card:
-                final boolean isExpanded = mDashboardData.getItemEntityByPosition(position)
-                        == mDashboardData.getExpandedCondition();
-                ConditionAdapterUtils.bindViews(
-                        (Condition) mDashboardData.getItemEntityByPosition(position),
-                        holder, isExpanded, mConditionClickListener, v -> onExpandClick(v));
-                break;
             case R.layout.suggestion_condition_container:
                 onBindConditionAndSuggestion(
                     (SuggestionAndConditionContainerHolder) holder, position);
@@ -372,7 +278,8 @@
                    2. SuggestionCondition header - the header that shows the summary info for the
                       suggestion/condition that is currently hidden. It has the expand button to
                       expand the section. */
-                if (mDashboardData.getDisplayableSuggestionCount() > 0 && position == 1
+                if (mDashboardData.getDisplayableSuggestionCount() > 0
+                        && position == SUGGESTION_CONDITION_HEADER_POSITION
                         && mDashboardData.getSuggestionConditionMode()
                             != DashboardData.HEADER_MODE_COLLAPSED) {
                     onBindSuggestionHeader((SuggestionAndConditionHeaderHolder) holder);
@@ -390,7 +297,7 @@
                     mDashboardData = new DashboardData.Builder(prevData).setSuggestionConditionMode(
                         DashboardData.HEADER_MODE_COLLAPSED).build();
                     notifyDashboardDataChanged(prevData);
-                    mRecyclerView.scrollToPosition(1);
+                    mRecyclerView.scrollToPosition(SUGGESTION_CONDITION_HEADER_POSITION);
                 });
                 break;
         }
@@ -434,34 +341,12 @@
         mSuggestionsShownLogged.clear();
     }
 
-    // condition card is always expanded in new suggestion/condition UI.
-    // TODO: Remove when completely move to new suggestion/condition UI
-    @Deprecated
-    public void onExpandClick(View v) {
-        Condition expandedCondition = mDashboardData.getExpandedCondition();
-        if (v.getTag() == expandedCondition) {
-            mMetricsFeatureProvider.action(mContext,
-                    MetricsEvent.ACTION_SETTINGS_CONDITION_COLLAPSE,
-                    expandedCondition.getMetricsConstant());
-            expandedCondition = null;
-        } else {
-            expandedCondition = (Condition) v.getTag();
-            mMetricsFeatureProvider.action(mContext, MetricsEvent.ACTION_SETTINGS_CONDITION_EXPAND,
-                    expandedCondition.getMetricsConstant());
-        }
-
-        updateExpandedCondition(expandedCondition);
-    }
-
     public Object getItem(long itemId) {
         return mDashboardData.getItemEntityById(itemId);
     }
 
     public Tile getSuggestion(int position) {
-        if (mCombineSuggestionAndCondition) {
-            return mSuggestionAdapter.getSuggestion(position);
-        }
-        return (Tile) getItem(getItemId(position));
+        return mSuggestionAdapter.getSuggestion(position);
     }
 
     @VisibleForTesting
@@ -476,83 +361,6 @@
         }
     }
 
-    private void updateExpandedCondition(Condition condition) {
-        final DashboardData prevData = mDashboardData;
-        mDashboardData = new DashboardData.Builder(prevData)
-                .setExpandedCondition(condition)
-                .build();
-        notifyDashboardDataChanged(prevData);
-    }
-
-    private void onBindHeaderSpacer(DashboardItemHolder holder, int position) {
-        if (mDashboardData.size() > (position + 1)) {
-            // The spacer that goes underneath the search bar needs to match the
-            // background of the first real view. That view is either a condition,
-            // a suggestion, or the dashboard item.
-            //
-            // If it's a dashboard item, set null background so it uses the parent's
-            // background like the other views. Otherwise, match the colors.
-            int nextType = mDashboardData.getItemTypeByPosition(position + 1);
-            int colorAttr = nextType == R.layout.suggestion_header
-                    ? android.R.attr.colorSecondary
-                    : nextType == R.layout.condition_card
-                            ? android.R.attr.colorAccent
-                            : DONT_SET_BACKGROUND_ATTR;
-
-            if (colorAttr != DONT_SET_BACKGROUND_ATTR) {
-                TypedArray array = holder.itemView.getContext()
-                        .obtainStyledAttributes(new int[]{colorAttr});
-                @ColorInt int color = array.getColor(0, 0);
-                array.recycle();
-                holder.itemView.setBackgroundColor(color);
-            } else {
-                holder.itemView.setBackground(null);
-            }
-        }
-    }
-
-    @VisibleForTesting
-    void onBindSuggestionHeader(final DashboardItemHolder holder, DashboardData
-            .SuggestionHeaderData data) {
-        final boolean moreSuggestions = data.hasMoreSuggestions;
-        final int undisplayedSuggestionCount = data.undisplayedSuggestionCount;
-
-        holder.icon.setImageResource(moreSuggestions ? R.drawable.ic_expand_more
-                : R.drawable.ic_expand_less);
-        holder.title.setText(mContext.getString(R.string.suggestions_title, data.suggestionSize));
-        String summaryContentDescription;
-        if (moreSuggestions) {
-            summaryContentDescription = mContext.getResources().getQuantityString(
-                    R.plurals.settings_suggestion_header_summary_hidden_items,
-                    undisplayedSuggestionCount, undisplayedSuggestionCount);
-        } else {
-            summaryContentDescription = mContext.getString(R.string.condition_expand_hide);
-        }
-        holder.summary.setContentDescription(summaryContentDescription);
-
-        if (undisplayedSuggestionCount == 0) {
-            holder.summary.setText(null);
-        } else {
-            holder.summary.setText(
-                    mContext.getString(R.string.suggestions_summary, undisplayedSuggestionCount));
-        }
-        holder.itemView.setOnClickListener(v -> {
-            final int suggestionMode;
-            if (moreSuggestions) {
-                suggestionMode = DashboardData.SUGGESTION_MODE_EXPANDED;
-                logSuggestions();
-            } else {
-                suggestionMode = DashboardData.SUGGESTION_MODE_COLLAPSED;
-            }
-
-            DashboardData prevData = mDashboardData;
-            mDashboardData = new DashboardData.Builder(prevData)
-                    .setSuggestionMode(suggestionMode)
-                    .build();
-            notifyDashboardDataChanged(prevData);
-        });
-    }
-
     private void logSuggestions() {
         for (Tile suggestion : mDashboardData.getSuggestions()) {
             final String suggestionId = mSuggestionFeatureProvider.getSuggestionIdentifier(
@@ -577,7 +385,8 @@
         holder.itemView.setOnClickListener(null);
     }
 
-    private void onBindSuggestionConditionHeader(final SuggestionAndConditionHeaderHolder holder,
+    @VisibleForTesting
+    void onBindSuggestionConditionHeader(final SuggestionAndConditionHeaderHolder holder,
             SuggestionConditionHeaderData data) {
         final int curMode = mDashboardData.getSuggestionConditionMode();
         final int nextMode = data.hiddenSuggestionCount > 0 && data.conditionCount > 0
@@ -651,30 +460,31 @@
                 .setSuggestionConditionMode(nextMode).build();
             notifyDashboardDataChanged(prevData);
             if (wasCollapsed) {
-                mRecyclerView.scrollToPosition(1);
+                mRecyclerView.scrollToPosition(SUGGESTION_CONDITION_HEADER_POSITION);
             }
         });
     }
 
-    private void onBindConditionAndSuggestion(final SuggestionAndConditionContainerHolder holder,
+    @VisibleForTesting
+    void onBindConditionAndSuggestion(final SuggestionAndConditionContainerHolder holder,
             int position) {
-        RecyclerView.Adapter<DashboardItemHolder> adapter;
-        // If there is suggestions to show, it will be at position 2 (position 0 = header spacer,
-        // position 1 is suggestion header.
-        if (position == 2 && mDashboardData.getSuggestions() != null) {
+        // If there is suggestions to show, it will be at position 1
+        // position 0 is suggestion header.
+        if (position == (SUGGESTION_CONDITION_HEADER_POSITION + 1)
+                && mDashboardData.getSuggestions() != null) {
             mSuggestionAdapter = new SuggestionAdapter(mContext, (List<Tile>)
                 mDashboardData.getItemEntityByPosition(position), mSuggestionsShownLogged);
-            adapter = mSuggestionAdapter;
             mSuggestionDismissHandler = new SuggestionDismissController(mContext,
                 holder.data, mSuggestionParser, mCallback);
+            holder.data.setAdapter(mSuggestionAdapter);
         } else {
-            ConditionAdapterUtils.addDismiss(holder.data);
-            adapter = new ConditionAdapter(mContext,
+            ConditionAdapter adapter = new ConditionAdapter(mContext,
                 (List<Condition>) mDashboardData.getItemEntityByPosition(position),
                     mDashboardData.getSuggestionConditionMode());
+            adapter.addDismissHandling(holder.data);
+            holder.data.setAdapter(adapter);
         }
         holder.data.setLayoutManager(new LinearLayoutManager(mContext));
-        holder.data.setAdapter(adapter);
     }
 
     private void onBindTile(DashboardItemHolder holder, Tile tile) {
@@ -707,7 +517,6 @@
         if (categories != null) {
             outState.putParcelableArrayList(STATE_CATEGORY_LIST, new ArrayList<>(categories));
         }
-        outState.putInt(STATE_SUGGESTION_MODE, mDashboardData.getSuggestionMode());
         outState.putStringArrayList(STATE_SUGGESTIONS_SHOWN_LOGGED, mSuggestionsShownLogged);
         outState.putInt(STATE_SUGGESTION_CONDITION_MODE,
             mDashboardData.getSuggestionConditionMode());
diff --git a/src/com/android/settings/dashboard/DashboardData.java b/src/com/android/settings/dashboard/DashboardData.java
index 64e8af2..7528fb5 100644
--- a/src/com/android/settings/dashboard/DashboardData.java
+++ b/src/com/android/settings/dashboard/DashboardData.java
@@ -17,8 +17,6 @@
 
 import android.annotation.IntDef;
 import android.graphics.drawable.Icon;
-import android.support.annotation.Nullable;
-import android.support.annotation.VisibleForTesting;
 import android.support.v7.util.DiffUtil;
 import android.text.TextUtils;
 
@@ -31,7 +29,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * Description about data list used in the DashboardAdapter. In the data list each item can be
@@ -40,13 +37,6 @@
  * ItemsData has inner class Item, which represents the Item in data list.
  */
 public class DashboardData {
-    @Deprecated
-    public static final int SUGGESTION_MODE_DEFAULT = 0;
-    @Deprecated
-    public static final int SUGGESTION_MODE_COLLAPSED = 1;
-    @Deprecated
-    public static final int SUGGESTION_MODE_EXPANDED = 2;
-
     public static final int HEADER_MODE_DEFAULT = 0;
     public static final int HEADER_MODE_SUGGESTION_EXPANDED = 1;
     public static final int HEADER_MODE_FULLY_EXPANDED = 2;
@@ -60,32 +50,22 @@
     public static final int DEFAULT_SUGGESTION_COUNT = 2;
 
     // id namespace for different type of items.
-    private static final int NS_HEADER_SPACER = 0;
-    private static final int NS_SPACER = 1000;
+    private static final int NS_SPACER = 0;
     private static final int NS_ITEMS = 2000;
-    private static final int NS_CONDITION = 3000;
-    private static final int NS_SUGGESTION_CONDITION = 4000;
+    private static final int NS_SUGGESTION_CONDITION = 3000;
 
     private final List<Item> mItems;
     private final List<DashboardCategory> mCategories;
     private final List<Condition> mConditions;
     private final List<Tile> mSuggestions;
-    @Deprecated
-    private final int mSuggestionMode;
-    @Deprecated
-    private final Condition mExpandedCondition;
     private final @HeaderMode int mSuggestionConditionMode;
     private int mId;
-    private boolean mCombineSuggestionAndCondition;
 
     private DashboardData(Builder builder) {
         mCategories = builder.mCategories;
         mConditions = builder.mConditions;
         mSuggestions = builder.mSuggestions;
-        mSuggestionMode = builder.mSuggestionMode;
-        mExpandedCondition = builder.mExpandedCondition;
         mSuggestionConditionMode = builder.mSuggestionConditionMode;
-        mCombineSuggestionAndCondition = builder.mCombineSuggestionAndCondition;
 
         mItems = new ArrayList<>();
         mId = 0;
@@ -134,19 +114,10 @@
         return mSuggestions;
     }
 
-    public int getSuggestionMode() {
-        return mSuggestionMode;
-    }
-
     public int getSuggestionConditionMode() {
         return mSuggestionConditionMode;
     }
 
-    @Deprecated
-    public Condition getExpandedCondition() {
-        return mExpandedCondition;
-    }
-
     /**
      * Find the position of the object in mItems list, using the equals method to compare
      *
@@ -193,10 +164,10 @@
     /**
      * Get the count of suggestions to display
      *
-     * The displayable count mainly depends on the {@link #mSuggestionMode}
+     * The displayable count mainly depends on the {@link #mSuggestionConditionMode}
      * and the size of suggestions list.
      *
-     * When in default mode, displayable count couldn't larger than
+     * When in default mode, displayable count couldn't be larger than
      * {@link #DEFAULT_SUGGESTION_COUNT}.
      *
      * When in expanded mode, display all the suggestions.
@@ -205,33 +176,19 @@
      */
     public int getDisplayableSuggestionCount() {
         final int suggestionSize = sizeOf(mSuggestions);
-        if (mCombineSuggestionAndCondition) {
-            if (mSuggestionConditionMode == HEADER_MODE_COLLAPSED) {
-                return 0;
-            }
-            if (mSuggestionConditionMode == HEADER_MODE_DEFAULT) {
-                return Math.min(DEFAULT_SUGGESTION_COUNT, suggestionSize);
-            }
-            return suggestionSize;
+        if (mSuggestionConditionMode == HEADER_MODE_COLLAPSED) {
+            return 0;
         }
-        if (mSuggestionMode == SUGGESTION_MODE_DEFAULT) {
+        if (mSuggestionConditionMode == HEADER_MODE_DEFAULT) {
             return Math.min(DEFAULT_SUGGESTION_COUNT, suggestionSize);
         }
-        if (mSuggestionMode == SUGGESTION_MODE_EXPANDED) {
-            return suggestionSize;
-        }
-        return 0;
+        return suggestionSize;
     }
 
     public boolean hasMoreSuggestions() {
-        if (mCombineSuggestionAndCondition) {
-            return mSuggestionConditionMode == HEADER_MODE_COLLAPSED && mSuggestions.size() > 0
+        return mSuggestionConditionMode == HEADER_MODE_COLLAPSED && mSuggestions.size() > 0
                 || mSuggestionConditionMode == HEADER_MODE_DEFAULT
-                    && mSuggestions.size() > DEFAULT_SUGGESTION_COUNT;
-        }
-        return mSuggestionMode == SUGGESTION_MODE_COLLAPSED
-                || (mSuggestionMode == SUGGESTION_MODE_DEFAULT
-                && mSuggestions.size() > DEFAULT_SUGGESTION_COUNT);
+                && mSuggestions.size() > DEFAULT_SUGGESTION_COUNT;
     }
 
     private void resetCount() {
@@ -252,108 +209,62 @@
      */
     private void countItem(Object object, int type, boolean add, int nameSpace) {
         if (add) {
-            if (mCombineSuggestionAndCondition) {
-                mItems.add(new Item(object, type, mId + nameSpace));
-            } else {
-                mItems.add(new Item(object, type, mId + nameSpace, object == mExpandedCondition));
-            }
-        }
-        mId++;
-    }
-
-    /**
-     * A special count item method for just suggestions. Id is calculated using suggestion hash
-     * instead of the position of suggestion in list. This is a more stable id than countItem.
-     */
-    private void countSuggestion(Tile tile, boolean add) {
-        if (add) {
-            mItems.add(new Item(
-                    tile,
-                    tile.remoteViews != null
-                            ? R.layout.suggestion_tile_card
-                            : R.layout.suggestion_tile,
-                    Objects.hash(tile.title),
-                    false));
+            mItems.add(new Item(object, type, mId + nameSpace));
         }
         mId++;
     }
 
     /**
      * Build the mItems list using mConditions, mSuggestions, mCategories data
-     * and mIsShowingAll, mSuggestionMode flag.
+     * and mIsShowingAll, mSuggestionConditionMode flag.
      */
     private void buildItemsData() {
-        // add the view that goes under the search bar
-        countItem(null, R.layout.dashboard_header_spacer, true, NS_HEADER_SPACER);
-        resetCount();
         final boolean hasSuggestions = sizeOf(mSuggestions) > 0;
-        if (!mCombineSuggestionAndCondition) {
-            boolean hasConditions = false;
-            for (int i = 0; mConditions != null && i < mConditions.size(); i++) {
-                boolean shouldShow = mConditions.get(i).shouldShow();
-                hasConditions |= shouldShow;
-                countItem(mConditions.get(i), R.layout.condition_card, shouldShow, NS_CONDITION);
-            }
+        final List<Condition> conditions = getConditionsToShow(mConditions);
+        final boolean hasConditions = sizeOf(conditions) > 0;
 
-            resetCount();
-            countItem(null, R.layout.dashboard_spacer, hasConditions && hasSuggestions, NS_SPACER);
-            countItem(buildSuggestionHeaderData(), R.layout.suggestion_header, hasSuggestions,
-                NS_SPACER);
-
-            resetCount();
-            if (mSuggestions != null) {
-                int maxSuggestions = getDisplayableSuggestionCount();
-                for (int i = 0; i < mSuggestions.size(); i++) {
-                    countSuggestion(mSuggestions.get(i), i < maxSuggestions);
-                }
-            }
-        } else {
-            final List<Condition> conditions = getConditionsToShow(mConditions);
-            final boolean hasConditions = sizeOf(conditions) > 0;
-
-            final List<Tile> suggestions = getSuggestionsToShow(mSuggestions);
-            final int hiddenSuggestion =
+        final List<Tile> suggestions = getSuggestionsToShow(mSuggestions);
+        final int hiddenSuggestion =
                 hasSuggestions ? sizeOf(mSuggestions) - sizeOf(suggestions) : 0;
 
-            resetCount();
+        resetCount();
             /* Top suggestion/condition header. This will be present when there is any suggestion or
              * condition to show, except in the case that there is only conditions to show and the
              * mode is fully expanded. */
-            countItem(new SuggestionConditionHeaderData(conditions, hiddenSuggestion),
+        countItem(new SuggestionConditionHeaderData(conditions, hiddenSuggestion),
                 R.layout.suggestion_condition_header, hasSuggestions
-                    || hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED,
+                        || hasConditions && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED,
                 NS_SUGGESTION_CONDITION);
 
             /* Suggestion container. This is the card view that contains the list of suggestions.
              * This will be added whenever the suggestion list is not empty */
-            countItem(suggestions, R.layout.suggestion_condition_container, sizeOf(suggestions) > 0,
+        countItem(suggestions, R.layout.suggestion_condition_container, sizeOf(suggestions) > 0,
                 NS_SUGGESTION_CONDITION);
 
             /* Second suggestion/condition header. This will be added when there is at least one
              * suggestion or condition that is not currently displayed, and the user can expand the
               * section to view more items. */
-            countItem(new SuggestionConditionHeaderData(conditions, hiddenSuggestion),
+        countItem(new SuggestionConditionHeaderData(conditions, hiddenSuggestion),
                 R.layout.suggestion_condition_header,
                 mSuggestionConditionMode != HEADER_MODE_COLLAPSED
-                    && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED
-                    && (hiddenSuggestion > 0
+                        && mSuggestionConditionMode != HEADER_MODE_FULLY_EXPANDED
+                        && (hiddenSuggestion > 0
                         || hasConditions && hasSuggestions),
                 NS_SUGGESTION_CONDITION);
 
             /* Condition container. This is the card view that contains the list of conditions.
              * This will be added whenever the condition list is not empty */
-            countItem(conditions, R.layout.suggestion_condition_container,
+        countItem(conditions, R.layout.suggestion_condition_container,
                 hasConditions && mSuggestionConditionMode == HEADER_MODE_FULLY_EXPANDED,
                 NS_SUGGESTION_CONDITION);
 
             /* Suggestion/condition footer. This will be present when the section is fully expanded
              * or when there is no conditions and no hidden suggestions */
-            countItem(null, R.layout.suggestion_condition_footer,
+        countItem(null, R.layout.suggestion_condition_footer,
                 (hasConditions || hasSuggestions) &&
-                    mSuggestionConditionMode == HEADER_MODE_FULLY_EXPANDED
-                || hasSuggestions && !hasConditions && hiddenSuggestion == 0,
+                        mSuggestionConditionMode == HEADER_MODE_FULLY_EXPANDED
+                        || hasSuggestions && !hasConditions && hiddenSuggestion == 0,
                 NS_SUGGESTION_CONDITION);
-        }
 
         resetCount();
         for (int i = 0; mCategories != null && i < mCategories.size(); i++) {
@@ -371,21 +282,6 @@
         return list == null ? 0 : list.size();
     }
 
-    private SuggestionHeaderData buildSuggestionHeaderData() {
-        SuggestionHeaderData data;
-        if (mSuggestions == null) {
-            data = new SuggestionHeaderData();
-        } else {
-            final boolean hasMoreSuggestions = hasMoreSuggestions();
-            final int suggestionSize = mSuggestions.size();
-            final int undisplayedSuggestionCount = suggestionSize - getDisplayableSuggestionCount();
-            data = new SuggestionHeaderData(hasMoreSuggestions, suggestionSize,
-                    undisplayedSuggestionCount);
-        }
-
-        return data;
-    }
-
     private List<Condition> getConditionsToShow(List<Condition> conditions) {
         if (conditions == null) {
             return null;
@@ -415,20 +311,14 @@
     /**
      * Builder used to build the ItemsData
      * <p>
-     * {@link #mExpandedCondition}, {@link #mSuggestionConditionMode} and {@link #mSuggestionMode}
-     * have default value while others are not.
+     * {@link #mSuggestionConditionMode} have default value while others are not.
      */
     public static class Builder {
-        @Deprecated
-        private int mSuggestionMode = SUGGESTION_MODE_DEFAULT;
-        @Deprecated
-        private Condition mExpandedCondition = null;
         private @HeaderMode int mSuggestionConditionMode = HEADER_MODE_DEFAULT;
 
         private List<DashboardCategory> mCategories;
         private List<Condition> mConditions;
         private List<Tile> mSuggestions;
-        private boolean mCombineSuggestionAndCondition;
 
         public Builder() {
         }
@@ -437,10 +327,7 @@
             mCategories = dashboardData.mCategories;
             mConditions = dashboardData.mConditions;
             mSuggestions = dashboardData.mSuggestions;
-            mSuggestionMode = dashboardData.mSuggestionMode;
-            mExpandedCondition = dashboardData.mExpandedCondition;
             mSuggestionConditionMode = dashboardData.mSuggestionConditionMode;
-            mCombineSuggestionAndCondition = dashboardData.mCombineSuggestionAndCondition;
         }
 
         public Builder setCategories(List<DashboardCategory> categories) {
@@ -458,27 +345,11 @@
             return this;
         }
 
-        public Builder setSuggestionMode(int suggestionMode) {
-            this.mSuggestionMode = suggestionMode;
-            return this;
-        }
-
-        @Deprecated
-        public Builder setExpandedCondition(Condition expandedCondition) {
-            this.mExpandedCondition = expandedCondition;
-            return this;
-        }
-
         public Builder setSuggestionConditionMode(@HeaderMode int mode) {
             this.mSuggestionConditionMode = mode;
             return this;
         }
 
-        public Builder setCombineSuggestionAndCondition(boolean combine) {
-            this.mCombineSuggestionAndCondition = combine;
-            return this;
-        }
-
         public DashboardData build() {
             return new DashboardData(this);
         }
@@ -517,16 +388,6 @@
             return mOldItems.get(oldItemPosition).equals(mNewItems.get(newItemPosition));
         }
 
-        // not needed in combined UI
-        @Deprecated
-        @Nullable
-        @Override
-        public Object getChangePayload(int oldItemPosition, int newItemPosition) {
-            if (mOldItems.get(oldItemPosition).type == Item.TYPE_CONDITION_CARD) {
-                return "condition"; // return anything but null to mark the payload
-            }
-            return null;
-        }
     }
 
     /**
@@ -536,24 +397,17 @@
         // valid types in field type
         private static final int TYPE_DASHBOARD_CATEGORY = R.layout.dashboard_category;
         private static final int TYPE_DASHBOARD_TILE = R.layout.dashboard_tile;
-        @Deprecated
-        private static final int TYPE_SUGGESTION_HEADER = R.layout.suggestion_header;
-        @Deprecated
-        private static final int TYPE_SUGGESTION_TILE = R.layout.suggestion_tile;
         private static final int TYPE_SUGGESTION_CONDITION_CONTAINER =
             R.layout.suggestion_condition_container;
         private static final int TYPE_SUGGESTION_CONDITION_HEADER =
             R.layout.suggestion_condition_header;
-        @Deprecated
-        private static final int TYPE_CONDITION_CARD = R.layout.condition_card;
         private static final int TYPE_SUGGESTION_CONDITION_FOOTER =
                 R.layout.suggestion_condition_footer;
         private static final int TYPE_DASHBOARD_SPACER = R.layout.dashboard_spacer;
 
-        @IntDef({TYPE_DASHBOARD_CATEGORY, TYPE_DASHBOARD_TILE, TYPE_SUGGESTION_HEADER,
-                TYPE_SUGGESTION_TILE, TYPE_SUGGESTION_CONDITION_CONTAINER,
-                TYPE_SUGGESTION_CONDITION_HEADER, TYPE_CONDITION_CARD,
-                TYPE_SUGGESTION_CONDITION_FOOTER, TYPE_DASHBOARD_SPACER})
+        @IntDef({TYPE_DASHBOARD_CATEGORY, TYPE_DASHBOARD_TILE, TYPE_SUGGESTION_CONDITION_CONTAINER,
+                TYPE_SUGGESTION_CONDITION_HEADER, TYPE_SUGGESTION_CONDITION_FOOTER,
+                TYPE_DASHBOARD_SPACER})
         @Retention(RetentionPolicy.SOURCE)
         public @interface ItemTypes{}
 
@@ -575,23 +429,10 @@
          */
         public final int id;
 
-        /**
-         * To store whether the condition is expanded, useless when {@link #type} is not
-         * {@link #TYPE_CONDITION_CARD}
-         */
-        @Deprecated
-        public final boolean conditionExpanded;
-
-        @Deprecated
-        public Item(Object entity, @ItemTypes int type, int id, boolean conditionExpanded) {
+        public Item(Object entity, @ItemTypes int type, int id) {
             this.entity = entity;
             this.type = type;
             this.id = id;
-            this.conditionExpanded = conditionExpanded;
-        }
-
-        public Item(Object entity, @ItemTypes int type, int id) {
-            this(entity, type, id, false);
         }
 
         /**
@@ -626,12 +467,6 @@
                     // Only check title and summary for dashboard tile
                     return TextUtils.equals(localTile.title, targetTile.title)
                             && TextUtils.equals(localTile.summary, targetTile.summary);
-                case TYPE_CONDITION_CARD:
-                    // First check conditionExpanded for quick return
-                    if (conditionExpanded != targetItem.conditionExpanded) {
-                        return false;
-                    }
-                    // After that, go to default to do final check
                 default:
                     return entity == null ? targetItem.entity == null
                             : entity.equals(targetItem.entity);
@@ -640,46 +475,6 @@
     }
 
     /**
-     * This class contains the data needed to build the header. The data can also be
-     * used to check the diff in DiffUtil.Callback
-     */
-    public static class SuggestionHeaderData {
-        public final boolean hasMoreSuggestions;
-        public final int suggestionSize;
-        public final int undisplayedSuggestionCount;
-
-        public SuggestionHeaderData(boolean moreSuggestions, int suggestionSize, int
-                undisplayedSuggestionCount) {
-            this.hasMoreSuggestions = moreSuggestions;
-            this.suggestionSize = suggestionSize;
-            this.undisplayedSuggestionCount = undisplayedSuggestionCount;
-        }
-
-        public SuggestionHeaderData() {
-            hasMoreSuggestions = false;
-            suggestionSize = 0;
-            undisplayedSuggestionCount = 0;
-        }
-
-        @Override
-        public boolean equals(Object obj) {
-            if (this == obj) {
-                return true;
-            }
-
-            if (!(obj instanceof SuggestionHeaderData)) {
-                return false;
-            }
-
-            SuggestionHeaderData targetData = (SuggestionHeaderData) obj;
-
-            return hasMoreSuggestions == targetData.hasMoreSuggestions
-                    && suggestionSize == targetData.suggestionSize
-                    && undisplayedSuggestionCount == targetData.undisplayedSuggestionCount;
-        }
-    }
-
-    /**
      * This class contains the data needed to build the suggestion/condition header. The data can
      * also be used to check the diff in DiffUtil.Callback
      */
diff --git a/src/com/android/settings/dashboard/DashboardDecorator.java b/src/com/android/settings/dashboard/DashboardDecorator.java
index 9bcf39d..6466c0b 100644
--- a/src/com/android/settings/dashboard/DashboardDecorator.java
+++ b/src/com/android/settings/dashboard/DashboardDecorator.java
@@ -43,19 +43,14 @@
         for (int i = 1; i < childCount; i++) {
             final View child = parent.getChildAt(i);
             final ViewHolder holder = parent.getChildViewHolder(child);
-            if (holder.getItemViewType() == R.layout.dashboard_category) {
-                if (parent.getChildViewHolder(parent.getChildAt(i - 1)).getItemViewType()
-                        != R.layout.dashboard_tile) {
-                    continue;
-                }
-            } else if (holder.getItemViewType() != R.layout.condition_card) {
-                continue;
+            if (holder.getItemViewType() == R.layout.dashboard_category
+                    && parent.getChildViewHolder(parent.getChildAt(i - 1)).getItemViewType()
+                        == R.layout.dashboard_tile) {
+                int top = getChildTop(child);
+                mDivider.setBounds(child.getLeft(), top, child.getRight(),
+                        top + mDivider.getIntrinsicHeight());
+                mDivider.draw(c);
             }
-
-            int top = getChildTop(child);
-            mDivider.setBounds(child.getLeft(), top, child.getRight(),
-                    top + mDivider.getIntrinsicHeight());
-            mDivider.draw(c);
         }
     }
 
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProvider.java b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
index 939a5d6..15608a2 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProvider.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProvider.java
@@ -95,9 +95,4 @@
      */
     void openTileIntent(Activity activity, Tile tile);
 
-    /**
-     * Whether or not we should use new UI that combines the settings suggestions and conditions.
-     */
-    boolean combineSuggestionAndCondition();
-
 }
diff --git a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
index dcae322..88cf666 100644
--- a/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
+++ b/src/com/android/settings/dashboard/DashboardFeatureProviderImpl.java
@@ -206,11 +206,6 @@
         launchIntentOrSelectProfile(activity, tile, intent, MetricsEvent.DASHBOARD_SUMMARY);
     }
 
-    @Override
-    public boolean combineSuggestionAndCondition() {
-        return false;
-    }
-
     private void launchIntentOrSelectProfile(Activity activity, Tile tile, Intent intent,
             int sourceMetricCategory) {
         if (!isIntentResolvable(intent)) {
diff --git a/src/com/android/settings/dashboard/DashboardSummary.java b/src/com/android/settings/dashboard/DashboardSummary.java
index 9d2cc0d..809b83d 100644
--- a/src/com/android/settings/dashboard/DashboardSummary.java
+++ b/src/com/android/settings/dashboard/DashboardSummary.java
@@ -32,7 +32,6 @@
 import com.android.settings.R;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.dashboard.conditional.Condition;
-import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
 import com.android.settings.dashboard.conditional.ConditionManager;
 import com.android.settings.dashboard.conditional.ConditionManager.ConditionListener;
 import com.android.settings.dashboard.conditional.FocusRecyclerView;
@@ -75,7 +74,6 @@
     private DashboardFeatureProvider mDashboardFeatureProvider;
     private SuggestionFeatureProvider mSuggestionFeatureProvider;
     private boolean isOnCategoriesChangedCalled;
-    private SuggestionDismissController mSuggestionDismissHandler;
 
     @Override
     public int getMetricsCategory() {
@@ -198,11 +196,6 @@
         mAdapter = new DashboardAdapter(getContext(), bundle, mConditionManager.getConditions(),
             mSuggestionParser, this /* SuggestionDismissController.Callback */);
         mDashboard.setAdapter(mAdapter);
-        if (!mDashboardFeatureProvider.combineSuggestionAndCondition()) {
-            mSuggestionDismissHandler = new SuggestionDismissController(
-                getContext(), mDashboard, mSuggestionParser, this);
-            ConditionAdapterUtils.addDismiss(mDashboard);
-        }
         mDashboard.setItemAnimator(new DashboardItemAnimator());
         mSummaryLoader.setSummaryConsumer(mAdapter);
         if (DEBUG_TIMING) {
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapter.java b/src/com/android/settings/dashboard/conditional/ConditionAdapter.java
index 5827d14..4a7422f 100644
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapter.java
+++ b/src/com/android/settings/dashboard/conditional/ConditionAdapter.java
@@ -17,16 +17,23 @@
 
 import android.content.Context;
 import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.helper.ItemTouchHelper;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Button;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.settings.dashboard.DashboardAdapter;
 import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
 import com.android.settings.dashboard.DashboardData;
 import com.android.settings.dashboard.DashboardData.HeaderMode;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settingslib.WirelessUtils;
+
 import java.util.List;
 import java.util.Objects;
 
@@ -77,8 +84,7 @@
 
     @Override
     public void onBindViewHolder(DashboardItemHolder holder, int position) {
-        // TODO: merge methods from ConditionAdapterUtils into this class
-        ConditionAdapterUtils.bindViews(mConditions.get(position), holder,
+        bindViews(mConditions.get(position), holder,
             position == mConditions.size() - 1, mConditionClickListener);
     }
 
@@ -100,4 +106,78 @@
         return 0;
     }
 
+    public void addDismissHandling(final RecyclerView recyclerView) {
+        ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
+                ItemTouchHelper.START | ItemTouchHelper.END) {
+            @Override
+            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
+                    RecyclerView.ViewHolder target) {
+                return true;
+            }
+
+            @Override
+            public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
+                return viewHolder.getItemViewType() == R.layout.condition_tile_new_ui
+                        ? super.getSwipeDirs(recyclerView, viewHolder) : 0;
+            }
+
+            @Override
+            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
+                Object item = getItem(viewHolder.getItemId());
+                ((Condition) item).silence();
+            }
+        };
+        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
+        itemTouchHelper.attachToRecyclerView(recyclerView);
+    }
+
+    private void bindViews(final Condition condition,
+            DashboardAdapter.DashboardItemHolder view, boolean isLastItem,
+            View.OnClickListener onClickListener) {
+        if (condition instanceof AirplaneModeCondition) {
+            Log.d(TAG, "Airplane mode condition has been bound with "
+                    + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
+                    WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
+        }
+        View card = view.itemView.findViewById(R.id.content);
+        card.setTag(condition);
+        card.setOnClickListener(onClickListener);
+        view.icon.setImageIcon(condition.getIcon());
+        view.title.setText(condition.getTitle());
+
+        CharSequence[] actions = condition.getActions();
+        final boolean hasButtons = actions.length > 0;
+        setViewVisibility(view.itemView, R.id.buttonBar, hasButtons);
+
+        view.summary.setText(condition.getSummary());
+        for (int i = 0; i < 2; i++) {
+            Button button = (Button) view.itemView.findViewById(i == 0
+                    ? R.id.first_action : R.id.second_action);
+            if (actions.length > i) {
+                button.setVisibility(View.VISIBLE);
+                button.setText(actions[i]);
+                final int index = i;
+                button.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        Context context = v.getContext();
+                        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+                                .action(context, MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
+                                        condition.getMetricsConstant());
+                        condition.onActionClick(index);
+                    }
+                });
+            } else {
+                button.setVisibility(View.GONE);
+            }
+        }
+        setViewVisibility(view.itemView, R.id.divider, !isLastItem);
+    }
+
+    private void setViewVisibility(View containerView, int viewId, boolean visible) {
+        View view = containerView.findViewById(viewId);
+        if (view != null) {
+            view.setVisibility(visible ? View.VISIBLE : View.GONE);
+        }
+    }
 }
diff --git a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java b/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
deleted file mode 100644
index 0e25723..0000000
--- a/src/com/android/settings/dashboard/conditional/ConditionAdapterUtils.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.dashboard.conditional;
-
-import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-import android.support.v7.widget.helper.ItemTouchHelper;
-import android.util.Log;
-import android.view.View;
-import android.widget.Button;
-import android.widget.ImageView;
-
-import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardAdapter;
-import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.WirelessUtils;
-
-public class ConditionAdapterUtils {
-    private static final String TAG = "ConditionAdapterUtils";
-
-    public static void addDismiss(final RecyclerView recyclerView) {
-        ItemTouchHelper.SimpleCallback callback = new ItemTouchHelper.SimpleCallback(0,
-                ItemTouchHelper.START | ItemTouchHelper.END) {
-            @Override
-            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
-                    RecyclerView.ViewHolder target) {
-                return true;
-            }
-
-            @Override
-            public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
-                return viewHolder.getItemViewType() == R.layout.condition_card
-                    || viewHolder.getItemViewType() == R.layout.condition_tile_new_ui
-                        ? super.getSwipeDirs(recyclerView, viewHolder) : 0;
-            }
-
-            @Override
-            public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
-                Object item;
-                if (viewHolder.getItemViewType() == R.layout.condition_card) {
-                    DashboardAdapter adapter = (DashboardAdapter) recyclerView.getAdapter();
-                    item = adapter.getItem(viewHolder.getItemId());
-                } else {
-                    ConditionAdapter adapter = (ConditionAdapter) recyclerView.getAdapter();
-                    item = adapter.getItem(viewHolder.getItemId());
-                }
-                ((Condition) item).silence();
-            }
-        };
-        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(callback);
-        itemTouchHelper.attachToRecyclerView(recyclerView);
-    }
-
-    @Deprecated
-    public static void bindViews(final Condition condition,
-            DashboardAdapter.DashboardItemHolder view, boolean isExpanded,
-            View.OnClickListener onClickListener, View.OnClickListener onExpandListener) {
-        if (condition instanceof AirplaneModeCondition) {
-            Log.d(TAG, "Airplane mode condition has been bound with "
-                    + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
-                    WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
-        }
-        View card = view.itemView.findViewById(R.id.content);
-        card.setTag(condition);
-        card.setOnClickListener(onClickListener);
-        view.icon.setImageIcon(condition.getIcon());
-        view.title.setText(condition.getTitle());
-        final View collapsedGroup = view.itemView.findViewById(R.id.collapsed_group);
-        collapsedGroup.setTag(condition);
-        final ImageView expand = (ImageView) view.itemView.findViewById(R.id.expand_indicator);
-        expand.setImageResource(isExpanded ? R.drawable.ic_expand_less : R.drawable.ic_expand_more);
-        expand.setContentDescription(expand.getContext().getString(isExpanded
-                ? R.string.condition_expand_hide : R.string.condition_expand_show));
-        collapsedGroup.setOnClickListener(onExpandListener);
-
-        View detailGroup = view.itemView.findViewById(R.id.detail_group);
-        CharSequence[] actions = condition.getActions();
-        if (isExpanded != (detailGroup.getVisibility() == View.VISIBLE)) {
-            if (isExpanded) {
-                final boolean hasButtons = actions.length > 0;
-                setViewVisibility(detailGroup, R.id.divider, hasButtons);
-                setViewVisibility(detailGroup, R.id.buttonBar, hasButtons);
-
-                detailGroup.setVisibility(View.VISIBLE);
-            } else {
-                detailGroup.setVisibility(View.GONE);
-            }
-        }
-
-        if (isExpanded) {
-            view.summary.setText(condition.getSummary());
-            for (int i = 0; i < 2; i++) {
-                Button button = (Button) detailGroup.findViewById(i == 0
-                        ? R.id.first_action : R.id.second_action);
-                if (actions.length > i) {
-                    button.setVisibility(View.VISIBLE);
-                    button.setText(actions[i]);
-                    final int index = i;
-                    button.setOnClickListener(new View.OnClickListener() {
-                        @Override
-                        public void onClick(View v) {
-                            Context context = v.getContext();
-                            FeatureFactory.getFactory(context).getMetricsFeatureProvider()
-                                    .action(context, MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
-                                            condition.getMetricsConstant());
-                            condition.onActionClick(index);
-                        }
-                    });
-                } else {
-                    button.setVisibility(View.GONE);
-                }
-            }
-        }
-    }
-
-    public static void bindViews(final Condition condition,
-            DashboardAdapter.DashboardItemHolder view, boolean isLastItem,
-            View.OnClickListener onClickListener) {
-        if (condition instanceof AirplaneModeCondition) {
-            Log.d(TAG, "Airplane mode condition has been bound with "
-                + "isActive=" + condition.isActive() + ". Airplane mode is currently " +
-                WirelessUtils.isAirplaneModeOn(condition.mManager.getContext()));
-        }
-        View card = view.itemView.findViewById(R.id.content);
-        card.setTag(condition);
-        card.setOnClickListener(onClickListener);
-        view.icon.setImageIcon(condition.getIcon());
-        view.title.setText(condition.getTitle());
-
-        CharSequence[] actions = condition.getActions();
-        final boolean hasButtons = actions.length > 0;
-        setViewVisibility(view.itemView, R.id.buttonBar, hasButtons);
-
-        view.summary.setText(condition.getSummary());
-        for (int i = 0; i < 2; i++) {
-            Button button = (Button) view.itemView.findViewById(i == 0
-                ? R.id.first_action : R.id.second_action);
-            if (actions.length > i) {
-                button.setVisibility(View.VISIBLE);
-                button.setText(actions[i]);
-                final int index = i;
-                button.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-                        Context context = v.getContext();
-                        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
-                            .action(context, MetricsEvent.ACTION_SETTINGS_CONDITION_BUTTON,
-                                condition.getMetricsConstant());
-                        condition.onActionClick(index);
-                    }
-                });
-            } else {
-                button.setVisibility(View.GONE);
-            }
-        }
-        setViewVisibility(view.itemView, R.id.divider, !isLastItem);
-    }
-
-    private static void setViewVisibility(View containerView, int viewId, boolean visible) {
-        View view = containerView.findViewById(viewId);
-        if (view != null) {
-            view.setVisibility(visible ? View.VISIBLE : View.GONE);
-        }
-    }
-}
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
index 3335950..3a6582f 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionAdapter.java
@@ -23,7 +23,6 @@
 import android.view.ViewGroup;
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
-import com.android.settings.R.layout;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.dashboard.DashboardAdapter.DashboardItemHolder;
@@ -114,7 +113,10 @@
 
     @Override
     public int getItemViewType(int position) {
-        return layout.suggestion_tile_new_ui;
+        Tile suggestion = getSuggestion(position);
+        return suggestion.remoteViews != null
+                ? R.layout.suggestion_tile_card
+                : R.layout.suggestion_tile_new_ui;
     }
 
     @Override
diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java b/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
index f0a65f6..618b6df 100644
--- a/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
+++ b/src/com/android/settings/dashboard/suggestions/SuggestionDismissController.java
@@ -66,8 +66,7 @@
     @Override
     public int getSwipeDirs(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {
         final int layoutId = viewHolder.getItemViewType();
-        if (layoutId == R.layout.suggestion_tile
-                || layoutId == R.layout.suggestion_tile_new_ui
+        if (layoutId == R.layout.suggestion_tile_new_ui
                 || layoutId == R.layout.suggestion_tile_card) {
             // Only return swipe direction for suggestion tiles. All other types are not swipeable.
             return super.getSwipeDirs(recyclerView, viewHolder);
diff --git a/src/com/android/settings/display/WallpaperPreferenceController.java b/src/com/android/settings/display/WallpaperPreferenceController.java
index aa29afc..eb91052 100644
--- a/src/com/android/settings/display/WallpaperPreferenceController.java
+++ b/src/com/android/settings/display/WallpaperPreferenceController.java
@@ -25,7 +25,7 @@
 
 public class WallpaperPreferenceController extends PreferenceController {
 
-    private static final String KEY_WALLPAPER = "wallpaper";
+    public static final String KEY_WALLPAPER = "wallpaper";
 
     public WallpaperPreferenceController(Context context) {
         super(context);
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
index df7bf3c..7c34f2d 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollBase.java
@@ -18,6 +18,7 @@
 
 import android.annotation.Nullable;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.os.UserHandle;
@@ -27,6 +28,7 @@
 import android.widget.TextView;
 
 import com.android.settings.R;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.core.InstrumentedActivity;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.setupwizardlib.GlifLayout;
@@ -57,6 +59,12 @@
     }
 
     @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    @Override
     protected void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
         outState.putByteArray(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
index 14c5ae2..11a84bc 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollEnrolling.java
@@ -36,6 +36,7 @@
 import android.view.View;
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
+import android.widget.Button;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -98,6 +99,10 @@
         mRepeatMessage = (TextView) findViewById(R.id.repeat_message);
         mErrorText = (TextView) findViewById(R.id.error_text);
         mProgressBar = (ProgressBar) findViewById(R.id.fingerprint_progress_bar);
+
+        Button skipButton = findViewById(R.id.skip_button);
+        skipButton.setOnClickListener(this);
+
         final LayerDrawable fingerprintDrawable = (LayerDrawable) mProgressBar.getBackground();
         mIconAnimationDrawable = (AnimatedVectorDrawable)
                 fingerprintDrawable.findDrawableByLayerId(R.id.fingerprint_animation);
@@ -211,6 +216,18 @@
         super.onBackPressed();
     }
 
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.skip_button:
+                setResult(RESULT_SKIP);
+                finish();
+                break;
+            default:
+                super.onClick(v);
+        }
+    }
+
     private void animateProgress(int progress) {
         if (mProgressAnim != null) {
             mProgressAnim.cancel();
diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
index e34a90b..1902a52 100644
--- a/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/FingerprintEnrollFindSensor.java
@@ -22,6 +22,7 @@
 import android.os.UserHandle;
 import android.support.annotation.Nullable;
 import android.view.View;
+import android.widget.Button;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
@@ -48,6 +49,9 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(getContentView());
+        Button skipButton = findViewById(R.id.skip_button);
+        skipButton.setOnClickListener(this);
+
         setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
         if (savedInstanceState != null) {
             mLaunchedConfirmLock = savedInstanceState.getBoolean(EXTRA_KEY_LAUNCHED_CONFIRM);
@@ -132,9 +136,15 @@
     }
 
     @Override
-    protected void onNextButtonClick() {
-        mNextClicked = true;
-        proceedToEnrolling(true /* cancelEnrollment */);
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.skip_button:
+                setResult(RESULT_SKIP);
+                finish();
+                break;
+            default:
+                super.onClick(v);
+        }
     }
 
     private void proceedToEnrolling(boolean cancelEnrollment) {
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java
index 5d0152c..fbbf033 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollEnrolling.java
@@ -17,7 +17,6 @@
 package com.android.settings.fingerprint;
 
 import android.content.Intent;
-import android.content.res.Resources;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.SetupWizardUtils;
@@ -32,12 +31,6 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
     public int getMetricsCategory() {
         return MetricsEvent.FINGERPRINT_ENROLLING_SETUP;
     }
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
index d7a4a73..f62b701 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFindSensor.java
@@ -17,7 +17,6 @@
 package com.android.settings.fingerprint;
 
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.UserHandle;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -44,12 +43,6 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
     public int getMetricsCategory() {
         return MetricsEvent.FINGERPRINT_FIND_SENSOR_SETUP;
     }
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
index 43ff097..e81203f 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollFinish.java
@@ -17,10 +17,8 @@
 package com.android.settings.fingerprint;
 
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.UserHandle;
-import android.view.View;
-import android.widget.TextView;
+import android.widget.Button;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
@@ -41,14 +39,10 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
     protected void initViews() {
         super.initViews();
+        Button nextButton = findViewById(R.id.next_button);
+        nextButton.setText(R.string.next_label);
     }
 
     @Override
diff --git a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
index e668812..8f93bca 100644
--- a/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/fingerprint/SetupFingerprintEnrollIntroduction.java
@@ -19,7 +19,6 @@
 import android.app.KeyguardManager;
 import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
-import android.content.res.Resources;
 import android.os.UserHandle;
 import android.widget.Button;
 import android.widget.TextView;
@@ -53,12 +52,6 @@
     }
 
     @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
-    @Override
     protected void initViews() {
         super.initViews();
 
diff --git a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
index bdd2413..079ab29 100644
--- a/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceController.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
+import android.os.BatteryManager;
 import android.support.annotation.VisibleForTesting;
 import android.support.v14.preference.PreferenceFragment;
 import android.support.v7.preference.PreferenceScreen;
@@ -46,7 +47,7 @@
     @VisibleForTesting
     BatteryMeterView mBatteryMeterView;
     @VisibleForTesting
-    TextView mTimeText;
+    TextView mBatteryPercentText;
     @VisibleForTesting
     TextView mSummary1;
     @VisibleForTesting
@@ -75,16 +76,11 @@
         mBatteryLayoutPref = (LayoutPreference) screen.findPreference(KEY_BATTERY_HEADER);
         mBatteryMeterView = (BatteryMeterView) mBatteryLayoutPref
                 .findViewById(R.id.battery_header_icon);
-        mTimeText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
+        mBatteryPercentText = mBatteryLayoutPref.findViewById(R.id.battery_percent);
         mSummary1 = mBatteryLayoutPref.findViewById(R.id.summary1);
         mSummary2 = mBatteryLayoutPref.findViewById(R.id.summary2);
 
-        Intent batteryBroadcast = mContext.registerReceiver(null,
-                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
-        final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
-
-        mBatteryMeterView.setBatteryLevel(batteryLevel);
-        mTimeText.setText(Utils.formatPercentage(batteryLevel));
+        quickUpdateHeaderPreference();
     }
 
     @Override
@@ -106,7 +102,7 @@
     }
 
     public void updateHeaderPreference(BatteryInfo info) {
-        mTimeText.setText(Utils.formatPercentage(info.batteryLevel));
+        mBatteryPercentText.setText(Utils.formatPercentage(info.batteryLevel));
         if (info.remainingLabel == null) {
             mSummary1.setText(info.statusLabel);
         } else {
@@ -119,4 +115,21 @@
         mBatteryMeterView.setBatteryLevel(info.batteryLevel);
         mBatteryMeterView.setCharging(!info.discharging);
     }
+
+    public void quickUpdateHeaderPreference() {
+        Intent batteryBroadcast = mContext.registerReceiver(null,
+                new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+        final int batteryLevel = Utils.getBatteryLevel(batteryBroadcast);
+        final boolean discharging =
+                batteryBroadcast.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) == 0;
+
+        // Set battery level and charging status
+        mBatteryMeterView.setBatteryLevel(batteryLevel);
+        mBatteryMeterView.setCharging(!discharging);
+        mBatteryPercentText.setText(Utils.formatPercentage(batteryLevel));
+
+        // clear all the summaries
+        mSummary1.setText("");
+        mSummary2.setText("");
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryInfo.java b/src/com/android/settings/fuelgauge/BatteryInfo.java
index e9863b3..5eada88 100644
--- a/src/com/android/settings/fuelgauge/BatteryInfo.java
+++ b/src/com/android/settings/fuelgauge/BatteryInfo.java
@@ -227,8 +227,9 @@
                 final String chargeStatusLabel = resources.getString(
                         R.string.battery_info_status_charging_lower);
                 info.remainingLabel = null;
-                info.chargeLabel = resources.getString(
-                        R.string.power_charging, info.batteryPercentString, chargeStatusLabel);
+                info.chargeLabel = info.batteryLevel == 100 ? info.batteryPercentString :
+                        resources.getString(R.string.power_charging, info.batteryPercentString,
+                                chargeStatusLabel);
             }
         }
         return info;
diff --git a/src/com/android/settings/fuelgauge/BatteryMeterView.java b/src/com/android/settings/fuelgauge/BatteryMeterView.java
index 09f7c7a..353b3d7 100644
--- a/src/com/android/settings/fuelgauge/BatteryMeterView.java
+++ b/src/com/android/settings/fuelgauge/BatteryMeterView.java
@@ -78,6 +78,11 @@
 
     public void setCharging(boolean charging) {
         mDrawable.setCharging(charging);
+        postInvalidate();
+    }
+
+    public boolean getCharging() {
+        return mDrawable.getCharging();
     }
 
     public static class BatteryMeterDrawable extends BatteryMeterDrawableBase {
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 4abc1b1..7dc7800 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -144,7 +144,8 @@
                         && sipper.drainType != BatterySipper.DrainType.SCREEN
                         && sipper.drainType != BatterySipper.DrainType.UNACCOUNTED
                         && sipper.drainType != BatterySipper.DrainType.BLUETOOTH
-                        && sipper.drainType != BatterySipper.DrainType.WIFI) {
+                        && sipper.drainType != BatterySipper.DrainType.WIFI
+                        && sipper.drainType != BatterySipper.DrainType.IDLE) {
                     // Don't add it if it is overcounted, unaccounted, wifi, bluetooth, or screen
                     proportionalSmearPowerMah += sipper.totalPowerMah;
                 }
@@ -330,7 +331,8 @@
     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 convertUsToMs(timer.getTotalTimeLocked(convertMsToUs(rawRealtimeMs),
+                            BatteryStats.STATS_SINCE_CHARGED));
         }
 
         return 0;
diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
index fc83bed..3100e95 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
@@ -319,7 +319,8 @@
 
         return usageType == UsageType.CELL
                 || usageType == UsageType.BLUETOOTH
-                || usageType == UsageType.WIFI;
+                || usageType == UsageType.WIFI
+                || usageType == UsageType.APP;
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
index e4ae053..dc52e1a 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java
@@ -46,6 +46,7 @@
 import android.view.View.OnClickListener;
 import android.view.View.OnLongClickListener;
 import android.widget.TextView;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.internal.os.BatterySipper;
 import com.android.internal.os.BatterySipper.DrainType;
@@ -69,6 +70,7 @@
 import com.android.settings.fuelgauge.anomaly.AnomalySummaryPreferenceController;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
+
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -574,31 +576,8 @@
                 if (((int) (percentOfTotal + .5)) < 1) {
                     continue;
                 }
-                if (sipper.drainType == BatterySipper.DrainType.OVERCOUNTED) {
-                    // Don't show over-counted unless it is at least 2/3 the size of
-                    // the largest real entry, and its percent of total is more significant
-                    if (sipper.totalPowerMah < ((mStatsHelper.getMaxRealPower() * 2) / 3)) {
-                        continue;
-                    }
-                    if (percentOfTotal < 10) {
-                        continue;
-                    }
-                    if ("user".equals(Build.TYPE)) {
-                        continue;
-                    }
-                }
-                if (sipper.drainType == BatterySipper.DrainType.UNACCOUNTED) {
-                    // Don't show over-counted unless it is at least 1/2 the size of
-                    // the largest real entry, and its percent of total is more significant
-                    if (sipper.totalPowerMah < (mStatsHelper.getMaxRealPower() / 2)) {
-                        continue;
-                    }
-                    if (percentOfTotal < 5) {
-                        continue;
-                    }
-                    if ("user".equals(Build.TYPE)) {
-                        continue;
-                    }
+                if (shouldHideSipper(sipper)) {
+                    continue;
                 }
                 final UserHandle userHandle = new UserHandle(UserHandle.getUserId(sipper.getUid()));
                 final BatteryEntry entry = new BatteryEntry(getActivity(), mHandler, mUm, sipper);
@@ -649,6 +628,13 @@
     }
 
     @VisibleForTesting
+    boolean shouldHideSipper(BatterySipper sipper) {
+        // Don't show over-counted and unaccounted in any condition
+        return sipper.drainType == BatterySipper.DrainType.OVERCOUNTED
+                || sipper.drainType == BatterySipper.DrainType.UNACCOUNTED;
+    }
+
+    @VisibleForTesting
     void refreshAnomalyIcon() {
         for (int i = 0, size = mAnomalySparseArray.size(); i < size; i++) {
             final String key = extractKeyFromUid(mAnomalySparseArray.keyAt(i));
@@ -862,6 +848,12 @@
         performBatteryHeaderClick();
     }
 
+    @Override
+    protected void restartBatteryStatsLoader() {
+        super.restartBatteryStatsLoader();
+        mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
+    }
+
     private static class SummaryProvider implements SummaryLoader.SummaryProvider {
         private final Context mContext;
         private final SummaryLoader mLoader;
diff --git a/src/com/android/settings/fuelgauge/anomaly/Anomaly.java b/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
index 746bd7f..2a4282a 100644
--- a/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
+++ b/src/com/android/settings/fuelgauge/anomaly/Anomaly.java
@@ -45,10 +45,12 @@
 
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({AnomalyActionType.FORCE_STOP,
-            AnomalyActionType.BACKGROUND_CHECK})
+            AnomalyActionType.BACKGROUND_CHECK,
+            AnomalyActionType.LOCATION_CHECK})
     public @interface AnomalyActionType {
         int FORCE_STOP = 0;
         int BACKGROUND_CHECK = 1;
+        int LOCATION_CHECK = 2;
     }
 
     @AnomalyType
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java
index 2d0030d..452cc35 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragment.java
@@ -38,7 +38,8 @@
 
     @VisibleForTesting
     Anomaly mAnomaly;
-    private AnomalyUtils mAnomalyUtils;
+    @VisibleForTesting
+    AnomalyUtils mAnomalyUtils;
 
     /**
      * Listener to give the control back to target fragment
@@ -68,6 +69,11 @@
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+        initAnomalyUtils();
+    }
+
+    @VisibleForTesting
+    void initAnomalyUtils() {
         mAnomalyUtils = AnomalyUtils.getInstance(getContext());
     }
 
@@ -114,6 +120,14 @@
                         .setPositiveButton(R.string.dialog_background_check_ok, this)
                         .setNegativeButton(R.string.dlg_cancel, null)
                         .create();
+            case Anomaly.AnomalyActionType.LOCATION_CHECK:
+                return new AlertDialog.Builder(context)
+                        .setTitle(R.string.dialog_location_title)
+                        .setMessage(getString(R.string.dialog_location_message,
+                                mAnomaly.displayName))
+                        .setPositiveButton(R.string.dialog_location_ok, this)
+                        .setNegativeButton(R.string.dlg_cancel, null)
+                        .create();
             default:
                 throw new IllegalArgumentException("unknown type " + mAnomaly.type);
         }
diff --git a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
index de9f7aa..9d0e1d0 100644
--- a/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
+++ b/src/com/android/settings/fuelgauge/anomaly/AnomalyUtils.java
@@ -22,6 +22,7 @@
 import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
 import com.android.settings.fuelgauge.anomaly.action.BackgroundCheckAction;
 import com.android.settings.fuelgauge.anomaly.action.ForceStopAction;
+import com.android.settings.fuelgauge.anomaly.action.LocationCheckAction;
 import com.android.settings.fuelgauge.anomaly.checker.AnomalyDetector;
 import com.android.settings.fuelgauge.anomaly.checker.BluetoothScanAnomalyDetector;
 import com.android.settings.fuelgauge.anomaly.checker.WakeLockAnomalyDetector;
@@ -57,8 +58,9 @@
             case Anomaly.AnomalyType.WAKE_LOCK:
                 return new ForceStopAction(mContext);
             case Anomaly.AnomalyType.WAKEUP_ALARM:
-            case Anomaly.AnomalyType.BLUETOOTH_SCAN:
                 return new BackgroundCheckAction(mContext);
+            case Anomaly.AnomalyType.BLUETOOTH_SCAN:
+                return new LocationCheckAction(mContext);
             default:
                 return null;
         }
diff --git a/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java b/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java
index 3344eb6..87212e7 100644
--- a/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java
+++ b/src/com/android/settings/fuelgauge/anomaly/action/AnomalyAction.java
@@ -16,26 +16,47 @@
 
 package com.android.settings.fuelgauge.anomaly.action;
 
+import android.content.Context;
+import android.util.Pair;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.fuelgauge.anomaly.Anomaly;
+import com.android.settings.overlay.FeatureFactory;
 
 /**
- * Interface for anomaly action, which is triggered if we need to handle the anomaly
+ * Abstract class for anomaly action, which is triggered if we need to handle the anomaly
  */
-public interface AnomalyAction {
+public abstract class AnomalyAction {
+    protected Context mContext;
+    protected int mActionMetricKey;
+
+    private MetricsFeatureProvider mMetricsFeatureProvider;
+
+    public AnomalyAction(Context context) {
+        mContext = context;
+        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+    }
+
     /**
      * handle the action when user clicks positive button
-     * @param anomaly about the app that we need to handle
-     * @param metricsKey key for the page that invokes the action
      *
+     * @param anomaly    about the app that we need to handle
+     * @param contextMetricsKey key for the page that invokes the action
      * @see com.android.internal.logging.nano.MetricsProto
      */
-    void handlePositiveAction(Anomaly anomaly, int metricsKey);
+    public void handlePositiveAction(Anomaly anomaly, int contextMetricsKey) {
+        mMetricsFeatureProvider.action(mContext, mActionMetricKey, anomaly.packageName,
+                Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, contextMetricsKey));
+    }
 
     /**
      * Check whether the action is active for {@code anomaly}
+     *
      * @param anomaly about the app that we need to handle
      * @return {@code true} if action is active, otherwise return {@code false}
      */
-    boolean isActionActive(Anomaly anomaly);
-    int getActionType();
+    public abstract boolean isActionActive(Anomaly anomaly);
+
+    public abstract int getActionType();
 }
diff --git a/src/com/android/settings/fuelgauge/anomaly/action/BackgroundCheckAction.java b/src/com/android/settings/fuelgauge/anomaly/action/BackgroundCheckAction.java
index 16fd0df..799bddc 100644
--- a/src/com/android/settings/fuelgauge/anomaly/action/BackgroundCheckAction.java
+++ b/src/com/android/settings/fuelgauge/anomaly/action/BackgroundCheckAction.java
@@ -19,28 +19,26 @@
 import android.app.AppOpsManager;
 import android.content.Context;
 
-import com.android.settings.core.instrumentation.MetricsFeatureProvider;
+import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.fuelgauge.anomaly.Anomaly;
-import com.android.settings.overlay.FeatureFactory;
 
 /**
  * Background check action for anomaly app, which means to stop app running in the background
  */
-public class BackgroundCheckAction implements AnomalyAction {
+public class BackgroundCheckAction extends AnomalyAction {
 
-    private Context mContext;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
     private AppOpsManager mAppOpsManager;
 
     public BackgroundCheckAction(Context context) {
-        mContext = context;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        super(context);
         mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
+        mActionMetricKey = MetricsProto.MetricsEvent.ACTION_APP_BACKGROUND_CHECK;
     }
 
     @Override
-    public void handlePositiveAction(Anomaly anomaly, int metricsKey) {
-        // TODO(b/37681923): add metric log here if possible
+    public void handlePositiveAction(Anomaly anomaly, int contextMetricsKey) {
+        super.handlePositiveAction(anomaly, contextMetricsKey);
+
         mAppOpsManager.setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, anomaly.uid, anomaly.packageName,
                 AppOpsManager.MODE_IGNORED);
     }
diff --git a/src/com/android/settings/fuelgauge/anomaly/action/ForceStopAction.java b/src/com/android/settings/fuelgauge/anomaly/action/ForceStopAction.java
index 557b2a9..fb7306a 100644
--- a/src/com/android/settings/fuelgauge/anomaly/action/ForceStopAction.java
+++ b/src/com/android/settings/fuelgauge/anomaly/action/ForceStopAction.java
@@ -21,43 +21,32 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.util.Log;
-import android.util.Pair;
 
 import com.android.internal.logging.nano.MetricsProto;
-import com.android.settings.core.instrumentation.MetricsFeatureProvider;
 import com.android.settings.fuelgauge.anomaly.Anomaly;
-import com.android.settings.overlay.FeatureFactory;
-
-import java.util.List;
 
 /**
  * Force stop action for anomaly app, which means to stop the app which causes anomaly
  */
-public class ForceStopAction implements AnomalyAction {
+public class ForceStopAction extends AnomalyAction {
     private static final String TAG = "ForceStopAction";
 
-    private Context mContext;
-    private MetricsFeatureProvider mMetricsFeatureProvider;
     private ActivityManager mActivityManager;
     private PackageManager mPackageManager;
 
     public ForceStopAction(Context context) {
-        mContext = context;
-        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
+        super(context);
         mActivityManager = (ActivityManager) context.getSystemService(
                 Context.ACTIVITY_SERVICE);
         mPackageManager = context.getPackageManager();
+        mActionMetricKey = MetricsProto.MetricsEvent.ACTION_APP_FORCE_STOP;
     }
 
     @Override
-    public void handlePositiveAction(Anomaly anomaly, int metricsKey) {
-        final String packageName = anomaly.packageName;
-        // force stop the package
-        mMetricsFeatureProvider.action(mContext,
-                MetricsProto.MetricsEvent.ACTION_APP_FORCE_STOP, packageName,
-                Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey));
+    public void handlePositiveAction(Anomaly anomaly, int contextMetricsKey) {
+        super.handlePositiveAction(anomaly, contextMetricsKey);
 
-        mActivityManager.forceStopPackage(packageName);
+        mActivityManager.forceStopPackage(anomaly.packageName);
     }
 
     @Override
diff --git a/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckAction.java b/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckAction.java
new file mode 100644
index 0000000..6779828
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckAction.java
@@ -0,0 +1,59 @@
+/*
+ * 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.action;
+
+import android.content.Context;
+import android.content.pm.permission.RuntimePermissionPresenter;
+import android.support.v4.content.PermissionChecker;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.fuelgauge.anomaly.Anomaly;
+
+/**
+ * Location action for anomaly app, which means to turn off location permission for this app
+ */
+public class LocationCheckAction extends AnomalyAction {
+
+    private static final String TAG = "LocationCheckAction";
+    private static final String LOCATION_PERMISSION = "android.permission-group.LOCATION";
+
+    private final RuntimePermissionPresenter mRuntimePermissionPresenter;
+
+    public LocationCheckAction(Context context) {
+        super(context);
+        mRuntimePermissionPresenter = RuntimePermissionPresenter.getInstance(context);
+        mActionMetricKey = MetricsProto.MetricsEvent.ACTION_APP_LOCATION_CHECK;
+    }
+
+    @Override
+    public void handlePositiveAction(Anomaly anomaly, int contextMetricsKey) {
+        super.handlePositiveAction(anomaly, contextMetricsKey);
+        mRuntimePermissionPresenter.revokeRuntimePermission(anomaly.packageName,
+                LOCATION_PERMISSION);
+    }
+
+    @Override
+    public boolean isActionActive(Anomaly anomaly) {
+        return PermissionChecker.checkPermission(mContext, LOCATION_PERMISSION, -1, anomaly.uid,
+                anomaly.packageName) == PermissionChecker.PERMISSION_GRANTED;
+    }
+
+    @Override
+    public int getActionType() {
+        return Anomaly.AnomalyActionType.LOCATION_CHECK;
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java b/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
index 619386e..4281743 100644
--- a/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
+++ b/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetector.java
@@ -48,15 +48,17 @@
     private Context mContext;
 
     public BluetoothScanAnomalyDetector(Context context) {
-        this(context, new AnomalyDetectionPolicy(context));
+        this(context, new AnomalyDetectionPolicy(context),
+                AnomalyUtils.getInstance(context).getAnomalyAction(
+                        Anomaly.AnomalyType.BLUETOOTH_SCAN));
     }
 
     @VisibleForTesting
-    BluetoothScanAnomalyDetector(Context context, AnomalyDetectionPolicy policy) {
+    BluetoothScanAnomalyDetector(Context context, AnomalyDetectionPolicy policy,
+            AnomalyAction anomalyAction) {
         mContext = context;
         mBatteryUtils = BatteryUtils.getInstance(context);
-        mAnomalyAction = AnomalyUtils.getInstance(context).getAnomalyAction(
-                Anomaly.AnomalyType.BLUETOOTH_SCAN);
+        mAnomalyAction = anomalyAction;
         mBluetoothScanningThreshold = policy.bluetoothScanThreshold;
     }
 
diff --git a/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java b/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
index aadfa0c..55686e0 100644
--- a/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
+++ b/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetector.java
@@ -70,11 +70,12 @@
             String targetPackageName) {
         final List<BatterySipper> batterySippers = batteryStatsHelper.getUsageList();
         final List<Anomaly> anomalies = new ArrayList<>();
-        final long totalRunningHours = mBatteryUtils.calculateRunningTimeBasedOnStatsType(
-                batteryStatsHelper, BatteryStats.STATS_SINCE_CHARGED) / DateUtils.HOUR_IN_MILLIS;
+        final double totalRunningHours = mBatteryUtils.calculateRunningTimeBasedOnStatsType(
+                batteryStatsHelper, BatteryStats.STATS_SINCE_CHARGED)
+                / (double) DateUtils.HOUR_IN_MILLIS;
         final int targetUid = mBatteryUtils.getPackageUid(targetPackageName);
 
-        if (totalRunningHours != 0) {
+        if (totalRunningHours >= 1) {
             for (int i = 0, size = batterySippers.size(); i < size; i++) {
                 final BatterySipper sipper = batterySippers.get(i);
                 final BatteryStats.Uid uid = sipper.uidObj;
diff --git a/src/com/android/settings/gestures/AssistGestureFeatureProvider.java b/src/com/android/settings/gestures/AssistGestureFeatureProvider.java
index 8902393..447562d 100644
--- a/src/com/android/settings/gestures/AssistGestureFeatureProvider.java
+++ b/src/com/android/settings/gestures/AssistGestureFeatureProvider.java
@@ -32,9 +32,6 @@
     /** Returns true if the sensor is available. */
     boolean isSensorAvailable(Context context);
 
-    /** Returns the resource */
-    int getPreferenceResourceId();
-
     /** Returns a list of additional preference controllers */
     List<PreferenceController> getControllers(Context context, Lifecycle lifecycle);
 
diff --git a/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java b/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java
index a2579ac..4509862 100644
--- a/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java
+++ b/src/com/android/settings/gestures/AssistGestureFeatureProviderImpl.java
@@ -38,11 +38,6 @@
     }
 
     @Override
-    public int getPreferenceResourceId() {
-        return R.xml.assist_gesture_settings;
-    }
-
-    @Override
     public List<PreferenceController> getControllers(Context context, Lifecycle lifecycle) {
         return new ArrayList<>();
     }
diff --git a/src/com/android/settings/gestures/AssistGesturePreferenceController.java b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
index 3230804..8bf660b 100644
--- a/src/com/android/settings/gestures/AssistGesturePreferenceController.java
+++ b/src/com/android/settings/gestures/AssistGesturePreferenceController.java
@@ -17,50 +17,58 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
-import android.net.Uri;
 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.applications.assist.AssistSettingObserver;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.R;
 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;
-
 public class AssistGesturePreferenceController extends GesturePreferenceController
-        implements OnPause, OnResume {
+        implements OnResume {
 
     private static final String PREF_KEY_VIDEO = "gesture_assist_video";
     private final String mAssistGesturePrefKey;
 
     private final AssistGestureFeatureProvider mFeatureProvider;
-    private final SettingObserver mSettingObserver;
     private boolean mWasAvailable;
 
     private PreferenceScreen mScreen;
     private Preference mPreference;
 
-    public AssistGesturePreferenceController(Context context, Lifecycle lifecycle, String key) {
+    @VisibleForTesting
+    boolean mAssistOnly;
+
+    public AssistGesturePreferenceController(Context context, Lifecycle lifecycle, String key,
+            boolean assistOnly) {
         super(context, lifecycle);
         mFeatureProvider = FeatureFactory.getFactory(context).getAssistGestureFeatureProvider();
-        mSettingObserver = new SettingObserver();
         mWasAvailable = isAvailable();
         mAssistGesturePrefKey = key;
+        mAssistOnly = assistOnly;
     }
 
     @Override
     public boolean isAvailable() {
-        return mFeatureProvider.isSupported(mContext);
+        if (mAssistOnly) {
+            return mFeatureProvider.isSupported(mContext);
+        } else {
+            return mFeatureProvider.isSensorAvailable(mContext);
+        }
     }
 
     @Override
     public void displayPreference(PreferenceScreen screen) {
         mScreen = screen;
         mPreference = screen.findPreference(getPreferenceKey());
+        if (!mFeatureProvider.isSupported(mContext)) {
+            mScreen.removePreference(mPreference);
+            return;
+        }
         // Call super last or AbstractPreferenceController might remove the preference from the
         // screen (if !isAvailable()) before we can save a reference to it.
         super.displayPreference(screen);
@@ -68,7 +76,14 @@
 
     @Override
     public void onResume() {
-        mSettingObserver.register(mContext.getContentResolver(), true /* register */);
+        // This check must be done in case the user disables Assistant while still on the settings
+        // page. This check is slightly different than isAvailable() in some cases due to this
+        // setting being in multiple places that require different behavior
+        if (mScreen != null && !mFeatureProvider.isSupported(mContext)) {
+            mScreen.removePreference(mPreference);
+            mWasAvailable = false;
+            return;
+        }
         if (mWasAvailable != isAvailable()) {
             // Only update the preference visibility if the availability has changed -- otherwise
             // the preference may be incorrectly added to screens with collapsed sections.
@@ -77,17 +92,12 @@
         }
     }
 
-    @Override
-    public void onPause() {
-        mSettingObserver.register(mContext.getContentResolver(), false /* register */);
-    }
-
     private void updatePreference() {
         if (mPreference == null) {
             return;
         }
 
-        if (isAvailable()) {
+        if (mFeatureProvider.isSupported(mContext)) {
             if (mScreen.findPreference(getPreferenceKey()) == null) {
                 mScreen.addPreference(mPreference);
             }
@@ -97,10 +107,33 @@
     }
 
     @Override
+    public void updateState(Preference preference) {
+        boolean isEnabled = isSwitchPrefEnabled() && mFeatureProvider.isSupported(mContext);
+
+        if (!mAssistOnly) {
+            boolean assistGestureSilenceEnabled = Settings.Secure.getInt(
+                    mContext.getContentResolver(),
+                    Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED, 1) != 0;
+            isEnabled = isEnabled || assistGestureSilenceEnabled;
+        }
+
+        if (preference != null) {
+            if (preference instanceof TwoStatePreference) {
+                ((TwoStatePreference) preference).setChecked(isSwitchPrefEnabled());
+            } else {
+                preference.setSummary(isEnabled
+                        ? R.string.gesture_setting_on
+                        : R.string.gesture_setting_off);
+            }
+        }
+    }
+
+    @Override
     public boolean onPreferenceChange(Preference preference, Object newValue) {
         final boolean enabled = (boolean) newValue;
         Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.ASSIST_GESTURE_ENABLED, enabled ? 1 : 0);
+        updateState(preference);
         return true;
     }
 
@@ -120,23 +153,4 @@
                 Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
         return assistGestureEnabled != 0;
     }
-
-    class SettingObserver extends AssistSettingObserver {
-
-        private final Uri ASSIST_GESTURE_ENABLED_URI =
-                Settings.Secure.getUriFor(Settings.Secure.ASSIST_GESTURE_ENABLED);
-
-        @Override
-        protected List<Uri> getSettingUris() {
-            return Arrays.asList(ASSIST_GESTURE_ENABLED_URI);
-        }
-
-        @Override
-        public void onSettingChange() {
-            if (mWasAvailable != isAvailable()) {
-                updatePreference();
-                mWasAvailable = isAvailable();
-            }
-        }
-    }
 }
diff --git a/src/com/android/settings/gestures/AssistGestureSettings.java b/src/com/android/settings/gestures/AssistGestureSettings.java
index 93d3a39..dd0a991 100644
--- a/src/com/android/settings/gestures/AssistGestureSettings.java
+++ b/src/com/android/settings/gestures/AssistGestureSettings.java
@@ -49,8 +49,7 @@
 
     @Override
     protected int getPreferenceScreenResId() {
-        return FeatureFactory.getFactory(getContext())
-                .getAssistGestureFeatureProvider().getPreferenceResourceId();
+        return R.xml.assist_gesture_settings;
     }
 
     @Override
@@ -61,7 +60,8 @@
     private static List<PreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<PreferenceController> controllers = new ArrayList<>();
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST,
+                false /* assistOnly */));
         controllers.addAll(FeatureFactory.getFactory(context).getAssistGestureFeatureProvider()
                 .getControllers(context, lifecycle));
 
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 8bba103..70375b6 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -18,6 +18,7 @@
 
 import android.app.Activity;
 import android.content.ComponentName;
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.os.UserHandle;
@@ -137,7 +138,8 @@
 
         controllers.add(gameControllerPreferenceController);
         // Gestures
-        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST));
+        controllers.add(new AssistGesturePreferenceController(context, lifecycle, KEY_ASSIST,
+                false /* assistOnly */));
         controllers.add(new SwipeToNotificationPreferenceController(context, lifecycle,
                 KEY_SWIPE_DOWN));
         controllers.add(new DoubleTwistPreferenceController(context, lifecycle, KEY_DOUBLE_TWIST));
@@ -172,16 +174,28 @@
 
         @Override
         public void setListening(boolean listening) {
+            final ContentResolver contentResolver = mContext.getContentResolver();
             if (listening) {
-                if (mFeatureProvider.isSupported(mContext)) {
-                    final int assistGestureEnabled = Settings.Secure.getInt(
-                        mContext.getContentResolver(), Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
-                    mSummaryLoader.setSummary(this, mContext.getString(assistGestureEnabled == 0
-                        ? R.string.language_input_gesture_summary_off
-                        : R.string.language_input_gesture_summary_on_with_assist));
+                if (mFeatureProvider.isSensorAvailable(mContext)) {
+                    final boolean assistGestureEnabled = Settings.Secure.getInt(
+                            contentResolver, Settings.Secure.ASSIST_GESTURE_ENABLED, 1) != 0;
+                    final boolean assistGestureSilenceEnabled = Settings.Secure.getInt(
+                            contentResolver, Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED,
+                            1) != 0;
+                    String summary;
+                    if (mFeatureProvider.isSupported(mContext) && assistGestureEnabled) {
+                        summary = mContext.getString(
+                                R.string.language_input_gesture_summary_on_with_assist);
+                    } else if (assistGestureSilenceEnabled) {
+                        summary = mContext.getString(
+                                R.string.language_input_gesture_summary_on_non_assist);
+                    } else {
+                        summary = mContext.getString(R.string.language_input_gesture_summary_off);
+                    }
+                    mSummaryLoader.setSummary(this, summary);
                 } else {
                     final String flattenComponent = Settings.Secure.getString(
-                        mContext.getContentResolver(), Settings.Secure.DEFAULT_INPUT_METHOD);
+                            contentResolver, Settings.Secure.DEFAULT_INPUT_METHOD);
                     if (!TextUtils.isEmpty(flattenComponent)) {
                         final PackageManager packageManage = mContext.getPackageManager();
                         final String pkg = ComponentName.unflattenFromString(flattenComponent)
diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java
index b269062..93c14c7 100644
--- a/src/com/android/settings/notification/RedactionInterstitial.java
+++ b/src/com/android/settings/notification/RedactionInterstitial.java
@@ -23,6 +23,7 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -41,6 +42,7 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.SetupRedactionInterstitial;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.Utils;
 import com.android.settingslib.RestrictedLockUtils;
 
@@ -54,6 +56,12 @@
     }
 
     @Override
+    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
+    @Override
     protected boolean isValidFragment(String fragmentName) {
         return RedactionInterstitialFragment.class.getName().equals(fragmentName);
     }
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index b6f2387..b646360 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -28,6 +28,7 @@
 import android.app.admin.PasswordMetrics;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources.Theme;
 import android.graphics.Insets;
 import android.os.Bundle;
 import android.os.Handler;
@@ -61,6 +62,7 @@
 import com.android.settings.EncryptionInterstitial;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.Utils;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
@@ -88,6 +90,12 @@
         return modIntent;
     }
 
+    @Override
+    protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
     public static class IntentBuilder {
 
         private final Intent mIntent;
@@ -241,7 +249,7 @@
                     R.string.lockpassword_choose_your_password_header_for_fingerprint,
                     R.string.lockpassword_choose_your_pin_header,
                     R.string.lockpassword_choose_your_pin_header_for_fingerprint,
-                    R.string.lockpassword_continue_label),
+                    R.string.next_label),
 
             NeedToConfirm(
                     R.string.lockpassword_confirm_your_password_header,
@@ -255,7 +263,7 @@
                     R.string.lockpassword_confirm_passwords_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
                     R.string.lockpassword_confirm_pins_dont_match,
-                    R.string.lockpassword_continue_label);
+                    R.string.next_label);
 
             Stage(int hintInAlpha, int hintInAlphaForFingerprint,
                     int hintInNumeric, int hintInNumericForFingerprint, int nextButtonText) {
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index 1ae2af2..d1964b4 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -20,6 +20,7 @@
 import android.app.Fragment;
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources.Theme;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.KeyEvent;
@@ -40,6 +41,7 @@
 import com.android.settings.EncryptionInterstitial;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.Utils;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.notification.RedactionInterstitial;
@@ -80,6 +82,12 @@
         return modIntent;
     }
 
+    @Override
+    protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
+        resid = SetupWizardUtils.getTheme(getIntent());
+        super.onApplyThemeResource(theme, resid, first);
+    }
+
     public static class IntentBuilder {
         private final Intent mIntent;
 
@@ -305,8 +313,8 @@
          * The states of the right button.
          */
         enum RightButtonMode {
-            Continue(R.string.lockpattern_continue_button_text, true),
-            ContinueDisabled(R.string.lockpattern_continue_button_text, false),
+            Continue(R.string.next_label, true),
+            ContinueDisabled(R.string.next_label, false),
             Confirm(R.string.lockpattern_confirm_button_text, true),
             ConfirmDisabled(R.string.lockpattern_confirm_button_text, false),
             Ok(android.R.string.ok, true);
diff --git a/src/com/android/settings/password/SetupChooseLockPassword.java b/src/com/android/settings/password/SetupChooseLockPassword.java
index b8ded5e..f23ab6d 100644
--- a/src/com/android/settings/password/SetupChooseLockPassword.java
+++ b/src/com/android/settings/password/SetupChooseLockPassword.java
@@ -20,7 +20,6 @@
 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;
@@ -30,7 +29,6 @@
 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;
@@ -69,12 +67,6 @@
         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 {
 
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 7cb5afb..b1e3d0d 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -19,10 +19,8 @@
 import android.app.Fragment;
 import android.content.Context;
 import android.content.Intent;
-import android.content.res.Resources;
 
 import com.android.settings.SetupRedactionInterstitial;
-import com.android.settings.SetupWizardUtils;
 
 /**
  * Setup Wizard's version of ChooseLockPattern screen. It inherits the logic and basic structure
@@ -48,12 +46,6 @@
         return SetupChooseLockPatternFragment.class;
     }
 
-    @Override
-    protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
-        resid = SetupWizardUtils.getTheme(getIntent());
-        super.onApplyThemeResource(theme, resid, first);
-    }
-
     public static class SetupChooseLockPatternFragment extends ChooseLockPatternFragment {
 
         @Override
diff --git a/src/com/android/settings/search/CursorToSearchResultConverter.java b/src/com/android/settings/search/CursorToSearchResultConverter.java
index 26b46ff..ce64de9 100644
--- a/src/com/android/settings/search/CursorToSearchResultConverter.java
+++ b/src/com/android/settings/search/CursorToSearchResultConverter.java
@@ -113,6 +113,9 @@
                 case ResultPayload.PayloadType.INLINE_SWITCH:
                     return ResultPayloadUtils.unmarshall(marshalledPayload,
                             InlineSwitchPayload.CREATOR);
+                case ResultPayload.PayloadType.INLINE_LIST:
+                    return ResultPayloadUtils.unmarshall(marshalledPayload,
+                            InlineListPayload.CREATOR);
             }
         } catch (BadParcelableException e) {
             Log.w(TAG, "Error creating parcelable: " + e);
diff --git a/src/com/android/settings/search/DatabaseIndexingManager.java b/src/com/android/settings/search/DatabaseIndexingManager.java
index c681912..1fbe055 100644
--- a/src/com/android/settings/search/DatabaseIndexingManager.java
+++ b/src/com/android/settings/search/DatabaseIndexingManager.java
@@ -39,11 +39,14 @@
 import android.text.TextUtils;
 import android.util.AttributeSet;
 import android.util.Log;
+import android.util.Pair;
 import android.util.Xml;
 
+import com.android.internal.logging.nano.MetricsProto;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.PreferenceController;
 
+import com.android.settings.overlay.FeatureFactory;
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
@@ -115,6 +118,9 @@
 public class DatabaseIndexingManager {
     private static final String LOG_TAG = "DatabaseIndexingManager";
 
+    private static final String METRICS_ACTION_SETTINGS_ASYNC_INDEX =
+            "search_asynchronous_indexing";
+
     public static final String FIELD_NAME_SEARCH_INDEX_DATA_PROVIDER =
             "SEARCH_INDEX_DATA_PROVIDER";
 
@@ -156,8 +162,7 @@
      * Only the first indexing for the default language gets static search results - subsequent
      * calls will only gather non-indexable keys.
      */
-    @VisibleForTesting
-    void performIndexing() {
+    public void performIndexing() {
         final Intent intent = new Intent(SearchIndexablesContract.PROVIDER_INTERFACE);
         final List<ResolveInfo> list =
                 mContext.getPackageManager().queryIntentContentProviders(intent, 0);
@@ -1262,6 +1267,7 @@
 
         @VisibleForTesting
         IndexingCallback mCallback;
+        private long mIndexStartTime;
 
         public IndexingTask(IndexingCallback callback) {
             mCallback = callback;
@@ -1269,6 +1275,7 @@
 
         @Override
         protected void onPreExecute() {
+            mIndexStartTime = System.currentTimeMillis();
             mIsIndexingComplete.set(false);
         }
 
@@ -1280,6 +1287,10 @@
 
         @Override
         protected void onPostExecute(Void aVoid) {
+            int indexingTime = (int) (System.currentTimeMillis() - mIndexStartTime);
+            FeatureFactory.getFactory(mContext).getMetricsFeatureProvider()
+                    .histogram(mContext, METRICS_ACTION_SETTINGS_ASYNC_INDEX, indexingTime);
+
             mIsIndexingComplete.set(true);
             if (mCallback != null) {
                 mCallback.onIndexingFinished();
diff --git a/src/com/android/settings/search/DatabaseResultLoader.java b/src/com/android/settings/search/DatabaseResultLoader.java
index 26bfd52..73b383b 100644
--- a/src/com/android/settings/search/DatabaseResultLoader.java
+++ b/src/com/android/settings/search/DatabaseResultLoader.java
@@ -20,8 +20,8 @@
 import android.content.Context;
 import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
+import android.support.annotation.VisibleForTesting;
 
-import android.text.TextUtils;
 import com.android.settings.dashboard.SiteMapManager;
 import com.android.settings.utils.AsyncLoader;
 
@@ -97,7 +97,8 @@
      */
     public static final int[] BASE_RANKS = {1, 3, 7, 9};
 
-    private final String mQueryText;
+    @VisibleForTesting
+    final String mQueryText;
     private final Context mContext;
     private final CursorToSearchResultConverter mConverter;
     private final SiteMapManager mSiteMapManager;
@@ -106,7 +107,7 @@
         super(context);
         mSiteMapManager = mapManager;
         mContext = context;
-        mQueryText = cleanQuery(queryText);
+        mQueryText = queryText;
         mConverter = new CursorToSearchResultConverter(context);
     }
 
@@ -137,18 +138,6 @@
     }
 
     /**
-     * A generic method to make the query suitable for searching the database.
-     *
-     * @return the cleaned query string
-     */
-    private static String cleanQuery(String query) {
-        if (TextUtils.isEmpty(query)) {
-            return null;
-        }
-        return query.trim();
-    }
-
-    /**
      * Creates and executes the query which matches prefixes of the first word of the given columns.
      *
      * @param matchColumns The columns to match on
diff --git a/src/com/android/settings/search/HeaderDecorator.java b/src/com/android/settings/search/HeaderDecorator.java
deleted file mode 100644
index bff344b..0000000
--- a/src/com/android/settings/search/HeaderDecorator.java
+++ /dev/null
@@ -1,43 +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.search;
-
-import android.content.Context;
-import android.content.res.TypedArray;
-import android.graphics.Rect;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-import com.android.settings.R;
-
-public class HeaderDecorator extends RecyclerView.ItemDecoration {
-    @Override
-    public void getItemOffsets(Rect outRect, View view, RecyclerView parent,
-            RecyclerView.State state) {
-        super.getItemOffsets(outRect, view, parent, state);
-        if (parent.getChildAdapterPosition(view) > 0) {
-            return;
-        }
-
-        Context context = view.getContext();
-        TypedArray ta = context.obtainStyledAttributes(new int[]{android.R.attr.actionBarSize});
-        outRect.top = ta.getDimensionPixelSize(0, 0);
-        ta.recycle();
-
-        outRect.top += 2 * context.getResources().getDimensionPixelSize(R.dimen.search_bar_margin);
-    }
-}
diff --git a/src/com/android/settings/search/InlineListPayload.java b/src/com/android/settings/search/InlineListPayload.java
new file mode 100644
index 0000000..60113b9
--- /dev/null
+++ b/src/com/android/settings/search/InlineListPayload.java
@@ -0,0 +1,62 @@
+package com.android.settings.search;
+
+import android.content.Intent;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+/**
+ * Payload for settings which are selected from multiple values. For example, Location can be
+ * set to multiple degrees of accuracy.
+ */
+public class InlineListPayload extends InlinePayload {
+
+    /**
+     * Number of selections in the list.
+     */
+    private int mNumOptions;
+
+    public InlineListPayload(String key, @PayloadType int payloadType, Intent intent,
+            boolean isDeviceSupported, int numOptions) {
+        super(key, payloadType, intent, isDeviceSupported);
+        mNumOptions = numOptions;
+    }
+
+    private InlineListPayload(Parcel in) {
+        super(in);
+        mNumOptions = in.readInt();
+    }
+
+    @Override
+    public void writeToParcel(Parcel dest, int flags) {
+        super.writeToParcel(dest, flags);
+        dest.writeInt(mNumOptions);
+    }
+
+    @Override
+    protected int standardizeInput(int input) throws IllegalArgumentException {
+        if (input < 0 || input >= mNumOptions) {
+            throw new IllegalArgumentException(
+                    "Invalid argument for ListSelect. Expected between 0 and "
+                            + mNumOptions + " but found: " + input);
+        }
+        return input;
+    }
+
+    @Override
+    @PayloadType public int getType() {
+        return PayloadType.INLINE_LIST;
+    }
+
+    public static final Parcelable.Creator<InlineListPayload> CREATOR =
+            new Parcelable.Creator<InlineListPayload>() {
+                @Override
+                public InlineListPayload createFromParcel(Parcel in) {
+                    return new InlineListPayload(in);
+                }
+
+                @Override
+                public InlineListPayload[] newArray(int size) {
+                    return new InlineListPayload[size];
+                }
+            };
+}
diff --git a/src/com/android/settings/search/InlinePayload.java b/src/com/android/settings/search/InlinePayload.java
index 439f111..0807f62 100644
--- a/src/com/android/settings/search/InlinePayload.java
+++ b/src/com/android/settings/search/InlinePayload.java
@@ -21,6 +21,7 @@
 
 import android.content.Context;
 import android.os.Parcel;
+import android.provider.Settings;
 import com.android.internal.annotations.VisibleForTesting;
 
 /**
@@ -38,11 +39,6 @@
     final String mSettingKey;
 
     /**
-     * The UI type for the inline result.
-     */
-    @PayloadType final int mInlineType;
-
-    /**
      * Defines where the Setting is stored.
      */
     @SettingsSource final int mSettingSource;
@@ -54,16 +50,14 @@
 
     /**
      * @param key uniquely identifies the stored setting.
-     * @param payloadType of the setting being stored.
      * @param source of the setting. Used to determine where to get and set the setting.
      * @param intent to the setting page.
      * @param isDeviceSupported is true when the setting is valid for the given device.
      */
-    public InlinePayload(String key, @PayloadType int payloadType, @SettingsSource int source,
-            Intent intent, boolean isDeviceSupported) {
+    public InlinePayload(String key, @SettingsSource int source, Intent intent,
+            boolean isDeviceSupported) {
         super(intent);
         mSettingKey = key;
-        mInlineType = payloadType;
         mSettingSource = source;
         mIsDeviceSupported = isDeviceSupported;
     }
@@ -71,7 +65,6 @@
     InlinePayload(Parcel parcel) {
         super((Intent) parcel.readParcelable(Intent.class.getClassLoader()));
         mSettingKey = parcel.readString();
-        mInlineType = parcel.readInt();
         mSettingSource = parcel.readInt();
         mIsDeviceSupported = parcel.readInt() == TRUE;
     }
@@ -80,11 +73,13 @@
     public void writeToParcel(Parcel dest, int flags) {
         super.writeToParcel(dest, flags);
         dest.writeString(mSettingKey);
-        dest.writeInt(mInlineType);
         dest.writeInt(mSettingSource);
         dest.writeInt(mIsDeviceSupported ? TRUE : FALSE);
     }
 
+    @Override
+    @PayloadType public abstract int getType();
+
     /**
      * @returns the status of the underlying setting. See {@link ResultPayload.Availability} for
      * possible values.
@@ -97,15 +92,63 @@
     }
 
     /**
+     * Checks if the input is valid for the given setting.
+     *
+     * @param input The number to be get or set for the setting.
+     * @return {@param input} mapped to the public-facing API for settings.
+     * @throws IllegalArgumentException when the input is not valid for the given inline type.
+     */
+    protected abstract int standardizeInput(int input) throws IllegalArgumentException;
+
+    /**
      * @returns the current value of the setting.
      */
-    public abstract int getValue(Context context);
+    public int getValue(Context context) {
+        int settingsValue = -1;
+        switch(mSettingSource) {
+            case SettingsSource.SECURE:
+                settingsValue = Settings.Secure.getInt(context.getContentResolver(),
+                        mSettingKey, -1);
+                break;
+            case SettingsSource.SYSTEM:
+                settingsValue = Settings.System.getInt(context.getContentResolver(),
+                        mSettingKey, -1);
+                break;
+
+            case SettingsSource.GLOBAL:
+                settingsValue = Settings.Global.getInt(context.getContentResolver(),
+                        mSettingKey, -1);
+                break;
+        }
+
+        if (settingsValue == -1) {
+            throw new IllegalStateException("Unable to find setting from uri: "
+                    + mSettingKey.toString());
+        }
+
+        return standardizeInput(settingsValue);
+    }
 
     /**
      * Attempts to set the setting value.
      *
-     * @param newValue is the requested new value for the setting.
+     * @param newValue is the requested value for the setting.
      * @returns true when the setting was changed, and false otherwise.
      */
-    public abstract boolean setValue(Context context, int newValue);
+    public boolean setValue(Context context, int newValue) {
+        newValue = standardizeInput(newValue);
+
+        switch(mSettingSource) {
+            case SettingsSource.GLOBAL:
+                return Settings.Global.putInt(context.getContentResolver(), mSettingKey, newValue);
+            case SettingsSource.SECURE:
+                return Settings.Secure.putInt(context.getContentResolver(), mSettingKey, newValue);
+            case SettingsSource.SYSTEM:
+                return Settings.System.putInt(context.getContentResolver(), mSettingKey, newValue);
+            case SettingsSource.UNKNOWN:
+                return false;
+        }
+
+        return false;
+    }
 }
\ No newline at end of file
diff --git a/src/com/android/settings/search/InlineSwitchPayload.java b/src/com/android/settings/search/InlineSwitchPayload.java
index a232054..8916dde 100644
--- a/src/com/android/settings/search/InlineSwitchPayload.java
+++ b/src/com/android/settings/search/InlineSwitchPayload.java
@@ -17,17 +17,18 @@
 
 package com.android.settings.search;
 
-import android.content.Context;
 import android.content.Intent;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.provider.Settings;
 
 /**
  * Payload for inline Switch results. Mappings from integer to boolean.
  */
 public class InlineSwitchPayload extends InlinePayload {
 
+    private static final int ON = 1;
+    private static final int OFF = 0;
+
     /**
      * Provides a mapping for how switches are stored.
      * If mIsStandard is true, then (0 == false) and (1 == true)
@@ -45,7 +46,7 @@
      */
     public InlineSwitchPayload(String key, @SettingsSource int source,
             int onValue, Intent intent, boolean isDeviceSupported) {
-        super(key, PayloadType.INLINE_SWITCH, source, intent, isDeviceSupported);
+        super(key, source, intent, isDeviceSupported);
         // If on is stored as TRUE then the switch is standard.
         mIsStandard = onValue == TRUE;
     }
@@ -56,13 +57,20 @@
     }
 
     @Override
-    public int getType() {
-        return mInlineType;
+    @PayloadType public int getType() {
+        return PayloadType.INLINE_SWITCH;
     }
 
     @Override
-    public int describeContents() {
-        return 0;
+    protected int standardizeInput(int value) {
+        if (value != OFF && value != ON) {
+            throw new IllegalArgumentException("Invalid input for InlineSwitch. Expected: "
+                    + ON + " or " + OFF
+                    + " but found: " + value);
+        }
+        return mIsStandard
+                ? value
+                : 1 - value;
     }
 
     @Override
@@ -84,65 +92,7 @@
         }
     };
 
-    @Override
-    public int getValue(Context context) {
-        int settingsValue = -1;
-        switch(mSettingSource) {
-            case SettingsSource.SECURE:
-                settingsValue = Settings.Secure.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
-                break;
-            case SettingsSource.SYSTEM:
-                settingsValue = Settings.System.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
-                break;
-
-            case SettingsSource.GLOBAL:
-                settingsValue = Settings.Global.getInt(context.getContentResolver(),
-                        mSettingKey, -1);
-                break;
-        }
-
-        if (settingsValue == -1) {
-            throw new IllegalStateException("Unable to find setting from uri: "
-                    + mSettingKey.toString());
-        }
-
-        settingsValue = standardizeInput(settingsValue);
-
-        return settingsValue;
-    }
-
-    @Override
-    public boolean setValue(Context context, int newValue) {
-        if (newValue != 0 && newValue != 1) {
-            throw new IllegalArgumentException("newValue should be 0 for off and 1 for on."
-                    + "The passed value was: " + newValue);
-        }
-
-        newValue = standardizeInput(newValue);
-
-        switch(mSettingSource) {
-            case SettingsSource.GLOBAL:
-                return Settings.Global.putInt(context.getContentResolver(), mSettingKey, newValue);
-            case SettingsSource.SECURE:
-                return Settings.Secure.putInt(context.getContentResolver(), mSettingKey, newValue);
-            case SettingsSource.SYSTEM:
-                return Settings.System.putInt(context.getContentResolver(), mSettingKey, newValue);
-            case SettingsSource.UNKNOWN:
-                return false;
-        }
-
-        return false;
-    }
-
     public boolean isStandard() {
         return mIsStandard;
     }
-
-    private int standardizeInput(int value) {
-        return mIsStandard
-                ? value
-                : 1 - value;
-    }
 }
diff --git a/src/com/android/settings/search/InstalledAppResultLoader.java b/src/com/android/settings/search/InstalledAppResultLoader.java
index 70a39ee..6340a61 100644
--- a/src/com/android/settings/search/InstalledAppResultLoader.java
+++ b/src/com/android/settings/search/InstalledAppResultLoader.java
@@ -27,6 +27,7 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
+import android.support.annotation.VisibleForTesting;
 import android.text.TextUtils;
 
 import com.android.internal.logging.nano.MetricsProto;
@@ -54,7 +55,8 @@
 
     private List<String> mBreadcrumb;
     private SiteMapManager mSiteMapManager;
-    private final String mQuery;
+    @VisibleForTesting
+    final String mQuery;
     private final UserManager mUserManager;
     private final PackageManagerWrapper mPackageManager;
     private final List<ResolveInfo> mHomeActivities = new ArrayList<>();
diff --git a/src/com/android/settings/search/ResultPayload.java b/src/com/android/settings/search/ResultPayload.java
index 39688ac..b008616 100644
--- a/src/com/android/settings/search/ResultPayload.java
+++ b/src/com/android/settings/search/ResultPayload.java
@@ -32,8 +32,8 @@
 public class ResultPayload implements Parcelable {
     protected final Intent mIntent;
 
-    @IntDef({PayloadType.INLINE_SLIDER, PayloadType.INLINE_SWITCH,
-            PayloadType.INTENT, PayloadType.SAVED_QUERY})
+    @IntDef({PayloadType.INTENT, PayloadType.INLINE_SLIDER, PayloadType.INLINE_SWITCH,
+            PayloadType.INLINE_LIST, PayloadType.SAVED_QUERY})
     @Retention(RetentionPolicy.SOURCE)
     public @interface PayloadType {
         /**
@@ -52,9 +52,14 @@
         int INLINE_SWITCH = 2;
 
         /**
+         * Result is an inline list-select, with an undefined UI.
+         */
+        int INLINE_LIST = 3;
+
+        /**
          * Result is a recently saved query.
          */
-        int SAVED_QUERY = 3;
+        int SAVED_QUERY = 4;
     }
 
     /**
diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java
index 8b589cd..2fbebba 100644
--- a/src/com/android/settings/search/SearchFeatureProvider.java
+++ b/src/com/android/settings/search/SearchFeatureProvider.java
@@ -62,9 +62,15 @@
     SiteMapManager getSiteMapManager();
 
     /**
-     * Updates the Settings indexes
+     * Updates the Settings indexes and calls {@link IndexingCallback#onIndexingFinished()} on
+     * {@param callback} when indexing is complete.
      */
-    void updateIndex(Context context, IndexingCallback callback);
+    void updateIndexAsync(Context context, IndexingCallback callback);
+
+    /**
+     * Synchronously updates the Settings database.
+     */
+    void updateIndex(Context context);
 
     /**
      * @returns true when indexing is complete.
diff --git a/src/com/android/settings/search/SearchFeatureProviderImpl.java b/src/com/android/settings/search/SearchFeatureProviderImpl.java
index 99771db..2bcd383 100644
--- a/src/com/android/settings/search/SearchFeatureProviderImpl.java
+++ b/src/com/android/settings/search/SearchFeatureProviderImpl.java
@@ -17,16 +17,11 @@
 
 package com.android.settings.search;
 
-import android.app.Activity;
 import android.content.Context;
-import android.content.Intent;
-import android.util.Log;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import com.android.settings.R;
+import android.text.TextUtils;
 import com.android.settings.applications.PackageManagerWrapperImpl;
 import com.android.settings.dashboard.SiteMapManager;
+import com.android.settings.overlay.FeatureFactory;
 
 /**
  * FeatureProvider for the refactored search code.
@@ -35,6 +30,8 @@
 
     private static final String TAG = "SearchFeatureProvider";
 
+    private static final String METRICS_ACTION_SETTINGS_INDEX = "search_synchronous_indexing";
+
     private DatabaseIndexingManager mDatabaseIndexingManager;
     private SiteMapManager mSiteMapManager;
 
@@ -45,14 +42,14 @@
 
     @Override
     public DatabaseResultLoader getDatabaseSearchLoader(Context context, String query) {
-        return new DatabaseResultLoader(context, query, getSiteMapManager());
+        return new DatabaseResultLoader(context, cleanQuery(query), getSiteMapManager());
     }
 
     @Override
     public InstalledAppResultLoader getInstalledAppSearchLoader(Context context, String query) {
         return new InstalledAppResultLoader(
-                context, new PackageManagerWrapperImpl(context.getPackageManager()), query,
-                getSiteMapManager());
+                context, new PackageManagerWrapperImpl(context.getPackageManager()),
+                cleanQuery(query), getSiteMapManager());
     }
 
     @Override
@@ -82,10 +79,28 @@
     }
 
     @Override
-    public void updateIndex(Context context, IndexingCallback callback) {
-        long indexStartTime = System.currentTimeMillis();
+    public void updateIndexAsync(Context context, IndexingCallback callback) {
         getIndexingManager(context).indexDatabase(callback);
-        Log.d(TAG, "IndexDatabase() took " +
-                (System.currentTimeMillis() - indexStartTime) + " ms");
+    }
+
+    @Override
+    public void updateIndex(Context context) {
+        long indexStartTime = System.currentTimeMillis();
+        getIndexingManager(context).performIndexing();
+        int indexingTime = (int) (System.currentTimeMillis() - indexStartTime);
+        FeatureFactory.getFactory(context).getMetricsFeatureProvider()
+                .histogram(context, METRICS_ACTION_SETTINGS_INDEX, indexingTime);
+    }
+
+    /**
+     * A generic method to make the query suitable for searching the database.
+     *
+     * @return the cleaned query string
+     */
+    private String cleanQuery(String query) {
+        if (TextUtils.isEmpty(query)) {
+            return null;
+        }
+        return query.trim();
     }
 }
diff --git a/src/com/android/settings/search/SearchFragment.java b/src/com/android/settings/search/SearchFragment.java
index 90b46af..aec140a 100644
--- a/src/com/android/settings/search/SearchFragment.java
+++ b/src/com/android/settings/search/SearchFragment.java
@@ -36,6 +36,8 @@
 import android.view.inputmethod.InputMethodManager;
 import android.widget.LinearLayout;
 import android.widget.SearchView;
+import android.widget.TextView;
+import android.widget.Toolbar;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
@@ -154,7 +156,7 @@
         final Activity activity = getActivity();
         // Run the Index update only if we have some space
         if (!Utils.isLowStorage(activity)) {
-            mSearchFeatureProvider.updateIndex(activity, this /* indexingCallback */);
+            mSearchFeatureProvider.updateIndexAsync(activity, this /* indexingCallback */);
         } else {
             Log.w(TAG, "Cannot update the Indexer as we are running low on storage space!");
         }
@@ -168,14 +170,33 @@
         mResultsRecyclerView.setAdapter(mSearchAdapter);
         mResultsRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
         mResultsRecyclerView.addOnScrollListener(mScrollListener);
-        mResultsRecyclerView.addItemDecoration(new HeaderDecorator());
 
         mNoResultsView = view.findViewById(R.id.no_results_layout);
 
-        mSearchView = view.findViewById(R.id.search_view);
+        Toolbar toolbar = view.findViewById(R.id.search_toolbar);
+        getActivity().setActionBar(toolbar);
+        getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
+
+        mSearchView = toolbar.findViewById(R.id.search_view);
         mSearchView.setQuery(mQuery, false /* submitQuery */);
         mSearchView.setOnQueryTextListener(this);
         mSearchView.requestFocus();
+
+        // Updating internal views inside SearchView was the easiest way to get this too look right.
+        // Instead of grabbing the TextView directly, we grab it as a view and do an instanceof
+        // check. This ensures if we return, say, a LinearLayout in the tests, they won't fail.
+        View searchText = mSearchView.findViewById(com.android.internal.R.id.search_src_text);
+        if (searchText instanceof TextView) {
+            ((TextView) searchText).setTextColor(getContext().getColorStateList(
+                    com.android.internal.R.color.text_color_primary));
+        }
+        View editFrame = mSearchView.findViewById(com.android.internal.R.id.search_edit_frame);
+        if (editFrame != null) {
+            ViewGroup.MarginLayoutParams params =
+                    (ViewGroup.MarginLayoutParams) editFrame.getLayoutParams();
+            params.setMarginStart(0);
+            editFrame.setLayoutParams(params);
+        }
         return view;
     }
 
diff --git a/src/com/android/settings/search/SearchResultsAdapter.java b/src/com/android/settings/search/SearchResultsAdapter.java
index c7a1a9f..d2ace0e 100644
--- a/src/com/android/settings/search/SearchResultsAdapter.java
+++ b/src/com/android/settings/search/SearchResultsAdapter.java
@@ -110,6 +110,10 @@
                 // InlineSwitchViewHolder.
                 view = inflater.inflate(R.layout.search_intent_item, parent, false);
                 return new IntentSearchViewHolder(view);
+            case ResultPayload.PayloadType.INLINE_LIST:
+                // TODO (b/62807132) build a inline-list view holder & layout.
+                view = inflater.inflate(R.layout.search_intent_item, parent, false);
+                return new IntentSearchViewHolder(view);
             case ResultPayload.PayloadType.SAVED_QUERY:
                 view = inflater.inflate(R.layout.search_saved_query_item, parent, false);
                 return new SavedQueryViewHolder(view);
diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java
index 5cb27f9..bef2e9a 100644
--- a/src/com/android/settings/users/UserSettings.java
+++ b/src/com/android/settings/users/UserSettings.java
@@ -725,6 +725,7 @@
         final boolean voiceCapable = Utils.isVoiceCapable(context);
         final ArrayList<Integer> missingIcons = new ArrayList<>();
         final ArrayList<UserPreference> userPreferences = new ArrayList<>();
+        int guestId = UserPreference.USERID_GUEST_DEFAULTS;
         userPreferences.add(mMePreference);
 
         for (UserInfo user : users) {
@@ -738,6 +739,7 @@
                 pref = mMePreference;
             } else if (user.isGuest()) {
                 // Skip over Guest. We add generic Guest settings after this loop
+                guestId = user.id;
                 continue;
             } else {
                 // With Telephony:
@@ -814,9 +816,23 @@
             userPreferences.add(pref);
             pref.setDisabledByAdmin(
                     mUserCaps.mDisallowAddUser ? mUserCaps.mEnforcedAdmin : null);
-            if (!pref.isDisabledByAdmin()) {
-                pref.setSelectable(false);
-            }
+            int finalGuestId = guestId;
+            pref.setOnPreferenceClickListener(preference -> {
+                int id = finalGuestId;
+                if (id == UserPreference.USERID_GUEST_DEFAULTS) {
+                    UserInfo guest = mUserManager.createGuest(
+                            getContext(), preference.getTitle().toString());
+                    if (guest != null) {
+                        id = guest.id;
+                    }
+                }
+                try {
+                    ActivityManager.getService().switchUser(id);
+                } catch (RemoteException e) {
+                    e.rethrowFromSystemServer();
+                }
+                return true;
+            });
         }
 
         // Sort list of users by serialNum
diff --git a/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java b/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java
index afbb0b4..90c5888 100644
--- a/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java
+++ b/src/com/android/settings/wallpaper/WallpaperSuggestionActivity.java
@@ -45,7 +45,7 @@
         finish();
     }
 
-    @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
+    @VisibleForTesting
     void startFallbackSuggestion() {
         // fall back to default wallpaper picker
         Utils.startWithFragment(this, WallpaperTypeSettings.class.getName(), null, null, 0,
diff --git a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java
index bef4777..1ca8ac7 100644
--- a/src/com/android/settings/wallpaper/WallpaperTypeSettings.java
+++ b/src/com/android/settings/wallpaper/WallpaperTypeSettings.java
@@ -90,8 +90,13 @@
                 final List<ResolveInfo> rList = pm.queryIntentActivities(intent,
                         PackageManager.MATCH_DEFAULT_ONLY);
 
-                // Add indexable data for each of the matching activities
+                // Add indexable data for package that is in config_wallpaper_picker_package
+                final String wallpaperPickerPackage =
+                        context.getString(R.string.config_wallpaper_picker_package);
                 for (ResolveInfo info : rList) {
+                    if (!wallpaperPickerPackage.equals(info.activityInfo.packageName)) {
+                        continue;
+                    }
                     CharSequence label = info.loadLabel(pm);
                     if (label == null) label = info.activityInfo.packageName;
 
diff --git a/src/com/android/settings/widget/DonutView.java b/src/com/android/settings/widget/DonutView.java
index 295cb79..9a14b3b 100644
--- a/src/com/android/settings/widget/DonutView.java
+++ b/src/com/android/settings/widget/DonutView.java
@@ -39,7 +39,6 @@
     // From manual testing, this is the longest we can go without visual errors.
     private static final int LINE_CHARACTER_LIMIT = 10;
     private float mStrokeWidth;
-    private float mDeviceDensity;
     private int mPercent;
     private Paint mBackgroundCircle;
     private Paint mFilledArc;
@@ -54,8 +53,7 @@
 
     public DonutView(Context context, AttributeSet attrs) {
         super(context, attrs);
-        mDeviceDensity = getResources().getDisplayMetrics().density;
-        mStrokeWidth = 6f * mDeviceDensity;
+        mStrokeWidth = context.getResources().getDimension(R.dimen.storage_donut_thickness);
         final ColorFilter mAccentColorFilter =
                 new PorterDuffColorFilter(
                         Utils.getColorAttr(context, android.R.attr.colorAccent),
@@ -92,7 +90,7 @@
                 resources.getDimension(R.dimen.storage_donut_view_percent_text_size));
         mBigNumberPaint.setTextAlign(Paint.Align.CENTER);
         mBigNumberPaint.setTypeface(Typeface.create(
-                getContext().getString(com.android.internal.R.string.config_headlineFontFamily),
+                context.getString(com.android.internal.R.string.config_headlineFontFamily),
                 Typeface.NORMAL));
     }
 
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index bf67565..ee4acd1 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -127,17 +127,25 @@
         final List<AccessPoint> accessPoints =
                 WifiSavedConfigUtils.getAllConfigs(context, mWifiManager);
         Collections.sort(accessPoints, SAVED_NETWORK_COMPARATOR);
-        preferenceScreen.removeAll();
+        cacheRemoveAllPrefs(preferenceScreen);
 
         final int accessPointsSize = accessPoints.size();
-        for (int i = 0; i < accessPointsSize; ++i){
+        for (int i = 0; i < accessPointsSize; ++i) {
+            AccessPoint ap = accessPoints.get(i);
+            String key = AccessPointPreference.generatePreferenceKey(ap);
             LongPressAccessPointPreference preference =
-                    new LongPressAccessPointPreference(accessPoints.get(i), context,
-                            mUserBadgeCache, true, this);
-            preference.setIcon(null);
-            preferenceScreen.addPreference(preference);
+                    (LongPressAccessPointPreference) getCachedPreference(key);
+            if (preference == null) {
+                preference = new LongPressAccessPointPreference(
+                        ap, context, mUserBadgeCache, true, this);
+                preference.setKey(key);
+                preference.setIcon(null);
+                preferenceScreen.addPreference(preference);
+            }
         }
 
+        removeCachedPrefs(preferenceScreen);
+
         if(getPreferenceScreen().getPreferenceCount() < 1) {
             Log.w(TAG, "Saved networks activity loaded, but there are no saved networks!");
         }
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 3cfb17d..bd35851 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -43,7 +43,6 @@
 import android.support.annotation.VisibleForTesting;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceCategory;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.ContextMenu;
 import android.view.ContextMenu.ContextMenuInfo;
@@ -749,10 +748,7 @@
             AccessPoint accessPoint = accessPoints.get(index);
             // Ignore access points that are out of range.
             if (accessPoint.isReachable()) {
-                String key = accessPoint.getBssid();
-                if (TextUtils.isEmpty(key)) {
-                    key = accessPoint.getSsidStr();
-                }
+                String key = AccessPointPreference.generatePreferenceKey(accessPoint);
                 hasAvailableAccessPoints = true;
                 LongPressAccessPointPreference pref =
                         (LongPressAccessPointPreference) getCachedPreference(key);
@@ -1006,6 +1002,7 @@
         mMetricsFeatureProvider.action(getActivity(), MetricsEvent.ACTION_WIFI_CONNECT,
                 isSavedNetwork);
         mWifiManager.connect(config, mConnectListener);
+        scrollToPreference(mConnectedAccessPointPreferenceCategory);
     }
 
     protected void connect(final int networkId, boolean isSavedNetwork) {
diff --git a/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml b/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
index 04489de..cedf5b9 100644
--- a/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
+++ b/tests/robotests/res/layout-mcc999/fingerprint_enroll_find_sensor.xml
@@ -17,10 +17,12 @@
 
 <com.android.setupwizardlib.GlifLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     android:id="@+id/setup_wizard_layout"
     style="?attr/fingerprint_layout_theme"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    app:suwFooter="@layout/fingerprint_enroll_find_sensor_base_footer">
 
     <FrameLayout
         android:layout_width="match_parent"
@@ -65,7 +67,7 @@
                 android:layout_weight="1"/>
 
             <Button
-                style="@style/SuwGlifButton.Primary"
+                style="@style/SuwGlifButton.Secondary"
                 android:id="@+id/next_button"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
diff --git a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
index edb5d89..5fbd3a7 100644
--- a/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accounts/AccountSyncPreferenceControllerTest.java
@@ -16,11 +16,17 @@
 package com.android.settings.accounts;
 
 import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
+
+import static org.mockito.Answers.RETURNS_DEEP_STUBS;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.when;
 
 import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorDescription;
 import android.content.Context;
 import android.content.Intent;
+import android.content.SyncAdapterType;
 import android.os.UserHandle;
 import android.support.v7.preference.Preference;
 
@@ -28,29 +34,58 @@
 import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
+import com.android.settings.testutils.shadow.ShadowAccountManager;
+import com.android.settings.testutils.shadow.ShadowContentResolver;
 
+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 org.robolectric.shadows.ShadowApplication;
 
 @RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION,
+        shadows = {ShadowAccountManager.class, ShadowContentResolver.class})
 public class AccountSyncPreferenceControllerTest {
 
+    @Mock(answer = RETURNS_DEEP_STUBS)
+    private AccountManager mAccountManager;
+
+    private Context mContext;
+    private AccountSyncPreferenceController mController;
+    private Preference mPreference;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowApplication application = ShadowApplication.getInstance();
+        application.setSystemService(Context.ACCOUNT_SERVICE, mAccountManager);
+        mContext = application.getApplicationContext();
+
+        when(mAccountManager.getAuthenticatorTypesAsUser(anyInt())).thenReturn(
+                new AuthenticatorDescription[0]);
+        when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[0]);
+
+        mPreference = new Preference(mContext);
+        mPreference.setKey("account_sync");
+
+        mController = new AccountSyncPreferenceController(mContext);
+        mController.init(new Account("acct1", "type1"), new UserHandle(3));
+    }
+
+    @After
+    public void tearDown() {
+        ShadowContentResolver.reset();
+    }
+
     @Test
     public void handlePreferenceTreeClick_shouldStartFragment() {
-        final ShadowApplication application = ShadowApplication.getInstance();
-        final Context context = application.getApplicationContext();
-        final Preference preference = new Preference(context);
-        preference.setKey("account_sync");
+        mController.handlePreferenceTreeClick(mPreference);
 
-        final AccountSyncPreferenceController controller =
-                new AccountSyncPreferenceController(context);
-        controller.init(new Account("acct1", "type1"), mock(UserHandle.class));
-        controller.handlePreferenceTreeClick(preference);
-
-        final Intent nextActivity = application.getNextStartedActivity();
+        final Intent nextActivity = ShadowApplication.getInstance().getNextStartedActivity();
 
         assertThat(nextActivity.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
                 .isEqualTo(AccountSyncSettings.class.getName());
@@ -58,4 +93,93 @@
                 .isEqualTo(R.string.account_sync_title);
     }
 
+    @Test
+    public void updateSummary_adapterInvisible_shouldNotCount() {
+        SyncAdapterType syncAdapterType = new SyncAdapterType("authority" /* authority */,
+                "type1" /* accountType */, false /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters = {syncAdapterType};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+    }
+
+    @Test
+    public void updateSummary_notSameAccountType_shouldNotCount() {
+        SyncAdapterType syncAdapterType = new SyncAdapterType("authority" /* authority */,
+                "type5" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters = {syncAdapterType};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+    }
+
+    @Test
+    public void updateSummary_notSyncable_shouldNotCount() {
+        SyncAdapterType syncAdapterType = new SyncAdapterType("authority" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters = {syncAdapterType};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+        ShadowContentResolver.setSyncable("authority", 0);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+    }
+
+    @Test
+    public void updateSummary_syncDisabled_shouldNotCount() {
+        SyncAdapterType syncAdapterType = new SyncAdapterType("authority" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters = {syncAdapterType};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+        ShadowContentResolver.setSyncAutomatically("authority", false);
+        ShadowContentResolver.setMasterSyncAutomatically(3, true);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_off));
+    }
+
+    @Test
+    public void updateSummary_syncEnabled_shouldCount() {
+        SyncAdapterType syncAdapterType = new SyncAdapterType("authority" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters = {syncAdapterType};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_all_on));
+    }
+
+    @Test
+    public void updateSummary_multipleSyncAdapters_shouldSetSummary() {
+        SyncAdapterType syncAdapterType1 = new SyncAdapterType("authority1" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType syncAdapterType2 = new SyncAdapterType("authority2" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType syncAdapterType3 = new SyncAdapterType("authority3" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType syncAdapterType4 = new SyncAdapterType("authority4" /* authority */,
+                "type1" /* accountType */, true /* userVisible */, true /* supportsUploading */);
+        SyncAdapterType[] syncAdapters =
+                {syncAdapterType1, syncAdapterType2, syncAdapterType3, syncAdapterType4};
+        ShadowContentResolver.setSyncAdapterTypes(syncAdapters);
+
+        ShadowContentResolver.setSyncAutomatically("authority4", false);
+
+        mController.updateSummary(mPreference);
+
+        assertThat(mPreference.getSummary())
+                .isEqualTo(mContext.getString(R.string.account_sync_summary_some_on, 3, 4));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.java
new file mode 100644
index 0000000..7bd1203
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragmentTest.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.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.mock;
+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.Bundle;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+
+import com.android.settings.R;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+import com.android.settingslib.bluetooth.LocalBluetoothManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Answers;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.fakes.RoboMenu;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class BluetoothDeviceDetailsFragmentTest {
+    private BluetoothDeviceDetailsFragment mFragment;
+    private Context mContext;
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private CachedBluetoothDevice mCachedDevice;
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private LocalBluetoothManager mLocalManager;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        FakeFeatureFactory.setupForTest(mContext);
+
+        String deviceAddress = "55:66:77:88:99:AA";
+        mFragment = spy(BluetoothDeviceDetailsFragment.newInstance(deviceAddress));
+        doReturn(mLocalManager).when(mFragment).getLocalBluetoothManager(any());
+        doReturn(mCachedDevice).when(mFragment).getCachedDevice(any());
+
+        when(mCachedDevice.getDevice().getAddress()).thenReturn(deviceAddress);
+        Bundle args = new Bundle();
+        args.putString(BluetoothDeviceDetailsFragment.KEY_DEVICE_ADDRESS, deviceAddress);
+        mFragment.setArguments(args);
+        mFragment.onAttach(mContext);
+    }
+
+    @Test
+    public void renameControlGetsAdded() {
+        RoboMenu menu = new RoboMenu(mContext);
+        MenuInflater inflater = new MenuInflater(mContext);
+        mFragment.onCreateOptionsMenu(menu, inflater);
+        MenuItem item = menu.getItem(0);
+        assertThat(item.getTitle()).isEqualTo(mContext.getString(R.string.bluetooth_rename_button));
+        assertThat(item.getIcon()).isEqualTo(mContext.getDrawable(R.drawable.ic_mode_edit));
+    }
+
+    @Test
+    public void renameControlClicked() {
+        RoboMenu menu = new RoboMenu(mContext);
+        MenuInflater inflater = new MenuInflater(mContext);
+        mFragment.onCreateOptionsMenu(menu, inflater);
+        MenuItem item = menu.getItem(0);
+        assertThat(item.getItemId()).isEqualTo(
+                BluetoothDeviceDetailsFragment.EDIT_DEVICE_NAME_ITEM_ID);
+
+        FragmentManager fragmentManager = mock(FragmentManager.class);
+        when(mFragment.getFragmentManager()).thenReturn(fragmentManager);
+        FragmentTransaction ft = mock(FragmentTransaction.class);
+        when(fragmentManager.beginTransaction()).thenReturn(ft);
+
+        ArgumentCaptor<Fragment> captor = ArgumentCaptor.forClass(Fragment.class);
+        mFragment.onOptionsItemSelected(item);
+        verify(ft).add(captor.capture(), eq(RemoteDeviceNameDialogFragment.TAG));
+        RemoteDeviceNameDialogFragment dialog = (RemoteDeviceNameDialogFragment) captor.getValue();
+        assertThat(dialog).isNotNull();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java
new file mode 100644
index 0000000..2d7f215
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/bluetooth/RemoteDeviceNameDialogFragmentTest.java
@@ -0,0 +1,137 @@
+/*
+ * 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.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.DialogInterface;
+import android.widget.Button;
+import android.widget.EditText;
+
+import com.android.settings.R;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import com.android.settingslib.bluetooth.CachedBluetoothDevice;
+
+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.shadows.ShadowDialog;
+import org.robolectric.util.FragmentTestUtil;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class RemoteDeviceNameDialogFragmentTest {
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private CachedBluetoothDevice mCachedDevice;
+
+    private RemoteDeviceNameDialogFragment mFragment;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        mContext = spy(RuntimeEnvironment.application);
+        FakeFeatureFactory.setupForTest(mContext);
+
+        String deviceAddress = "55:66:77:88:99:AA";
+        when(mCachedDevice.getDevice().getAddress()).thenReturn(deviceAddress);
+        mFragment = spy(RemoteDeviceNameDialogFragment.newInstance(mCachedDevice));
+        doReturn(mCachedDevice).when(mFragment).getDevice(any());
+    }
+
+    /**
+     * Helper method to set the mock device's name and show the dialog.
+     *
+     * @param deviceName what name to set
+     * @return the dialog created
+     */
+    AlertDialog startDialog(String deviceName) {
+        when(mCachedDevice.getName()).thenReturn(deviceName);
+        FragmentTestUtil.startFragment(mFragment);
+        return (AlertDialog) ShadowDialog.getLatestDialog();
+    }
+
+    @Test
+    public void deviceNameDisplayIsCorrect() {
+        String deviceName = "ABC Corp Headphones";
+        AlertDialog dialog = startDialog(deviceName);
+        EditText editText = (EditText) dialog.findViewById(R.id.edittext);
+        assertThat(editText.getText().toString()).isEqualTo(deviceName);
+
+        // Make sure that the "rename" button isn't enabled since the text hasn't changed yet, but
+        // the "cancel" button should be enabled.
+        Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+        assertThat(positiveButton.isEnabled()).isFalse();
+        Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(negativeButton.isEnabled()).isTrue();
+    }
+
+    @Test
+    public void deviceNameEditSucceeds() {
+        String deviceNameInitial = "ABC Corp Headphones";
+        String deviceNameModified = "My Headphones";
+        AlertDialog dialog = startDialog(deviceNameInitial);
+
+        // Before modifying the text the "rename" button should be disabled but the cancel button
+        // should be enabled.
+        Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
+        Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(negativeButton.isEnabled()).isTrue();
+        assertThat(positiveButton.isEnabled()).isFalse();
+
+        // Once we modify the text, the positive button should be clickable, and clicking it should
+        // cause a call to change the name.
+        EditText editText = (EditText) dialog.findViewById(R.id.edittext);
+        editText.setText(deviceNameModified);
+        assertThat(positiveButton.isEnabled()).isTrue();
+        positiveButton.performClick();
+        verify(mCachedDevice).setName(deviceNameModified);
+    }
+
+    @Test
+    public void deviceNameEditThenCancelDoesntRename() {
+        String deviceNameInitial = "ABC Corp Headphones";
+        String deviceNameModified = "My Headphones";
+        AlertDialog dialog = startDialog(deviceNameInitial);
+
+        // Modifying the text but then hitting cancel should not cause the name to change.
+        Button negativeButton = dialog.getButton(DialogInterface.BUTTON_NEGATIVE);
+        assertThat(negativeButton.isEnabled()).isTrue();
+        EditText editText = (EditText) dialog.findViewById(R.id.edittext);
+        editText.setText(deviceNameModified);
+        negativeButton.performClick();
+        verify(mCachedDevice, never()).setName(anyString());
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/conditional/ConditionAdapterUtilsTest.java b/tests/robotests/src/com/android/settings/conditional/ConditionAdapterUtilsTest.java
deleted file mode 100644
index 83883b2..0000000
--- a/tests/robotests/src/com/android/settings/conditional/ConditionAdapterUtilsTest.java
+++ /dev/null
@@ -1,74 +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.conditional;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.LinearLayout;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-import com.android.settings.dashboard.DashboardAdapter;
-import com.android.settings.dashboard.conditional.Condition;
-import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
-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 com.android.settings.R;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.when;
-
-// Not needed in new UI as the view is always expanded
-@Deprecated
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class ConditionAdapterUtilsTest{
-    @Mock
-    private Condition mCondition;
-    private DashboardAdapter.DashboardItemHolder mViewHolder;
-    private Context mContext;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        final CharSequence[] actions = new CharSequence[2];
-        when(mCondition.getActions()).thenReturn(actions);
-
-        final View view = LayoutInflater.from(mContext).inflate(R.layout.condition_card, new
-                LinearLayout(mContext), true);
-        mViewHolder = new DashboardAdapter.DashboardItemHolder(view);
-    }
-
-    @Test
-    public void testBindView_isExpanded_returnVisible() {
-        ConditionAdapterUtils.bindViews(mCondition, mViewHolder, true, null, null);
-        assertThat(mViewHolder.itemView.findViewById(R.id.detail_group).getVisibility())
-                .isEqualTo(View.VISIBLE);
-    }
-
-    @Test
-    public void testBindView_isNotExpanded_returnGone() {
-        ConditionAdapterUtils.bindViews(mCondition, mViewHolder, false, null, null);
-        assertThat(mViewHolder.itemView.findViewById(R.id.detail_group).getVisibility())
-                .isEqualTo(View.GONE);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
index e9b29dd..55bc4ca 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardAdapterTest.java
@@ -36,21 +36,19 @@
 import android.content.res.TypedArray;
 import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Icon;
-import android.view.ContextThemeWrapper;
+import android.support.v7.widget.RecyclerView;
+import android.util.DisplayMetrics;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.FrameLayout;
 import android.widget.LinearLayout;
-import android.widget.RemoteViews;
-import android.widget.TextView;
+import android.widget.RelativeLayout;
 
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.TestConfig;
 import com.android.settings.dashboard.conditional.Condition;
+import com.android.settings.dashboard.suggestions.SuggestionAdapter;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
@@ -68,7 +66,6 @@
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
-import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -98,8 +95,8 @@
     private ArgumentCaptor<String> mActionPackageCaptor = ArgumentCaptor.forClass(String.class);
     private FakeFeatureFactory mFactory;
     private DashboardAdapter mDashboardAdapter;
-    private DashboardAdapter.DashboardItemHolder mSuggestionHolder;
-    private DashboardData.SuggestionHeaderData mSuggestionHeaderData;
+    private DashboardAdapter.SuggestionAndConditionHeaderHolder mSuggestionHolder;
+    private DashboardData.SuggestionConditionHeaderData mSuggestionHeaderData;
 
     @Before
     public void setUp() {
@@ -118,59 +115,14 @@
         when(mResources.getQuantityString(any(int.class), any(int.class), any()))
                 .thenReturn("");
 
-        mDashboardAdapter = new DashboardAdapter(mContext, null, null);
-        mSuggestionHeaderData = new DashboardData.SuggestionHeaderData(true, 1, 0);
+        List<Condition> conditions = new ArrayList<>();
+        conditions.add(mCondition);
+        mDashboardAdapter = new DashboardAdapter(mContext, null, conditions, null, null);
+        mSuggestionHeaderData = new DashboardData.SuggestionConditionHeaderData(conditions, 1);
         when(mView.getTag()).thenReturn(mCondition);
     }
 
     @Test
-    public void testOnBindViewHolder_spacer_noSuggestions_noConditions() {
-        makeCategory();
-        DashboardAdapter.DashboardItemHolder holder = setupSpacer();
-
-        mDashboardAdapter.onBindViewHolder(holder, 0);
-
-        assertThat(holder.itemView.getBackground()).isNull();
-    }
-
-    @Test
-    public void testOnBindViewHolder_spacer_suggestion_noConditions() {
-        setupSuggestions(makeSuggestions("pkg1"));
-        makeCategory();
-        DashboardAdapter.DashboardItemHolder holder = setupSpacer();
-
-        mDashboardAdapter.onBindViewHolder(holder, 0);
-
-        assertThat(holder.itemView.getBackground()).isNotNull();
-        assertThat(holder.itemView.getBackground()).isInstanceOf(ColorDrawable.class);
-    }
-
-    @Test
-    public void testOnBindViewHolder_spacer_noSuggestion_condition() {
-        makeCondition();
-        makeCategory();
-        DashboardAdapter.DashboardItemHolder holder = setupSpacer();
-
-        mDashboardAdapter.onBindViewHolder(holder, 0);
-
-        assertThat(holder.itemView.getBackground()).isNotNull();
-        assertThat(holder.itemView.getBackground()).isInstanceOf(ColorDrawable.class);
-    }
-
-    @Test
-    public void testOnBindViewHolder_spacer_suggestion_condition() {
-        setupSuggestions(makeSuggestions("pkg1"));
-        makeCondition();
-        makeCategory();
-        DashboardAdapter.DashboardItemHolder holder = setupSpacer();
-
-        mDashboardAdapter.onBindViewHolder(holder, 0);
-
-        assertThat(holder.itemView.getBackground()).isNotNull();
-        assertThat(holder.itemView.getBackground()).isInstanceOf(ColorDrawable.class);
-    }
-
-    @Test
     public void testSuggestionsLogs_NotExpanded() {
         setupSuggestions(makeSuggestions("pkg1", "pkg2", "pkg3"));
         verify(mFactory.metricsFeatureProvider, times(2)).action(
@@ -205,8 +157,7 @@
     @Test
     public void testSuggestionsLogs_Expanded() {
         setupSuggestions(makeSuggestions("pkg1", "pkg2", "pkg3"));
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         verify(mFactory.metricsFeatureProvider, times(3)).action(
                 any(Context.class), mActionCategoryCaptor.capture(),
@@ -224,8 +175,7 @@
     @Test
     public void testSuggestionsLogs_ExpandedAndPaused() {
         setupSuggestions(makeSuggestions("pkg1", "pkg2", "pkg3"));
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         mDashboardAdapter.onPause();
         verify(mFactory.metricsFeatureProvider, times(6)).action(
@@ -248,8 +198,7 @@
     public void testSuggestionsLogs_ExpandedAfterPause() {
         setupSuggestions(makeSuggestions("pkg1", "pkg2", "pkg3"));
         mDashboardAdapter.onPause();
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         verify(mFactory.metricsFeatureProvider, times(7)).action(
                 any(Context.class), mActionCategoryCaptor.capture(),
@@ -273,8 +222,7 @@
     public void testSuggestionsLogs_ExpandedAfterPauseAndPausedAgain() {
         setupSuggestions(makeSuggestions("pkg1", "pkg2", "pkg3"));
         mDashboardAdapter.onPause();
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         mDashboardAdapter.onPause();
         verify(mFactory.metricsFeatureProvider, times(10)).action(
@@ -301,8 +249,7 @@
     @Test
     public void testSuggestionsLogs_ExpandedWithLessThanDefaultShown() {
         setupSuggestions(makeSuggestions("pkg1"));
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         verify(mFactory.metricsFeatureProvider, times(1)).action(
                 any(Context.class), mActionCategoryCaptor.capture(),
@@ -318,8 +265,7 @@
     @Test
     public void testSuggestionsLogs_ExpandedWithLessThanDefaultShownAndPaused() {
         setupSuggestions(makeSuggestions("pkg1"));
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         mDashboardAdapter.onPause();
         verify(mFactory.metricsFeatureProvider, times(2)).action(
@@ -338,8 +284,7 @@
     public void testSuggestionsLogs_ExpandedWithLessThanDefaultShownAfterPause() {
         setupSuggestions(makeSuggestions("pkg1"));
         mDashboardAdapter.onPause();
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         verify(mFactory.metricsFeatureProvider, times(3)).action(
                 any(Context.class), mActionCategoryCaptor.capture(),
@@ -358,8 +303,7 @@
     public void testSuggestionsLogs_ExpandedWithLessThanDefaultShownAfterPauseAndPausedAgain() {
         setupSuggestions(makeSuggestions("pkg1"));
         mDashboardAdapter.onPause();
-        mDashboardAdapter.onBindSuggestionHeader(
-                mSuggestionHolder, mSuggestionHeaderData);
+        mDashboardAdapter.onBindSuggestionConditionHeader(mSuggestionHolder, mSuggestionHeaderData);
         mSuggestionHolder.itemView.callOnClick();
         mDashboardAdapter.onPause();
         verify(mFactory.metricsFeatureProvider, times(4)).action(
@@ -377,81 +321,9 @@
     }
 
     @Test
-    public void testBindViewHolder_inflateRemoteView() {
-        List<Tile> packages = makeSuggestions("pkg1");
-        RemoteViews remoteViews = mock(RemoteViews.class);
-        TextView textView = new TextView(RuntimeEnvironment.application);
-        doReturn(textView).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
-        packages.get(0).remoteViews = remoteViews;
-        mDashboardAdapter.setCategoriesAndSuggestions(Collections.emptyList(), packages);
-        mSuggestionHolder = mDashboardAdapter.onCreateViewHolder(
-                new FrameLayout(RuntimeEnvironment.application),
-                R.layout.suggestion_tile_card);
-
-        mDashboardAdapter.onBindViewHolder(mSuggestionHolder, 2);
-        assertThat(textView.getParent()).isSameAs(mSuggestionHolder.itemView);
-        mSuggestionHolder.itemView.performClick();
-
-        verify(mContext).startSuggestion(any(Intent.class));
-    }
-
-    @Test
-    public void testBindViewHolder_primaryViewHandlesClick() {
-        Context context =
-                new ContextThemeWrapper(RuntimeEnvironment.application, R.style.Theme_Settings);
-
-        List<Tile> packages = makeSuggestions("pkg1");
-        RemoteViews remoteViews = mock(RemoteViews.class);
-        FrameLayout layout = new FrameLayout(context);
-        Button primary = new Button(context);
-        primary.setId(android.R.id.primary);
-        layout.addView(primary);
-        doReturn(layout).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
-        packages.get(0).remoteViews = remoteViews;
-        mDashboardAdapter.setCategoriesAndSuggestions(Collections.emptyList(), packages);
-        mSuggestionHolder = mDashboardAdapter.onCreateViewHolder(
-                new FrameLayout(context),
-                R.layout.suggestion_tile_card);
-
-        mDashboardAdapter.onBindViewHolder(mSuggestionHolder, 2);
-
-        mSuggestionHolder.itemView.performClick();
-        assertThat(ShadowApplication.getInstance().getNextStartedActivity()).isNull();
-        verify(mContext, never()).startSuggestion(any(Intent.class));
-
-        primary.performClick();
-
-        verify(mContext).startSuggestion(any(Intent.class));
-    }
-
-    @Test
-    public void testBindViewHolder_viewsClearedOnRebind() {
-        Context context =
-                new ContextThemeWrapper(RuntimeEnvironment.application, R.style.Theme_Settings);
-
-        List<Tile> packages = makeSuggestions("pkg1");
-        RemoteViews remoteViews = mock(RemoteViews.class);
-        FrameLayout layout = new FrameLayout(context);
-        Button primary = new Button(context);
-        primary.setId(android.R.id.primary);
-        layout.addView(primary);
-        doReturn(layout).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
-        packages.get(0).remoteViews = remoteViews;
-        mDashboardAdapter.setCategoriesAndSuggestions(Collections.emptyList(), packages);
-        mSuggestionHolder = mDashboardAdapter.onCreateViewHolder(
-                new FrameLayout(context),
-                R.layout.suggestion_tile_card);
-
-        mDashboardAdapter.onBindViewHolder(mSuggestionHolder, 2);
-        mDashboardAdapter.onBindViewHolder(mSuggestionHolder, 2);
-
-        ViewGroup itemView = (ViewGroup) mSuggestionHolder.itemView;
-        assertThat(itemView.getChildCount()).isEqualTo(1);
-    }
-
-    @Test
-    public void testSuggestionDismissed_notOnlySuggestion_doNothing() {
-        final DashboardAdapter adapter = spy(new DashboardAdapter(mContext, null, null));
+    public void testSuggestioDismissed_notOnlySuggestion_doNothing() {
+        final DashboardAdapter adapter =
+                spy(new DashboardAdapter(mContext, null, null, null, null));
         adapter.setCategoriesAndSuggestions(
                 new ArrayList<>(), makeSuggestions("pkg1", "pkg2", "pkg3"));
         final DashboardData dashboardData = adapter.mDashboardData;
@@ -464,8 +336,9 @@
     }
 
     @Test
-    public void testSuggestionDismissed_onlySuggestion_updateDashboardData() {
-        DashboardAdapter adapter = spy(new DashboardAdapter(mContext, null, null));
+    public void testSuggestioDismissed_onlySuggestion_updateDashboardData() {
+        DashboardAdapter adapter =
+                spy(new DashboardAdapter(mContext, null, null, null, null));
         adapter.setCategoriesAndSuggestions(new ArrayList<>(), makeSuggestions("pkg1"));
         final DashboardData dashboardData = adapter.mDashboardData;
         reset(adapter); // clear interactions tracking
@@ -492,6 +365,33 @@
         verify(mockIcon).setTint(eq(0x89000000));
     }
 
+    @Test
+    public void testBindConditionAndSuggestion_shouldSetSuggestionAdapterAndNoCrash() {
+        mDashboardAdapter = new DashboardAdapter(mContext, null, null, null, null);
+        final List<Tile> suggestions = makeSuggestions("pkg1");
+        final List<DashboardCategory> categories = new ArrayList<>();
+        final DashboardCategory category = mock(DashboardCategory.class);
+        final List<Tile> tiles = new ArrayList<>();
+        tiles.add(mock(Tile.class));
+        category.tiles = tiles;
+        mDashboardAdapter.setCategoriesAndSuggestions(categories, suggestions);
+
+        final RecyclerView data = mock(RecyclerView.class);
+        when(data.getResources()).thenReturn(mResources);
+        when(data.getContext()).thenReturn(mContext);
+        when(mResources.getDisplayMetrics()).thenReturn(mock(DisplayMetrics.class));
+        final View itemView = mock(View.class);
+        when(itemView.findViewById(R.id.data)).thenReturn(data);
+        final DashboardAdapter.SuggestionAndConditionContainerHolder holder =
+                new DashboardAdapter.SuggestionAndConditionContainerHolder(itemView);
+
+        mDashboardAdapter.onBindConditionAndSuggestion(
+                holder, DashboardAdapter.SUGGESTION_CONDITION_HEADER_POSITION + 1);
+
+        verify(data).setAdapter(any(SuggestionAdapter.class));
+        // should not crash
+    }
+
     private List<Tile> makeSuggestions(String... pkgNames) {
         final List<Tile> suggestions = new ArrayList<>();
         for (String pkgName : pkgNames) {
@@ -505,29 +405,9 @@
 
     private void setupSuggestions(List<Tile> suggestions) {
         mDashboardAdapter.setCategoriesAndSuggestions(new ArrayList<>(), suggestions);
-        mSuggestionHolder = mDashboardAdapter.onCreateViewHolder(
-                new FrameLayout(RuntimeEnvironment.application),
-                mDashboardAdapter.getItemViewType(1));
-    }
-
-    private void makeCondition() {
-        final List<Condition> conditions = new ArrayList<>();
-        Condition condition = mock(Condition.class);
-        when(condition.shouldShow()).thenReturn(true);
-        conditions.add(condition);
-        mDashboardAdapter.setConditions(conditions);
-    }
-
-    private void makeCategory() {
-        List<DashboardCategory> categories = new ArrayList<>();
-        categories.add(new DashboardCategory());
-        mDashboardAdapter.setCategory(categories);
-    }
-
-    private DashboardAdapter.DashboardItemHolder setupSpacer() {
-        Context context = RuntimeEnvironment.application;
-        final View view = LayoutInflater.from(context)
-                .inflate(R.layout.dashboard_header_spacer, new LinearLayout(context), false);
-        return new DashboardAdapter.DashboardItemHolder(view);
+        final Context context = RuntimeEnvironment.application;
+        mSuggestionHolder = new DashboardAdapter.SuggestionAndConditionHeaderHolder(
+                LayoutInflater.from(context).inflate(
+                        R.layout.suggestion_condition_header, new RelativeLayout(context), true));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java b/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java
index 23681bc..3b8672e 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardDataTest.java
@@ -94,7 +94,6 @@
                 .setCategories(categories)
                 .setSuggestions(suggestions)
                 .setSuggestionConditionMode(DashboardData.HEADER_MODE_FULLY_EXPANDED)
-                .setCombineSuggestionAndCondition(true)
                 .build();
 
         mDashboardDataWithTwoConditions = new DashboardData.Builder()
@@ -102,7 +101,6 @@
                 .setCategories(categories)
                 .setSuggestions(suggestions)
                 .setSuggestionConditionMode(DashboardData.HEADER_MODE_FULLY_EXPANDED)
-                .setCombineSuggestionAndCondition(true)
                 .build();
 
         mDashboardDataWithNoItems = new DashboardData.Builder()
@@ -117,7 +115,7 @@
         final DashboardData.SuggestionConditionHeaderData data =
                 new DashboardData.SuggestionConditionHeaderData(
                     mDashboardDataWithOneConditions.getConditions(), 0);
-        final Object[] expectedObjects = {null, data,
+        final Object[] expectedObjects = {data,
             mDashboardDataWithOneConditions.getSuggestions(),
             mDashboardDataWithOneConditions.getConditions(),
             null, mDashboardCategory, mTestCategoryTile};
@@ -127,9 +125,7 @@
                 .isEqualTo(expectedSize);
         for (int i = 0; i < expectedSize; i++) {
             final Object item = mDashboardDataWithOneConditions.getItemEntityByPosition(i);
-            if (item instanceof DashboardData.SuggestionHeaderData
-                || item instanceof List) {
-                // SuggestionHeaderData is created inside when build, we can only use isEqualTo
+            if (item instanceof List) {
                 assertThat(item).isEqualTo(expectedObjects[i]);
             } else if (item instanceof DashboardData.SuggestionConditionHeaderData) {
                 DashboardData.SuggestionConditionHeaderData i1 =
@@ -196,11 +192,11 @@
         // Item in position 1 is the header, which contains the number of conditions, changed from
         // 1 to 2
         testResultData.add(new ListUpdateResult.ResultData(
-                ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 1, 1));
+                ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 0, 1));
         // Item in position 3 is the condition container containing the list of conditions, which
         // gets 1 more item
         testResultData.add(new ListUpdateResult.ResultData(
-            ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 3, 1));
+            ListUpdateResult.ResultData.TYPE_OPERATION_CHANGE, 2, 1));
 
         testDiffUtil(mDashboardDataWithOneConditions,
                 mDashboardDataWithTwoConditions, testResultData);
@@ -211,7 +207,7 @@
         //Build testResultData
         final List<ListUpdateResult.ResultData> testResultData = new ArrayList<>();
         testResultData.add(new ListUpdateResult.ResultData(
-                ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 1, 6));
+                ListUpdateResult.ResultData.TYPE_OPERATION_REMOVE, 0, 6));
 
         testDiffUtil(mDashboardDataWithOneConditions, mDashboardDataWithNoItems, testResultData);
     }
diff --git a/tests/robotests/src/com/android/settings/dashboard/conditional/ConditionAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/conditional/ConditionAdapterTest.java
index 688f078..f0412d6 100644
--- a/tests/robotests/src/com/android/settings/dashboard/conditional/ConditionAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/conditional/ConditionAdapterTest.java
@@ -38,7 +38,6 @@
 import org.robolectric.annotation.Config;
 
 import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
diff --git a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
index a29ac93..c9e3815 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionAdapterTest.java
@@ -15,16 +15,26 @@
  */
 package com.android.settings.dashboard.suggestions;
 
+import android.content.ComponentName;
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.drawable.Icon;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ContextThemeWrapper;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.FrameLayout;
 import android.widget.LinearLayout;
+import android.widget.RemoteViews;
+import android.widget.TextView;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.dashboard.DashboardAdapter;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settingslib.drawer.Tile;
 
 import java.util.ArrayList;
@@ -33,15 +43,20 @@
 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.shadows.ShadowApplication;
 
 import static com.google.common.truth.Truth.assertThat;
 import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
@@ -51,9 +66,12 @@
     private Tile mSuggestion1;
     @Mock
     private Tile mSuggestion2;
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private SettingsActivity mActivity;
 
     private Context mContext;
     private SuggestionAdapter mSuggestionAdapter;
+    private DashboardAdapter.DashboardItemHolder mSuggestionHolder;
     private List<Tile> mOneSuggestion;
     private List<Tile> mTwoSuggestions;
 
@@ -61,6 +79,8 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         mContext = RuntimeEnvironment.application;
+        FakeFeatureFactory.setupForTest(mActivity);
+
         mSuggestion1.title = "Test Suggestion 1";
         mSuggestion1.icon = mock(Icon.class);
         mSuggestion2.title = "Test Suggestion 2";
@@ -92,13 +112,96 @@
     public void onBindViewHolder_shouldSetListener() {
         final View view = spy(LayoutInflater.from(mContext).inflate(
             R.layout.suggestion_tile_new_ui, new LinearLayout(mContext), true));
-        final DashboardAdapter.DashboardItemHolder viewHolder =
-            new DashboardAdapter.DashboardItemHolder(view);
+        mSuggestionHolder = new DashboardAdapter.DashboardItemHolder(view);
         mSuggestionAdapter = new SuggestionAdapter(mContext, mOneSuggestion, new ArrayList<>());
 
-        mSuggestionAdapter.onBindViewHolder(viewHolder, 0);
+        mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
 
         verify(view).setOnClickListener(any(View.OnClickListener.class));
     }
 
+    @Test
+    public void onBindViewHolder_shouldInflateRemoteView() {
+        List<Tile> packages = makeSuggestions("pkg1");
+        RemoteViews remoteViews = mock(RemoteViews.class);
+        TextView textView = new TextView(RuntimeEnvironment.application);
+        doReturn(textView).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
+        packages.get(0).remoteViews = remoteViews;
+        setupSuggestions(mActivity, packages);
+
+        mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
+
+        assertThat(textView.getParent()).isSameAs(mSuggestionHolder.itemView);
+        mSuggestionHolder.itemView.performClick();
+
+        verify(mActivity).startSuggestion(any(Intent.class));
+    }
+
+    @Test
+    public void onBindViewHolder_primaryViewShouldHandleClick() {
+        Context context =
+                new ContextThemeWrapper(RuntimeEnvironment.application, R.style.Theme_Settings);
+
+        List<Tile> packages = makeSuggestions("pkg1");
+        RemoteViews remoteViews = mock(RemoteViews.class);
+        FrameLayout layout = new FrameLayout(context);
+        Button primary = new Button(context);
+        primary.setId(android.R.id.primary);
+        layout.addView(primary);
+        doReturn(layout).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
+        packages.get(0).remoteViews = remoteViews;
+        setupSuggestions(mActivity, packages);
+
+        mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
+        mSuggestionHolder.itemView.performClick();
+
+        assertThat(ShadowApplication.getInstance().getNextStartedActivity()).isNull();
+        verify(mActivity, never()).startSuggestion(any(Intent.class));
+
+        primary.performClick();
+
+        verify(mActivity).startSuggestion(any(Intent.class));
+    }
+
+    @Test
+    public void onBindViewHolder_viewsShouldClearOnRebind() {
+        Context context =
+                new ContextThemeWrapper(RuntimeEnvironment.application, R.style.Theme_Settings);
+
+        List<Tile> packages = makeSuggestions("pkg1");
+        RemoteViews remoteViews = mock(RemoteViews.class);
+        FrameLayout layout = new FrameLayout(context);
+        Button primary = new Button(context);
+        primary.setId(android.R.id.primary);
+        layout.addView(primary);
+        doReturn(layout).when(remoteViews).apply(any(Context.class), any(ViewGroup.class));
+        packages.get(0).remoteViews = remoteViews;
+        setupSuggestions(mActivity, packages);
+
+        mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
+        mSuggestionAdapter.onBindViewHolder(mSuggestionHolder, 0);
+
+        ViewGroup itemView = (ViewGroup) mSuggestionHolder.itemView;
+        assertThat(itemView.getChildCount()).isEqualTo(1);
+    }
+
+    private void setupSuggestions(Context context, List<Tile> suggestions) {
+        mSuggestionAdapter = new SuggestionAdapter(context, suggestions, new ArrayList<>());
+        mSuggestionHolder = mSuggestionAdapter.onCreateViewHolder(
+                new FrameLayout(RuntimeEnvironment.application),
+                mSuggestionAdapter.getItemViewType(0));
+    }
+
+    private List<Tile> makeSuggestions(String... pkgNames) {
+        final List<Tile> suggestions = new ArrayList<>();
+        for (String pkgName : pkgNames) {
+            Tile suggestion = new Tile();
+            suggestion.intent = new Intent("action");
+            suggestion.intent.setComponent(new ComponentName(pkgName, "cls"));
+            suggestions.add(suggestion);
+            suggestion.icon = mock(Icon.class);
+        }
+        return suggestions;
+    }
+
 }
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 c20e5c4..025e600 100644
--- a/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/suggestions/SuggestionDismissControllerTest.java
@@ -80,7 +80,7 @@
     @Test
     public void getSwipeDirs_isSuggestionTile_shouldReturnDirection() {
         final RecyclerView.ViewHolder vh = mock(RecyclerView.ViewHolder.class);
-        when(vh.getItemViewType()).thenReturn(R.layout.suggestion_tile);
+        when(vh.getItemViewType()).thenReturn(R.layout.suggestion_tile_new_ui);
 
         assertThat(mController.getSwipeDirs(mRecyclerView, vh))
                 .isEqualTo(ItemTouchHelper.START | ItemTouchHelper.END);
@@ -98,7 +98,7 @@
     @Test
     public void getSwipeDirs_isNotSuggestionTile_shouldReturn0() {
         final RecyclerView.ViewHolder vh = mock(RecyclerView.ViewHolder.class);
-        when(vh.getItemViewType()).thenReturn(R.layout.condition_card);
+        when(vh.getItemViewType()).thenReturn(R.layout.condition_tile_new_ui);
 
         assertThat(mController.getSwipeDirs(mRecyclerView, vh))
                 .isEqualTo(0);
diff --git a/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java b/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java
index 84dfbfd..344914a 100644
--- a/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java
+++ b/tests/robotests/src/com/android/settings/fingerprint/FingerprintEnrollFindSensorTest.java
@@ -25,15 +25,16 @@
 
 import android.content.ComponentName;
 import android.content.Intent;
+import android.hardware.fingerprint.FingerprintManager;
 import android.hardware.fingerprint.FingerprintManager.EnrollmentCallback;
 import android.os.CancellationSignal;
 import android.widget.Button;
 
 import com.android.settings.R;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.password.ChooseLockSettingsHelper;
 import com.android.settings.password.IFingerprintManager;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.testutils.shadow.SettingsShadowResources;
 import com.android.settings.testutils.shadow.ShadowDynamicIndexableContentMonitor;
 import com.android.settings.testutils.shadow.ShadowEventLogWriter;
@@ -92,13 +93,26 @@
     }
 
     @Test
-    public void clickNextAndFingerprint_shouldNotCrash() {
+    public void enrollFingerprint_shouldProceed() {
         EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
 
-        Button nextButton = mActivity.findViewById(R.id.next_button);
-        nextButton.performClick();
         enrollmentCallback.onEnrollmentProgress(123);
-        nextButton.performClick();
+        enrollmentCallback.onEnrollmentError(FingerprintManager.FINGERPRINT_ERROR_CANCELED, "test");
+
+        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));
+    }
+
+    @Test
+    public void enrollFingerprintTwice_shouldStartOneEnrolling() {
+        EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
+
+        enrollmentCallback.onEnrollmentProgress(123);
+        enrollmentCallback.onEnrollmentProgress(123);  // A second enroll should be a no-op
 
         ShadowActivity shadowActivity = Shadows.shadowOf(mActivity);
         IntentForResult startedActivity =
@@ -120,9 +134,7 @@
     public void layoutWithoutAnimation_shouldNotCrash() {
         EnrollmentCallback enrollmentCallback = verifyAndCaptureEnrollmentCallback();
         enrollmentCallback.onEnrollmentProgress(123);
-
-        Button nextButton = mActivity.findViewById(R.id.next_button);
-        nextButton.performClick();
+        enrollmentCallback.onEnrollmentError(FingerprintManager.FINGERPRINT_ERROR_CANCELED, "test");
 
         ShadowActivity shadowActivity = Shadows.shadowOf(mActivity);
         IntentForResult startedActivity =
@@ -132,6 +144,16 @@
                 .isEqualTo(new ComponentName(application, FingerprintEnrollEnrolling.class));
     }
 
+    @Test
+    public void clickSkip_shouldReturnResultSkip() {
+        Button skipButton = mActivity.findViewById(R.id.skip_button);
+        skipButton.performClick();
+
+        ShadowActivity shadowActivity = Shadows.shadowOf(mActivity);
+        assertThat(shadowActivity.getResultCode()).named("result code")
+                .isEqualTo(FingerprintEnrollBase.RESULT_SKIP);
+    }
+
     private EnrollmentCallback verifyAndCaptureEnrollmentCallback() {
         ArgumentCaptor<EnrollmentCallback> callbackCaptor =
                 ArgumentCaptor.forClass(EnrollmentCallback.class);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index 18c09b0..013d379 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -46,6 +46,7 @@
 import org.robolectric.annotation.Config;
 
 import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.eq;
@@ -81,7 +82,7 @@
     private BatteryHeaderPreferenceController mController;
     private Context mContext;
     private BatteryMeterView mBatteryMeterView;
-    private TextView mTimeText;
+    private TextView mBatteryPercentText;
     private TextView mSummary;
     private TextView mSummary2;
     private LayoutPreference mBatteryLayoutPref;
@@ -95,7 +96,7 @@
         mLifecycle = new Lifecycle();
         mContext = spy(RuntimeEnvironment.application);
         mBatteryMeterView = new BatteryMeterView(mContext);
-        mTimeText = new TextView(mContext);
+        mBatteryPercentText = new TextView(mContext);
         mSummary = new TextView(mContext);
         ShadowEntityHeaderController.setUseMock(mEntityHeaderController);
         mSummary2 = new TextView(mContext);
@@ -103,6 +104,7 @@
         mBatteryIntent = new Intent();
         mBatteryIntent.putExtra(BatteryManager.EXTRA_LEVEL, BATTERY_LEVEL);
         mBatteryIntent.putExtra(BatteryManager.EXTRA_SCALE, 100);
+        mBatteryIntent.putExtra(BatteryManager.EXTRA_PLUGGED, 1);
         doReturn(mBatteryIntent).when(mContext).registerReceiver(any(), any());
 
         mBatteryLayoutPref = new LayoutPreference(mContext, R.layout.battery_header);
@@ -114,7 +116,7 @@
         mController = new BatteryHeaderPreferenceController(
                 mContext, mActivity, mPreferenceFragment, mLifecycle);
         mController.mBatteryMeterView = mBatteryMeterView;
-        mController.mTimeText = mTimeText;
+        mController.mBatteryPercentText = mBatteryPercentText;
         mController.mSummary1 = mSummary;
         mController.mSummary2 = mSummary2;
     }
@@ -175,4 +177,13 @@
 
         verify(mEntityHeaderController).styleActionBar(mActivity);
     }
+
+    @Test
+    public void testQuickUpdateHeaderPreference_showBatteryLevelAndChargingState() {
+        mController.quickUpdateHeaderPreference();
+
+        assertThat(mBatteryMeterView.getBatteryLevel()).isEqualTo(BATTERY_LEVEL);
+        assertThat(mBatteryMeterView.getCharging()).isTrue();
+        assertThat(mBatteryPercentText.getText()).isEqualTo("60%");
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
index cf1146e..715e4f0 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryInfoTest.java
@@ -164,4 +164,15 @@
         assertThat(info.remainingLabel.toString())
                 .isEqualTo(TEST_CHARGE_TIME_REMAINING_STRINGIFIED);
     }
+
+    @Test
+    public void testGetBatteryInfo_pluggedInWithFullBattery_onlyShowBatteryLevel() {
+        mChargingBatteryBroadcast.putExtra(BatteryManager.EXTRA_LEVEL, 100);
+
+        BatteryInfo info = BatteryInfo.getBatteryInfo(mContext, mChargingBatteryBroadcast,
+                mBatteryStats, SystemClock.elapsedRealtime() * 1000, false /* shortString */,
+                1000, false /* basedOnUsage */);
+
+        assertThat(info.chargeLabel).isEqualTo("100%");
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index 8dbb3be..151463a 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.os.SystemClock;
 import android.text.format.DateUtils;
 
 import com.android.internal.os.BatterySipper;
@@ -80,6 +81,7 @@
     private static final long TIME_EXPECTED_BACKGROUND = 6000;
     private static final long TIME_EXPECTED_ALL = 7500;
     private static final double BATTERY_SCREEN_USAGE = 300;
+    private static final double BATTERY_IDLE_USAGE = 600;
     private static final double BATTERY_SYSTEM_USAGE = 600;
     private static final double BATTERY_OVERACCOUNTED_USAGE = 500;
     private static final double BATTERY_UNACCOUNTED_USAGE = 700;
@@ -95,6 +97,8 @@
     @Mock
     private BatteryStats.Uid mUid;
     @Mock
+    private BatteryStats.Timer mTimer;
+    @Mock
     private BatterySipper mNormalBatterySipper;
     @Mock
     private BatterySipper mWifiBatterySipper;
@@ -110,6 +114,8 @@
     private BatterySipper mSystemBatterySipper;
     @Mock
     private BatterySipper mCellBatterySipper;
+    @Mock
+    private BatterySipper mIdleBatterySipper;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -161,6 +167,9 @@
         mUnaccountedBatterySipper.drainType = BatterySipper.DrainType.UNACCOUNTED;
         mUnaccountedBatterySipper.totalPowerMah = BATTERY_UNACCOUNTED_USAGE;
 
+        mIdleBatterySipper.drainType = BatterySipper.DrainType.IDLE;
+        mIdleBatterySipper.totalPowerMah = BATTERY_IDLE_USAGE;
+
         mBatteryUtils = BatteryUtils.getInstance(RuntimeEnvironment.application);
         mBatteryUtils.mPowerUsageFeatureProvider = mProvider;
 
@@ -209,6 +218,7 @@
         sippers.add(mUnaccountedBatterySipper);
         sippers.add(mWifiBatterySipper);
         sippers.add(mBluetoothBatterySipper);
+        sippers.add(mIdleBatterySipper);
         when(mProvider.isTypeSystem(mSystemBatterySipper))
                 .thenReturn(true);
         doNothing().when(mBatteryUtils).smearScreenBatterySipper(any(), any());
@@ -358,6 +368,17 @@
                 .isEqualTo(R.string.battery_abnormal_location_summary);
     }
 
+    @Test
+    public void testGetForegroundActivityTotalTimeMs_returnMilliseconds() {
+        final long rawRealtimeMs = SystemClock.elapsedRealtime();
+        doReturn(mTimer).when(mUid).getForegroundActivityTimer();
+        doReturn(TIME_SINCE_LAST_FULL_CHARGE_US).when(mTimer)
+                .getTotalTimeLocked(rawRealtimeMs * 1000, BatteryStats.STATS_SINCE_CHARGED);
+
+        assertThat(mBatteryUtils.getForegroundActivityTotalTimeMs(mUid, rawRealtimeMs)).isEqualTo(
+                TIME_SINCE_LAST_FULL_CHARGE_MS);
+    }
+
     private BatterySipper createTestSmearBatterySipper(long activityTime, long topTime,
             double totalPowerMah, int uidCode, boolean isUidNull) {
         final BatterySipper sipper = mock(BatterySipper.class);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
index 7ab505d..aa8607f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageAdvancedTest.java
@@ -121,7 +121,7 @@
         mPowerUsageAdvanced.setUserManager(mUserManager);
         mPowerUsageAdvanced.setBatteryUtils(BatteryUtils.getInstance(mShadowContext));
 
-        mPowerUsageData = new PowerUsageData(UsageType.APP);
+        mPowerUsageData = new PowerUsageData(UsageType.SYSTEM);
         mMaxBatterySipper.totalPowerMah = TYPE_BLUETOOTH_USAGE;
         mMaxBatterySipper.drainType = DrainType.BLUETOOTH;
         mNormalBatterySipper.drainType = DrainType.SCREEN;
@@ -326,9 +326,16 @@
     }
 
     @Test
-    public void testShouldHideSummary_typeNormal_returnFalse() {
+    public void testShouldHideSummary_typeApp_returnTrue() {
         mPowerUsageData.usageType = UsageType.APP;
 
+        assertThat(mPowerUsageAdvanced.shouldHideSummary(mPowerUsageData)).isTrue();
+    }
+
+    @Test
+    public void testShouldHideSummary_typeNormal_returnFalse() {
+        mPowerUsageData.usageType = UsageType.SYSTEM;
+
         assertThat(mPowerUsageAdvanced.shouldHideSummary(mPowerUsageData)).isFalse();
     }
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
index 5225a74..eb22d22 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java
@@ -16,6 +16,7 @@
 package com.android.settings.fuelgauge;
 
 import java.util.List;
+
 import android.app.LoaderManager;
 import android.content.Context;
 import android.content.Intent;
@@ -514,6 +515,27 @@
         assertThat(preference.showAnomalyIcon()).isTrue();
     }
 
+    @Test
+    public void testShouldHideSipper_typeOvercounted_returnTrue() {
+        mNormalBatterySipper.drainType = BatterySipper.DrainType.OVERCOUNTED;
+
+        assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
+    }
+
+    @Test
+    public void testShouldHideSipper_typeUnaccounted_returnTrue() {
+        mNormalBatterySipper.drainType = BatterySipper.DrainType.UNACCOUNTED;
+
+        assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isTrue();
+    }
+
+    @Test
+    public void testShouldHideSipper_typeNormal_returnFalse() {
+        mNormalBatterySipper.drainType = BatterySipper.DrainType.APP;
+
+        assertThat(mFragment.shouldHideSipper(mNormalBatterySipper)).isFalse();
+    }
+
     public static class TestFragment extends PowerUsageSummary {
 
         private Context mContext;
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java
index 365a14a..e8e4bab 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/AnomalyDialogFragmentTest.java
@@ -18,6 +18,10 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+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.robolectric.Shadows.shadowOf;
 
 import android.app.AlertDialog;
@@ -25,12 +29,15 @@
 import android.content.DialogInterface;
 
 import com.android.settings.R;
+import com.android.settings.fuelgauge.anomaly.action.AnomalyAction;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowAlertDialog;
@@ -43,13 +50,21 @@
     private static final String PACKAGE_NAME = "com.android.app";
     private static final String DISPLAY_NAME = "app";
     private static final int UID = 111;
+
+    @Mock
+    private AnomalyUtils mAnomalyUtils;
+    @Mock
+    private AnomalyAction mAnomalyAction;
     private Anomaly mWakeLockAnomaly;
     private Anomaly mWakeupAlarmAnomaly;
+    private Anomaly mBluetoothAnomaly;
     private AnomalyDialogFragment mAnomalyDialogFragment;
     private Context mContext;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
         mContext = RuntimeEnvironment.application;
         mWakeLockAnomaly = new Anomaly.Builder()
                 .setType(Anomaly.AnomalyType.WAKE_LOCK)
@@ -63,6 +78,12 @@
                 .setPackageName(PACKAGE_NAME)
                 .setDisplayName(DISPLAY_NAME)
                 .build();
+        mBluetoothAnomaly = new Anomaly.Builder()
+                .setType(Anomaly.AnomalyType.BLUETOOTH_SCAN)
+                .setUid(UID)
+                .setPackageName(PACKAGE_NAME)
+                .setDisplayName(DISPLAY_NAME)
+                .build();
     }
 
     @Test
@@ -114,4 +135,29 @@
         assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo(
                 mContext.getString(R.string.dlg_cancel));
     }
+
+    @Test
+    public void testOnCreateDialog_bluetoothAnomaly_fireLocationCheckDialog() {
+        mAnomalyDialogFragment = spy(AnomalyDialogFragment.newInstance(mBluetoothAnomaly,
+                0 /* metricskey */));
+        mAnomalyDialogFragment.mAnomalyUtils = mAnomalyUtils;
+        doReturn(mAnomalyAction).when(mAnomalyUtils).getAnomalyAction(anyInt());
+        doNothing().when(mAnomalyDialogFragment).initAnomalyUtils();
+        doReturn(Anomaly.AnomalyActionType.LOCATION_CHECK).when(mAnomalyAction).getActionType();
+
+        FragmentTestUtil.startFragment(mAnomalyDialogFragment);
+
+        final AlertDialog dialog = (AlertDialog) ShadowDialog.getLatestDialog();
+        ShadowAlertDialog shadowDialog = shadowOf(dialog);
+
+        assertThat(shadowDialog.getMessage()).isEqualTo(
+                mContext.getString(R.string.dialog_location_message,
+                        mWakeLockAnomaly.displayName));
+        assertThat(shadowDialog.getTitle()).isEqualTo(
+                mContext.getString(R.string.dialog_location_title));
+        assertThat(dialog.getButton(DialogInterface.BUTTON_POSITIVE).getText()).isEqualTo(
+                mContext.getString(R.string.dialog_location_ok));
+        assertThat(dialog.getButton(DialogInterface.BUTTON_NEGATIVE).getText()).isEqualTo(
+                mContext.getString(R.string.dlg_cancel));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/action/AnomalyActionTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/action/AnomalyActionTest.java
new file mode 100644
index 0000000..8db1a8c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/action/AnomalyActionTest.java
@@ -0,0 +1,98 @@
+/*
+ * 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.action;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.verify;
+
+import android.app.AppOpsManager;
+import android.content.Context;
+import android.util.Pair;
+
+import com.android.internal.logging.nano.MetricsProto;
+import com.android.settings.TestConfig;
+import com.android.settings.fuelgauge.anomaly.Anomaly;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+
+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;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class AnomalyActionTest {
+    private static final String PACKAGE_NAME = "com.android.app";
+    private static final int UID = 111;
+    private static final int ACTION_KEY = 2;
+    private static final int METRIC_KEY = 3;
+
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private Context mContext;
+    @Mock
+    private AppOpsManager mAppOpsManagerr;
+    private Anomaly mAnomaly;
+    private TestAnomalyAction mTestAnomalyAction;
+    private FakeFeatureFactory mFeatureFactory;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+
+        FakeFeatureFactory.setupForTest(mContext);
+        mFeatureFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
+        doReturn(mAppOpsManagerr).when(mContext).getSystemService(Context.APP_OPS_SERVICE);
+
+        mAnomaly = new Anomaly.Builder()
+                .setUid(UID)
+                .setPackageName(PACKAGE_NAME)
+                .build();
+        mTestAnomalyAction = new TestAnomalyAction(mContext);
+    }
+
+    @Test
+    public void testHandlePositiveAction_logAction() {
+        mTestAnomalyAction.handlePositiveAction(mAnomaly, METRIC_KEY);
+
+        verify(mFeatureFactory.metricsFeatureProvider).action(mContext, ACTION_KEY, PACKAGE_NAME,
+                Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, METRIC_KEY));
+    }
+
+    /**
+     * Test class for {@link AnomalyAction}
+     */
+    public class TestAnomalyAction extends AnomalyAction {
+        public TestAnomalyAction(Context context) {
+            super(context);
+            mActionMetricKey = ACTION_KEY;
+        }
+
+        @Override
+        public boolean isActionActive(Anomaly anomaly) {
+            return false;
+        }
+
+        @Override
+        public int getActionType() {
+            return 0;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
index 941e9cd..a687e2f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/BluetoothScanAnomalyDetectorTest.java
@@ -106,7 +106,8 @@
         mUsageList.add(mTargetSipper);
         doReturn(mUsageList).when(mBatteryStatsHelper).getUsageList();
 
-        mBluetoothScanAnomalyDetector = spy(new BluetoothScanAnomalyDetector(mContext, mPolicy));
+        mBluetoothScanAnomalyDetector = spy(
+                new BluetoothScanAnomalyDetector(mContext, mPolicy, mAnomalyAction));
         mBluetoothScanAnomalyDetector.mBatteryUtils = mBatteryUtils;
         mBluetoothScanAnomalyDetector.mAnomalyAction = mAnomalyAction;
         doReturn(false).when(mBatteryUtils).shouldHideSipper(any());
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
index 21b2e54..e7c2664 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/anomaly/checker/WakeupAlarmAnomalyDetectorTest.java
@@ -59,9 +59,10 @@
     private static final int ANOMALY_UID = 111;
     private static final int NORMAL_UID = 222;
     private static final int TARGET_UID = 333;
-    private static final long RUNNING_TIME_MS = 2 * DateUtils.HOUR_IN_MILLIS;
+    private static final long RUNNING_TIME_MS =
+            1 * DateUtils.HOUR_IN_MILLIS + 10 * DateUtils.MINUTE_IN_MILLIS;
     private static final int ANOMALY_WAKEUP_COUNT = 500;
-    private static final int NORMAL_WAKEUP_COUNT = 50;
+    private static final int NORMAL_WAKEUP_COUNT = 61;
     @Mock
     private BatteryStatsHelper mBatteryStatsHelper;
     @Mock
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
index e7ac835..bd48a25 100644
--- a/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/AssistGesturePreferenceControllerTest.java
@@ -16,12 +16,18 @@
 
 package com.android.settings.gestures;
 
+import static android.provider.Settings.Secure.ASSIST_GESTURE_ENABLED;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
 import android.content.Context;
 import android.provider.Settings;
 
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -32,11 +38,6 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadows.ShadowApplication;
 
-import static android.provider.Settings.Secure.ASSIST_GESTURE_ENABLED;
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
 public class AssistGesturePreferenceControllerTest {
@@ -53,12 +54,13 @@
         MockitoAnnotations.initMocks(this);
         FakeFeatureFactory.setupForTest(mContext);
         mFactory = (FakeFeatureFactory) FakeFeatureFactory.getFactory(mContext);
-        mController = new AssistGesturePreferenceController(mContext, null, KEY_ASSIST);
+        mController = new AssistGesturePreferenceController(mContext, null, KEY_ASSIST, false);
     }
 
     @Test
     public void isAvailable_whenSupported_shouldReturnTrue() {
-        when(mFactory.assistGestureFeatureProvider.isSupported(mContext)).thenReturn(true);
+        mController.mAssistOnly = false;
+        when(mFactory.assistGestureFeatureProvider.isSensorAvailable(mContext)).thenReturn(true);
         assertThat(mController.isAvailable()).isTrue();
     }
 
@@ -73,7 +75,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, KEY_ASSIST);
+        mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST, false);
 
         assertThat(mController.isSwitchPrefEnabled()).isTrue();
     }
@@ -83,7 +85,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, KEY_ASSIST);
+        mController = new AssistGesturePreferenceController(context, null, KEY_ASSIST, false);
 
         assertThat(mController.isSwitchPrefEnabled()).isFalse();
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java
index 17fa17b..49fd214 100644
--- a/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/AssistGestureSettingsTest.java
@@ -57,7 +57,6 @@
 
     @Test
     public void testGetPreferenceScreenResId() {
-        when(mFeatureProvider.getPreferenceResourceId()).thenReturn(R.xml.assist_gesture_settings);
         assertThat(mSettings.getPreferenceScreenResId())
                 .isEqualTo(R.xml.assist_gesture_settings);
     }
@@ -76,7 +75,6 @@
                         ShadowApplication.getInstance().getApplicationContext(),
                         true /* enabled */);
 
-        when(mFeatureProvider.getPreferenceResourceId()).thenReturn(R.xml.assist_gesture_settings);
         assertThat(indexRes).isNotNull();
         assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
     }
diff --git a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
index b3af6b8..b4a4638 100644
--- a/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/language/LanguageAndInputSettingsTest.java
@@ -21,6 +21,7 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.res.Resources;
 import android.hardware.input.InputManager;
 import android.os.UserManager;
 import android.provider.Settings;
@@ -163,27 +164,42 @@
             (FakeFeatureFactory) FakeFeatureFactory.getFactory(mActivity);
         when(featureFactory.assistGestureFeatureProvider.isSupported(any(Context.class)))
             .thenReturn(true);
+        when(featureFactory.assistGestureFeatureProvider.isSensorAvailable(any(Context.class)))
+                .thenReturn(true);
 
         final SummaryLoader loader = mock(SummaryLoader.class);
         SummaryLoader.SummaryProvider provider = mFragment.SUMMARY_PROVIDER_FACTORY
                 .createSummaryProvider(mActivity, loader);
 
         ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_ENABLED, 0);
+        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED, 0);
         provider.setListening(true);
         verify(mActivity).getString(R.string.language_input_gesture_summary_off);
 
         ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_ENABLED, 1);
+        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED, 0);
         provider.setListening(true);
-        verify(mActivity).getString(R.string.language_input_gesture_summary_on_with_assist);
+        verify(mActivity).getString(
+                R.string.language_input_gesture_summary_on_with_assist);
+
+        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_ENABLED, 0);
+        ShadowSecureSettings.putInt(null, Settings.Secure.ASSIST_GESTURE_SILENCE_ALERTS_ENABLED, 1);
+        provider.setListening(true);
+        verify(mActivity).getString(
+                R.string.language_input_gesture_summary_on_non_assist);
     }
 
     @Test
     public void testNonIndexableKeys_existInXmlLayout() {
         final Context context = spy(RuntimeEnvironment.application);
+        final Resources res = spy(RuntimeEnvironment.application.getResources());
         //(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);
+        doReturn(res).when(context).getResources();
+        doReturn(false).when(res)
+            .getBoolean(com.android.internal.R.bool.config_supportSystemNavigationKeys);
         final List<String> niks = LanguageAndInputSettings.SEARCH_INDEX_DATA_PROVIDER
                 .getNonIndexableKeys(context);
         final int xmlId = (new LanguageAndInputSettings()).getPreferenceScreenResId();
diff --git a/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java b/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
index 7fb4f44..1aed11d 100644
--- a/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
+++ b/tests/robotests/src/com/android/settings/search/CursorToSearchResultConverterTest.java
@@ -244,7 +244,7 @@
             final InlineSwitchPayload newPayload = (InlineSwitchPayload) result.payload;
             final Intent rebuiltIntent = newPayload.getIntent();
             assertThat(newPayload.mSettingKey).isEqualTo(uri);
-            assertThat(newPayload.mInlineType).isEqualTo(type);
+            assertThat(newPayload.getType()).isEqualTo(type);
             assertThat(newPayload.mSettingSource).isEqualTo(source);
             assertThat(newPayload.isStandard()).isTrue();
             assertThat(newPayload.getAvailability()).isEqualTo(Availability.AVAILABLE);
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java b/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
index 8c31e6e..729541c 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseIndexingManagerTest.java
@@ -35,6 +35,7 @@
 import android.util.ArrayMap;
 
 import com.android.settings.R;
+import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.DatabaseTestUtils;
@@ -131,6 +132,7 @@
         mDb = IndexDatabaseHelper.getInstance(mContext).getWritableDatabase();
 
         doReturn(mPackageManager).when(mContext).getPackageManager();
+        FakeFeatureFactory.setupForTest(mContext);
     }
 
     @After
diff --git a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
index ad89bfe..90f6e87 100644
--- a/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/search/DatabaseResultLoaderTest.java
@@ -22,11 +22,11 @@
 import android.content.Intent;
 import android.database.sqlite.SQLiteDatabase;
 
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.dashboard.SiteMapManager;
 import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.After;
 import org.junit.Before;
@@ -115,14 +115,6 @@
     }
 
     @Test
-    public void testSpecialCaseSpace_matches() {
-        insertSpecialCase("space");
-        DatabaseResultLoader loader = new DatabaseResultLoader(mContext, " space ",
-                mSiteMapManager);
-        assertThat(loader.loadInBackground().size()).isEqualTo(1);
-    }
-
-    @Test
     public void testSpecialCaseDash_matchesWordNoDash() {
         insertSpecialCase("wi-fi calling");
         DatabaseResultLoader loader = new DatabaseResultLoader(mContext, "wifi", mSiteMapManager);
diff --git a/tests/robotests/src/com/android/settings/search/HeaderDecoratorTest.java b/tests/robotests/src/com/android/settings/search/HeaderDecoratorTest.java
deleted file mode 100644
index 61536b7..0000000
--- a/tests/robotests/src/com/android/settings/search/HeaderDecoratorTest.java
+++ /dev/null
@@ -1,80 +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.search;
-
-import android.graphics.Rect;
-import android.support.v7.widget.RecyclerView;
-import android.view.View;
-
-import com.android.settings.R;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.TestConfig;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.annotation.Config;
-
-import static com.google.common.truth.Truth.assertThat;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.when;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
-public class HeaderDecoratorTest {
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private View mView;
-    @Mock
-    private RecyclerView mRecyclerView;
-    @Mock
-    private RecyclerView.LayoutParams mLayoutParams;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        when(mView.getLayoutParams()).thenReturn(mLayoutParams);
-    }
-
-    @Test
-    public void testgetItemOffsets_positionZero_headerAdded() {
-        HeaderDecorator decorator = new HeaderDecorator();
-        Rect outRect = new Rect();
-        when(mRecyclerView.getChildAdapterPosition(any(View.class))).thenReturn(0);
-        when(mView.getContext().obtainStyledAttributes(any(int[].class))
-                .getDimensionPixelSize(0, 0)).thenReturn(20);
-        when(mView.getContext().getResources().getDimensionPixelSize(R.dimen.search_bar_margin))
-                .thenReturn(5);
-
-        decorator.getItemOffsets(outRect, mView, mRecyclerView, null);
-
-        assertThat(outRect).isEqualTo(new Rect(0, 30, 0, 0));
-    }
-
-    @Test
-    public void testgetItemOffsets_positionGreaterThanZero_noDecoration() {
-        HeaderDecorator decorator = new HeaderDecorator();
-        Rect outRect = new Rect();
-        when(mRecyclerView.getChildAdapterPosition(any(View.class))).thenReturn(1);
-
-        decorator.getItemOffsets(outRect, mView, mRecyclerView, null);
-
-        assertThat(outRect).isEqualTo(new Rect(0, 0, 0, 0));
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java b/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java
new file mode 100644
index 0000000..60e24f9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/InlineListPayloadTest.java
@@ -0,0 +1,107 @@
+package com.android.settings.search;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Parcel;
+import com.android.settings.TestConfig;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class InlineListPayloadTest {
+
+    private static final String DUMMY_SETTING = "inline_list_key";
+
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+    }
+
+    @Test
+    public void testConstructor_DataRetained() {
+        final String uri = "test.com";
+        final int type = ResultPayload.PayloadType.INLINE_LIST;
+        final int source = ResultPayload.SettingsSource.SYSTEM;
+        final String intentKey = "key";
+        final String intentVal = "value";
+        final Intent intent = new Intent();
+        intent.putExtra(intentKey, intentVal);
+
+        InlineListPayload payload = new InlineListPayload(uri, source,
+                intent, true /* isAvailable */, 1);
+
+        final Intent retainedIntent = payload.getIntent();
+        assertThat(payload.mSettingKey).isEqualTo(uri);
+        assertThat(payload.getType()).isEqualTo(type);
+        assertThat(payload.mSettingSource).isEqualTo(source);
+        assertThat(payload.getAvailability()).isEqualTo(ResultPayload.Availability.AVAILABLE);
+        assertThat(retainedIntent.getStringExtra(intentKey)).isEqualTo(intentVal);
+    }
+
+    @Test
+    public void testParcelConstructor_DataRetained() {
+        String uri = "test.com";
+        int type = ResultPayload.PayloadType.INLINE_LIST;
+        int source = ResultPayload.SettingsSource.SYSTEM;
+        final String intentKey = "key";
+        final String intentVal = "value";
+        final Intent intent = new Intent();
+        intent.putExtra(intentKey, intentVal);
+
+        Parcel parcel = Parcel.obtain();
+        parcel.writeParcelable(intent, 0);
+        parcel.writeString(uri);
+        parcel.writeInt(source);
+        parcel.writeInt(InlineSwitchPayload.TRUE);
+        parcel.writeInt(InlineSwitchPayload.TRUE);
+        parcel.setDataPosition(0);
+
+        InlineListPayload payload = InlineListPayload
+                .CREATOR.createFromParcel(parcel);
+
+        final Intent builtIntent = payload.getIntent();
+        assertThat(payload.mSettingKey).isEqualTo(uri);
+        assertThat(payload.getType()).isEqualTo(type);
+        assertThat(payload.mSettingSource).isEqualTo(source);
+        assertThat(payload.getAvailability()).isEqualTo(ResultPayload.Availability.AVAILABLE);
+        assertThat(builtIntent.getStringExtra(intentKey)).isEqualTo(intentVal);
+    }
+
+    @Test
+    public void testInputStandardization_inputDoesntChange() {
+        InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
+                ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
+                3 /* numOptions */);
+        int input = 2;
+
+        assertThat(payload.standardizeInput(input)).isEqualTo(input);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testSetSystem_negativeValue_throwsError() {
+        InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
+                ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
+                3 /* numOptions */);
+
+        payload.setValue(mContext, -1);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void testSetSystem_exceedsMaxValue_throwsError() {
+        int maxOptions = 4;
+        InlineListPayload payload = new InlineListPayload(DUMMY_SETTING,
+                ResultPayload.SettingsSource.SYSTEM, null /* intent */, true /* isDeviceSupport */,
+                maxOptions /* numOptions */);
+
+        payload.setValue(mContext, maxOptions + 1);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java b/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java
new file mode 100644
index 0000000..b2a6211
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/search/InlinePayloadTest.java
@@ -0,0 +1,127 @@
+package com.android.settings.search;
+
+import android.content.Context;
+import android.content.ContentResolver;
+import android.content.Intent;
+import android.os.Parcel;
+import android.provider.Settings;
+import com.android.settings.TestConfig;
+import com.android.settings.search.ResultPayload.SettingsSource;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+import static android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE;
+import static com.google.common.truth.Truth.assertThat;
+
+@RunWith(SettingsRobolectricTestRunner.class)
+@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
+public class InlinePayloadTest {
+
+    private Context mContext;
+
+    private final String KEY = "key";
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+    }
+
+    @Test
+    public void testGetSecure_returnsSecureSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
+        int currentValue = 2;
+        Settings.Secure.putInt(mContext.getContentResolver(), KEY, currentValue);
+
+        int newValue = payload.getValue(mContext);
+
+        assertThat(newValue).isEqualTo(currentValue);
+    }
+
+    @Test
+    public void testGetGlobal_returnsGlobalSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.GLOBAL);
+        int currentValue = 2;
+        Settings.Global.putInt(mContext.getContentResolver(), KEY, currentValue);
+
+        int newValue = payload.getValue(mContext);
+
+        assertThat(newValue).isEqualTo(currentValue);
+    }
+
+    @Test
+    public void testGetSystem_returnsSystemSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.SYSTEM);
+        int currentValue = 2;
+        Settings.System.putInt(mContext.getContentResolver(), KEY, currentValue);
+
+        int newValue = payload.getValue(mContext);
+
+        assertThat(newValue).isEqualTo(currentValue);
+    }
+
+    @Test
+    public void testSetSecure_updatesSecureSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
+        int newValue = 1;
+        ContentResolver resolver = mContext.getContentResolver();
+        Settings.Secure.putInt(resolver, KEY, 0);
+
+        payload.setValue(mContext, newValue);
+        int updatedValue = Settings.System.getInt(resolver, KEY, -1);
+
+        assertThat(updatedValue).isEqualTo(newValue);
+    }
+
+    @Test
+    public void testSetGlobal_updatesGlobalSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.GLOBAL);
+        int newValue = 1;
+        ContentResolver resolver = mContext.getContentResolver();
+        Settings.Global.putInt(resolver, KEY, 0);
+
+        payload.setValue(mContext, newValue);
+        int updatedValue = Settings.Global.getInt(resolver, KEY, -1);
+
+        assertThat(updatedValue).isEqualTo(newValue);
+    }
+
+    @Test
+    public void testSetSystem_updatesSystemSetting() {
+        InlinePayload payload = getDummyPayload(SettingsSource.SECURE);
+        int newValue = 1;
+        ContentResolver resolver = mContext.getContentResolver();
+        Settings.System.putInt(resolver, SCREEN_BRIGHTNESS_MODE, 0);
+
+        payload.setValue(mContext, newValue);
+        int updatedValue = Settings.System.getInt(resolver, KEY, -1);
+
+        assertThat(updatedValue).isEqualTo(newValue);
+    }
+
+    private InlinePayload getDummyPayload(int source) {
+        return new ConcreteInlinePayload(KEY, source, null /* intent */,
+                true /* isDeviceSupported */);
+    }
+
+    class ConcreteInlinePayload extends InlinePayload {
+
+        public ConcreteInlinePayload(String key, @SettingsSource int source, Intent intent,
+                boolean isDeviceSupported) {
+            super(key, source, intent, isDeviceSupported);
+        }
+
+        @Override
+        public int getType() {
+            return 0;
+        }
+
+        @Override
+        protected int standardizeInput(int input) throws IllegalArgumentException {
+            return input;
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java b/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
index c4d798b..2c16c13 100644
--- a/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
+++ b/tests/robotests/src/com/android/settings/search/InlineSwitchPayloadTest.java
@@ -64,7 +64,7 @@
         InlineSwitchPayload payload = new InlineSwitchPayload(uri, source, 1, intent, true);
         final Intent retainedIntent = payload.getIntent();
         assertThat(payload.mSettingKey).isEqualTo(uri);
-        assertThat(payload.mInlineType).isEqualTo(type);
+        assertThat(payload.getType()).isEqualTo(type);
         assertThat(payload.mSettingSource).isEqualTo(source);
         assertThat(payload.isStandard()).isTrue();
         assertThat(payload.getAvailability()).isEqualTo(ResultPayload.Availability.AVAILABLE);
@@ -80,20 +80,19 @@
         final String intentVal = "value";
         final Intent intent = new Intent();
         intent.putExtra(intentKey, intentVal);
-
         Parcel parcel = Parcel.obtain();
         parcel.writeParcelable(intent, 0);
         parcel.writeString(uri);
-        parcel.writeInt(type);
         parcel.writeInt(source);
         parcel.writeInt(InlineSwitchPayload.TRUE);
         parcel.writeInt(InlineSwitchPayload.TRUE);
         parcel.setDataPosition(0);
 
         InlineSwitchPayload payload = InlineSwitchPayload.CREATOR.createFromParcel(parcel);
+
         final Intent builtIntent = payload.getIntent();
         assertThat(payload.mSettingKey).isEqualTo(uri);
-        assertThat(payload.mInlineType).isEqualTo(type);
+        assertThat(payload.getType()).isEqualTo(type);
         assertThat(payload.mSettingSource).isEqualTo(source);
         assertThat(payload.isStandard()).isTrue();
         assertThat(payload.getAvailability()).isEqualTo(Availability.AVAILABLE);
@@ -101,84 +100,6 @@
     }
 
     @Test
-    public void testGetSecure_returnsSecureSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SECURE,
-                STANDARD_ON, null /* intent */, true);
-        int currentValue = 1;
-        Settings.Secure.putInt(mContext.getContentResolver(), DUMMY_SETTING, currentValue);
-
-        int newValue = payload.getValue(mContext);
-
-        assertThat(newValue).isEqualTo(currentValue);
-    }
-
-    @Test
-    public void testGetGlobal_returnsGlobalSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.GLOBAL,
-                STANDARD_ON, null /* intent */, true);
-        int currentValue = 1;
-        Settings.Global.putInt(mContext.getContentResolver(), DUMMY_SETTING, currentValue);
-
-        int newValue = payload.getValue(mContext);
-
-        assertThat(newValue).isEqualTo(currentValue);
-    }
-
-    @Test
-    public void testGetSystem_returnsSystemSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                STANDARD_ON, null /* intent */, true);
-        int currentValue = 1;
-        Settings.System.putInt(mContext.getContentResolver(), DUMMY_SETTING, currentValue);
-
-        int newValue = payload.getValue(mContext);
-
-        assertThat(newValue).isEqualTo(currentValue);
-    }
-
-    @Test
-    public void testSetSecure_updatesSecureSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SECURE,
-                STANDARD_ON, null /* intent */, true);
-        int newValue = 1;
-        ContentResolver resolver = mContext.getContentResolver();
-        Settings.Secure.putInt(resolver, SCREEN_BRIGHTNESS_MODE, 0);
-
-        payload.setValue(mContext, newValue);
-        int updatedValue = Settings.System.getInt(resolver, DUMMY_SETTING, -1);
-
-        assertThat(updatedValue).isEqualTo(newValue);
-    }
-
-    @Test
-    public void testSetGlobal_updatesGlobalSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.GLOBAL,
-                STANDARD_ON, null /* intent */, true);
-        int newValue = 1;
-        ContentResolver resolver = mContext.getContentResolver();
-        Settings.Global.putInt(resolver, SCREEN_BRIGHTNESS_MODE, 0);
-
-        payload.setValue(mContext, newValue);
-        int updatedValue = Settings.Global.getInt(resolver, DUMMY_SETTING, -1);
-
-        assertThat(updatedValue).isEqualTo(newValue);
-    }
-
-    @Test
-    public void testSetSystem_updatesSystemSetting() {
-        InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
-                STANDARD_ON, null /* intent */, true);
-        int newValue = 1;
-        ContentResolver resolver = mContext.getContentResolver();
-        Settings.System.putInt(resolver, SCREEN_BRIGHTNESS_MODE, 0);
-
-        payload.setValue(mContext, newValue);
-        int updatedValue = Settings.System.getInt(resolver, DUMMY_SETTING, -1);
-
-        assertThat(updatedValue).isEqualTo(newValue);
-    }
-
-    @Test
     public void testGetSystem_flippedSetting_returnsFlippedValue() {
         // Stores 1s as 0s, and vis versa
         InlineSwitchPayload payload = new InlineSwitchPayload(DUMMY_SETTING, SettingsSource.SYSTEM,
diff --git a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
index 26d9510..30ffaf8 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFeatureProviderImplTest.java
@@ -20,9 +20,9 @@
 import android.app.Activity;
 import android.view.Menu;
 
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
 import com.android.settings.TestConfig;
 import com.android.settings.dashboard.SiteMapManager;
+import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -33,11 +33,7 @@
 import org.robolectric.Robolectric;
 import org.robolectric.annotation.Config;
 
-
 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.verify;
 
 @RunWith(SettingsRobolectricTestRunner.class)
 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -62,4 +58,22 @@
 
         assertThat(manager1).isSameAs(manager2);
     }
+
+    @Test
+    public void getDatabaseSearchLoader_shouldCleanupQuery() {
+        final String query = "  space ";
+        final DatabaseResultLoader loader = mProvider.getDatabaseSearchLoader(mActivity, query);
+
+        assertThat(loader.mQueryText).isEqualTo(query.trim());
+    }
+
+    @Test
+    public void getInstalledAppSearchLoader_shouldCleanupQuery() {
+        final String query = "  space ";
+        final InstalledAppResultLoader loader =
+                mProvider.getInstalledAppSearchLoader(mActivity, query);
+
+        assertThat(loader.mQuery).isEqualTo(query.trim());
+    }
+
 }
diff --git a/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java b/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java
index e53c01d..7ee3f97 100644
--- a/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/search/SearchFragmentTest.java
@@ -32,6 +32,7 @@
 import com.android.settings.TestConfig;
 import com.android.settings.testutils.DatabaseTestUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.shadow.SettingsShadowResources;
 
 import org.junit.After;
 import org.junit.Before;
@@ -66,7 +67,12 @@
 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 = {
+                SettingsShadowResources.class,
+                SettingsShadowResources.SettingsShadowTheme.class,
+        })
 public class SearchFragmentTest {
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
@@ -262,7 +268,7 @@
                 .thenReturn(true);
 
         fragment.onAttach(null);
-        verify(mFeatureFactory.searchFeatureProvider).updateIndex(any(Context.class),
+        verify(mFeatureFactory.searchFeatureProvider).updateIndexAsync(any(Context.class),
                 any(IndexingCallback.class));
     }
 
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 d4b0ff7..c56438f 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/SettingsShadowResources.java
@@ -7,6 +7,7 @@
 import static org.robolectric.internal.Shadow.directlyOn;
 
 import android.annotation.DimenRes;
+import android.content.res.ColorStateList;
 import android.content.res.Resources;
 import android.content.res.Resources.NotFoundException;
 import android.content.res.Resources.Theme;
@@ -88,6 +89,15 @@
     }
 
     @Implementation
+    public ColorStateList getColorStateList(@ColorRes int id, @Nullable Theme theme)
+            throws NotFoundException {
+        if (id == com.android.internal.R.color.text_color_primary) {
+            return ColorStateList.valueOf(Color.WHITE);
+        }
+        return directlyOn(realResources, Resources.class).getColorStateList(id, theme);
+    }
+
+    @Implementation
     public Drawable loadDrawable(TypedValue value, int id, Theme theme)
             throws NotFoundException {
         // The drawable item in switchbar_background.xml refers to a very recent color attribute
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
index 36f170a..2e346a2 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowContentResolver.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.testutils.shadow;
 
+import android.accounts.Account;
 import android.content.ContentResolver;
 import android.content.SyncAdapterType;
 
@@ -28,12 +29,20 @@
 
 import static android.provider.SearchIndexablesContract.INDEXABLES_RAW_COLUMNS;
 
+import java.util.HashMap;
+import java.util.Map;
+
 @Implements(ContentResolver.class)
 public class ShadowContentResolver {
 
+    private static SyncAdapterType[] sSyncAdapterTypes = new SyncAdapterType[0];
+    private static Map<String, Integer> sSyncable = new HashMap<>();
+    private static Map<String, Boolean> sSyncAutomatically = new HashMap<>();
+    private static Map<Integer, Boolean> sMasterSyncAutomatically = new HashMap<>();
+
     @Implementation
     public static SyncAdapterType[] getSyncAdapterTypesAsUser(int userId) {
-        return new SyncAdapterType[0];
+        return sSyncAdapterTypes;
     }
 
     @Implementation
@@ -44,4 +53,44 @@
                 .add(SearchIndexablesContract.NonIndexableKey.COLUMN_KEY_VALUE, "");
         return cursor;
     }
+
+    @Implementation
+    public static int getIsSyncableAsUser(Account account, String authority, int userId) {
+        return sSyncable.containsKey(authority) ? sSyncable.get(authority) : 1;
+    }
+
+    @Implementation
+    public static boolean getSyncAutomaticallyAsUser(Account account, String authority,
+            int userId) {
+        return sSyncAutomatically.containsKey(authority) ? sSyncAutomatically.get(authority) : true;
+    }
+
+    @Implementation
+    public static boolean getMasterSyncAutomaticallyAsUser(int userId) {
+        return sMasterSyncAutomatically.containsKey(userId)
+                ? sMasterSyncAutomatically.get(userId) : true;
+    }
+
+    public static void setSyncAdapterTypes(SyncAdapterType[] syncAdapterTypes) {
+        sSyncAdapterTypes = syncAdapterTypes;
+    }
+
+    public static void setSyncable(String authority, int syncable) {
+        sSyncable.put(authority, syncable);
+    }
+
+    public static void setSyncAutomatically(String authority, boolean syncAutomatically) {
+        sSyncAutomatically.put(authority, syncAutomatically);
+    }
+
+    public static void setMasterSyncAutomatically(int userId, boolean syncAutomatically) {
+        sMasterSyncAutomatically.put(userId, syncAutomatically);
+    }
+
+    public static void reset() {
+        sSyncable.clear();
+        sSyncAutomatically.clear();
+        sMasterSyncAutomatically.clear();
+        sSyncAdapterTypes = new SyncAdapterType[0];
+    }
 }
diff --git a/tests/unit/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckActionTest.java b/tests/unit/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckActionTest.java
new file mode 100644
index 0000000..8be3320
--- /dev/null
+++ b/tests/unit/src/com/android/settings/fuelgauge/anomaly/action/LocationCheckActionTest.java
@@ -0,0 +1,71 @@
+/*
+ * 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.action;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.filters.SmallTest;
+import android.support.test.runner.AndroidJUnit4;
+
+import com.android.settings.fuelgauge.anomaly.Anomaly;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class LocationCheckActionTest {
+    private static final String PACKAGE_NAME = "com.android.chrome";
+
+    private Context mContext;
+    private LocationCheckAction mLocationCheckAction;
+    private Anomaly mAnomaly;
+
+    @Before
+    public void setUp() {
+        mContext = InstrumentationRegistry.getTargetContext();
+        mLocationCheckAction = new LocationCheckAction(mContext);
+
+        mAnomaly = new Anomaly.Builder()
+                .setUid(getPackageUid(mContext, PACKAGE_NAME))
+                .setPackageName(PACKAGE_NAME)
+                .build();
+    }
+
+    @Test
+    public void testRevokeAndCheck() {
+        mLocationCheckAction.handlePositiveAction(mAnomaly, 0 /* metric key */);
+
+        assertThat(mLocationCheckAction.isActionActive(mAnomaly)).isFalse();
+    }
+
+    private int getPackageUid(Context context, String packageName) {
+        try {
+            return context.getPackageManager().getPackageUid(packageName,
+                    PackageManager.GET_META_DATA);
+        } catch (PackageManager.NameNotFoundException e) {
+            return -1;
+        }
+    }
+}
+
+
+
+
diff --git a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
index 640c884..a85d591 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java
@@ -15,6 +15,24 @@
  */
 package com.android.settings.wifi;
 
+import static android.support.test.InstrumentationRegistry.getInstrumentation;
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
+import static android.support.test.espresso.assertion.ViewAssertions.matches;
+import static android.support.test.espresso.matcher.ViewMatchers.Visibility.VISIBLE;
+import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
+import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.hamcrest.Matchers.allOf;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.startsWith;
+import static org.mockito.Mockito.atMost;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
 import android.app.Activity;
 import android.app.Fragment;
 import android.content.Context;
@@ -31,6 +49,7 @@
 
 import com.android.settings.Settings.WifiSettingsActivity;
 import com.android.settingslib.wifi.AccessPoint;
+import com.android.settingslib.wifi.TestAccessPointBuilder;
 import com.android.settingslib.wifi.WifiTracker;
 import com.android.settingslib.wifi.WifiTracker.WifiListener;
 import com.android.settingslib.wifi.WifiTrackerFactory;
@@ -46,25 +65,6 @@
 
 import java.util.List;
 
-import static android.support.test.InstrumentationRegistry.getInstrumentation;
-import static android.support.test.espresso.Espresso.onView;
-import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
-import static android.support.test.espresso.assertion.ViewAssertions.matches;
-import static android.support.test.espresso.matcher.ViewMatchers.Visibility.VISIBLE;
-import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
-import static android.support.test.espresso.matcher.ViewMatchers.withEffectiveVisibility;
-import static android.support.test.espresso.matcher.ViewMatchers.withText;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.hamcrest.Matchers.allOf;
-import static org.hamcrest.Matchers.not;
-import static org.hamcrest.Matchers.startsWith;
-
-import static org.mockito.Mockito.atMost;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
 @RunWith(AndroidJUnit4.class)
 public class WifiSettingsUiTest {
 
@@ -242,4 +242,34 @@
         getInstrumentation().callActivityOnStart(activity);
         verify(mWifiTracker, atMost(1)).forceUpdate();
     }
+
+    @Test
+    public void changingSecurityStateOnApShouldNotCauseMultipleListItems() {
+        setWifiState(WifiManager.WIFI_STATE_ENABLED);
+        TestAccessPointBuilder builder = new TestAccessPointBuilder(mContext)
+                .setSsid(TEST_SSID).setSecurity(AccessPoint.SECURITY_NONE);
+        AccessPoint open = builder.build();
+
+        builder.setSecurity(AccessPoint.SECURITY_EAP);
+        AccessPoint eap = builder.build();
+
+        builder.setSecurity(AccessPoint.SECURITY_WEP);
+        AccessPoint wep = builder.build();
+
+        // Return a different security state each time getAccessPoints is invoked
+        when(mWifiTracker.getAccessPoints())
+                .thenReturn(Lists.newArrayList(open, eap))
+                .thenReturn(Lists.newArrayList(eap))
+                .thenReturn(Lists.newArrayList(wep));
+
+        launchActivity();
+
+        onView(withText(TEST_SSID)).check(matches(isDisplayed()));
+
+        mWifiListener.onAccessPointsChanged();
+        onView(withText(TEST_SSID)).check(matches(isDisplayed()));
+
+        mWifiListener.onAccessPointsChanged();
+        onView(withText(TEST_SSID)).check(matches(isDisplayed()));
+    }
 }
