diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 9b11fe8..b5214e6 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1135,6 +1135,7 @@
         <activity
             android:name="Settings$ManageDomainUrlsActivity"
             android:exported="true"
+            android:theme="@style/Theme.SubSettings"
             android:label="@string/domain_urls_title">
             <intent-filter>
                 <action android:name="android.settings.MANAGE_DOMAIN_URLS" />
@@ -3267,8 +3268,6 @@
             <!-- Tell Settings app which category it belongs to -->
             <meta-data android:name="com.android.settings.category"
                        android:value="com.android.settings.category.ia.system" />
-            <meta-data android:name="com.android.settings.summary_uri"
-                       android:value="content://com.android.settings.dashboard.SummaryProvider/backup" />
             <meta-data android:name="com.android.settings.order" android:value="-60"/>
         </activity>
 
diff --git a/color-check-baseline.xml b/color-check-baseline.xml
index 800d95b..0c61a47 100644
--- a/color-check-baseline.xml
+++ b/color-check-baseline.xml
@@ -4205,4 +4205,20 @@
             column="5"/>
     </issue>
 
+    <issue
+        id="HardCodedColor"
+        severity="Error"
+        message="Avoid using hardcoded color"
+        category="Correctness"
+        priority="4"
+        summary="Using hardcoded color"
+        explanation="Hardcoded color values are bad because theme changes cannot be uniformly applied.Instead use the theme specific colors such as `?android:attr/textColorPrimary` in attributes.&#xA;This ensures that a theme change from a light to a dark theme can be uniformlyapplied across the app."
+        errorLine1="    &lt;color name=&quot;battery_info_error_color_red&quot;>#fce8e6&lt;/color> &lt;!-- Material Red 50 -->"
+        errorLine2="    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+        <location
+            file="res/values/colors.xml"
+            line="202"
+            column="5"/>
+    </issue>
+
 </issues>
diff --git a/res/drawable/ic_headset_24dp.xml b/res/drawable/ic_headset_24dp.xml
deleted file mode 100644
index 23210d0..0000000
--- a/res/drawable/ic_headset_24dp.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--
-    Copyright (C) 2017 The Android Open Source Project
-
-    Licensed under the Apache License, Version 2.0 (the "License");
-    you may not use this file except in compliance with the License.
-    You may obtain a copy of the License at
-
-         http://www.apache.org/licenses/LICENSE-2.0
-
-    Unless required by applicable law or agreed to in writing, software
-    distributed under the License is distributed on an "AS IS" BASIS,
-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-    See the License for the specific language governing permissions and
-    limitations under the License.
--->
-<vector 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="M19,15v3c0,0.55 -0.45,1 -1,1h-1v-4H19M7,15v4H6c-0.55,0 -1,-0.45 -1,-1v-3H7M12,2c-4.97,0 -9,4.03 -9,9v7c0,1.66 1.34,3 3,3h3v-8H5v-2c0,-3.87 3.13,-7 7,-7s7,3.13 7,7v2h-4v8h3c1.66,0 3,-1.34 3,-3v-7C21,6.03 16.97,2 12,2L12,2z"/>
-</vector>
diff --git a/res/layout/dream_start_button.xml b/res/layout/dream_start_button.xml
deleted file mode 100644
index a45e56f..0000000
--- a/res/layout/dream_start_button.xml
+++ /dev/null
@@ -1,38 +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:orientation="horizontal"
-    android:gravity="bottom"
-    android:paddingTop="4dp"
-    android:paddingStart="72dp"
-    android:paddingEnd="72dp"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
-
-    <Button
-        android:id="@+id/dream_start_now_button"
-        style="@style/ActionSecondaryButton"
-        android:layout_width="0dp"
-        android:layout_weight="1"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center"
-        android:text="@string/screensaver_settings_dream_start"
-        android:paddingEnd="8dp" />
-
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/face_remove_button.xml b/res/layout/face_remove_button.xml
index 98459f0..a05fb85 100644
--- a/res/layout/face_remove_button.xml
+++ b/res/layout/face_remove_button.xml
@@ -26,6 +26,6 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_gravity="start"
-        android:text="@string/security_settings_face_settings_remove_face_data"/>
+        android:text="@string/security_settings_face_settings_remove_face_model"/>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/main_clear.xml b/res/layout/main_clear.xml
index 1cf1909..cbccb0a 100644
--- a/res/layout/main_clear.xml
+++ b/res/layout/main_clear.xml
@@ -21,7 +21,6 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:theme="@style/GlifV3Theme.Footer"
     android:icon="@drawable/ic_delete_accent"
     app:sucHeaderText="@string/main_clear_title">
 
diff --git a/res/layout/main_clear_confirm.xml b/res/layout/main_clear_confirm.xml
index 95262a0..914a998 100644
--- a/res/layout/main_clear_confirm.xml
+++ b/res/layout/main_clear_confirm.xml
@@ -19,7 +19,6 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
-    android:theme="@style/SudThemeGlifV3.DayNight"
     android:id="@+id/setup_wizard_layout"
     android:icon="@drawable/ic_delete_accent"
     app:sucHeaderText="@string/main_clear_confirm_title">
diff --git a/res/layout/palette_listview_item.xml b/res/layout/palette_listview_item.xml
index e67b7cb..012e740 100644
--- a/res/layout/palette_listview_item.xml
+++ b/res/layout/palette_listview_item.xml
@@ -23,7 +23,7 @@
         android:id="@+id/item_textview"
         android:layout_width="match_parent"
         android:layout_height="42dp"
-        android:fontFamily="roboto-bold"
+        android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
         android:gravity="center_vertical"
         android:maxLength="20"
         android:paddingLeft="@dimen/accessibility_layout_margin_start_end"
diff --git a/res/layout/preference_balance_slider.xml b/res/layout/preference_balance_slider.xml
index 80cb996..43cd86f 100644
--- a/res/layout/preference_balance_slider.xml
+++ b/res/layout/preference_balance_slider.xml
@@ -76,6 +76,9 @@
 
             <com.android.settings.accessibility.BalanceSeekBar
                 android:id="@*android:id/seekbar"
+                android:minHeight="?android:attr/listPreferredItemHeightSmall"
+                android:paddingStart="0dp"
+                android:paddingEnd="0dp"
                 android:layout_gravity="center_vertical"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"/>
diff --git a/res/layout/preference_battery_error.xml b/res/layout/preference_battery_error.xml
index 66ff96a..4efd13a 100644
--- a/res/layout/preference_battery_error.xml
+++ b/res/layout/preference_battery_error.xml
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  ~ Copyright (C) 2021 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.
+  Copyright (C) 2021 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(b/179237551): Refine the layout once the design been lock down. -->
+
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
@@ -23,26 +23,28 @@
         android:id="@+id/container"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginStart="24dp"
-        android:layout_marginEnd="24dp"
+        android:layout_margin="8dp"
         style="@style/ContextualCardStyle">
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="top|start"
             android:orientation="vertical"
-            android:padding="16dp"
-            android:background="@color/homepage_emergency_background">
+            android:padding="20dp"
+            android:background="@color/battery_info_error_color_red">
 
             <ImageView
                 android:id="@+id/battery_icon"
-                android:src="@drawable/ic_battery_alert_24dp"
+                android:src="@drawable/ic_warning_24dp"
+                android:tint="@*android:color/material_red_A700"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content" />
 
             <TextView android:id="@+id/summary_text"
                       android:layout_width="match_parent"
                       android:layout_height="wrap_content"
+                      android:layout_marginTop="12dp"
+                      android:layout_marginBottom="16dp"
                       android:text="@string/battery_missing_message"
                       android:textAppearance="?android:attr/textAppearanceSmall"
                       android:textColor="?android:attr/textColorSecondary" />
@@ -53,7 +55,7 @@
                       android:layout_gravity="end"
                       android:text="@string/battery_missing_link_message"
                       android:textAppearance="?android:attr/textAppearanceSmall"
-                      android:textColor="?android:attr/colorError" />
+                      android:textColor="@*android:color/material_red_A700" />
         </LinearLayout>
     </com.google.android.material.card.MaterialCardView>
 </FrameLayout>
diff --git a/res/layout/wifi_add_network_view.xml b/res/layout/wifi_add_network_view.xml
index 6af46cf..8c23020 100644
--- a/res/layout/wifi_add_network_view.xml
+++ b/res/layout/wifi_add_network_view.xml
@@ -22,19 +22,29 @@
     android:layout_height="wrap_content"
     android:clipToPadding="true"
     android:clipChildren="true">
-
-        <include
-            android:id="@+id/wifi_dialog_frame"
+        <ScrollView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_above="@id/add_network_button_bar"
-            app:layout_constraintTop_toTopOf="parent"
-            layout="@layout/wifi_dialog"/>
+            android:scrollIndicators="top|bottom">
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+                        <include
+                            android:id="@+id/wifi_dialog_frame"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_above="@id/add_network_button_bar"
+                            app:layout_constraintTop_toTopOf="parent"
+                            layout="@layout/wifi_dialog"/>
 
-        <include
-            android:id="@+id/add_network_button_bar"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            app:layout_constraintTop_toBottomOf="@id/wifi_dialog_frame"
-            layout="@*android:layout/alert_dialog_button_bar_material"/>
+                        <include
+                            android:id="@+id/add_network_button_bar"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            app:layout_constraintTop_toBottomOf="@id/wifi_dialog_frame"
+                            layout="@*android:layout/alert_dialog_button_bar_material"/>
+                </LinearLayout>
+        </ScrollView>
+
 </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index eeb22dd..24ffd22 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"የመዳረሻ ነጥብ አርትዕ"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"አልተዘጋጀም"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"አልተቀናበረም"</string>
     <string name="apn_name" msgid="6677695784108157953">"ስም"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"እጅ አዙር"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"የባትሪ አጠቃቀም"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"የባትሪው ኃይል ሙሉ ከሆነ በኋላ"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"የባትሪ አጠቃቀምን ያቀናብሩ"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"በጠቅላላ <xliff:g id="TIME_0">^1</xliff:g> • ላለፉት 24 ሰዓታት <xliff:g id="TIME_1">^2</xliff:g> ዳራ"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> ጠቅላላ • ለ<xliff:g id="TIME_PERIOD">^3</xliff:g> የ<xliff:g id="TIME_1">^2</xliff:g> ዳራ"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"ላለፉት 24 ሰዓታት ጠቅላላ ከአንድ ደቂቃ በታች"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"ለ<xliff:g id="TIME_PERIOD">^1</xliff:g> ጠቅላላ ከአንድ ደቂቃ"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"ላለፉት 24 ሰዓታት ዳራ ከአንድ ደቂቃ በታች"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"ለ<xliff:g id="TIME_PERIOD">^1</xliff:g> ዳራ ከአንድ ደቂቃ በታች"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"ላለፉት 24 ሰዓታት <xliff:g id="TIME">^1</xliff:g> ጠቅላላ"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"ለ<xliff:g id="TIME_PERIOD">^2</xliff:g> ጠቅላላ <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"ላለፉት 24 ሰዓታት የ<xliff:g id="TIME">^1</xliff:g> ዳራ"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"ለ<xliff:g id="TIME_PERIOD">^2</xliff:g> የ<xliff:g id="TIME_0">^1</xliff:g> ዳራ"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> ጠቅላላ • ላለፉት 24 ሰዓታት ዳራ ከአንድ ደቂቃ በታች"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> ጠቅላላ • ለ<xliff:g id="TIME_PERIOD">^2</xliff:g> ዳራ ከአንድ ደቂቃ በታች"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"ላለፉት 24 ሰዓታት ምንም ስራ ላይ አልዋለም"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"የቀረው የባትሪ ዕድሜ ግምት በእርስዎ የመሣሪያ አጠቃቀም ላይ የተመረኮዘ ነው"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"የተገመተው ቀሪ ጊዜ"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index f95e031..fec87fa 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -441,7 +441,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"استخدام بصمة الإصبع لفتح قفل الهاتف قد يكون أقل أمانًا من استخدام نقش أو رقم تعريف شخصي قوي."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"آلية العمل"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"تنشئ ميزة \"فتح القفل ببصمة الإصبع\" نموذجًا فريدًا من بصمة الإصبع للتعرّف عليك أثناء عمليات المصادقة. لإنشاء نموذج بصمة الإصبع هذا أثناء عملية الإعداد، ستلتقط صورًا لبصمة إصبعك من مواضع مختلفة."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"سيستخدم الهاتف أيضًا صورًا من تفاعلاتك لفتح القفل ببصمة الإصبع من أجل تعديل نموذج بصمة الإصبع. لا يتم مطلقًا تخزين الصور المستخدمة لإنشاء نموذج بصمة الإصبع، ولكن يتم تخزين النموذج بأمان على هاتفك ولا يتم نقله خارج هاتفك مطلقًا. تتم كل عمليات المعالجة بأمان على هاتفك."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"سيستخدم الهاتف أيضًا الصور التي يتم التقاطها أثناء استخداماتك لميزة \"فتح القفل ببصمة الإصبع\" لتحسين نموذج بصمة الإصبع. لا يتم مطلقًا تخزين الصور المستخدمة لإنشاء نموذج بصمة الإصبع، ولكن يتم تخزين النموذج بأمان على هاتفك ولا يتم نقله خارج هاتفك مطلقًا. تتم كل عمليات المعالجة بأمان على هاتفك."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"يمكنك حذف نموذج بصمة الإصبع أو إيقاف ميزة \"فتح القفل ببصمة الإصبع\" في أي وقت من \"الإعدادات\". يتم تخزين نماذج بصمات الأصابع على هاتفك حتى تحذفها."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"غيِّر موضع إصبعك قليلاً في كل مرة."</string>
@@ -1709,8 +1709,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"أسماء نقاط الوصول"</string>
     <string name="apn_edit" msgid="2003683641840248741">"تعديل نقطة الوصول"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"لم يتم الضبط"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"لم يتم ضبط أي قيمة."</string>
     <string name="apn_name" msgid="6677695784108157953">"الاسم"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"الخادم الوكيل"</string>
@@ -2883,26 +2882,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"استخدام البطارية"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"منذ اكتمال الشحن"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"إدارة استخدام البطارية"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"إجمالي مدة الاستخدام: <xliff:g id="TIME_0">^1</xliff:g> • تم استخدام البطارية في الخلفية لمدة <xliff:g id="TIME_1">^2</xliff:g> في آخر 24 ساعة"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"إجمالي مدة الاستخدام: <xliff:g id="TIME_0">^1</xliff:g> • تم استخدام البطارية في الخلفية لمدة <xliff:g id="TIME_1">^2</xliff:g> في الفترة <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"الاستخدام الإجمالي للبطارية أقل من دقيقة في آخر 24 ساعة."</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"الاستخدام الإجمالي للبطارية أقل من دقيقة في الفترة <xliff:g id="TIME_PERIOD">^1</xliff:g>."</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"تم استخدام البطارية في الخلفية أقل من دقيقة في آخر 24 ساعة."</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"تم استخدام البطارية في الخلفية أقل من دقيقة في الفترة <xliff:g id="TIME_PERIOD">^1</xliff:g>."</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"الاستخدام الإجمالي للبطارية في آخر 24 ساعة: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"الاستخدام الإجمالي للبطارية <xliff:g id="TIME_0">^1</xliff:g> في الفترة <xliff:g id="TIME_PERIOD">^2</xliff:g>."</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"تم استخدام البطارية في الخلفية لمدة <xliff:g id="TIME">^1</xliff:g> في آخر 24 ساعة."</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"تم استخدام البطارية في الخلفية لمدة <xliff:g id="TIME_0">^1</xliff:g> في الفترة <xliff:g id="TIME_PERIOD">^2</xliff:g>."</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"إجمالي مدة الاستخدام: <xliff:g id="TIME">^1</xliff:g> • تم استخدام البطارية في الخلفية أقل من دقيقة في آخر 24 ساعة"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"إجمالي مدة الاستخدام: <xliff:g id="TIME_0">^1</xliff:g> • تم استخدام البطارية في الخلفية أقل من دقيقة في الفترة <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"لم يتم استخدام البطارية في الخلفية في آخر 24 ساعة."</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"يستند تقدير شحن البطارية المتبقي على استخدام الجهاز"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"الوقت التقديري المتبقي"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index d424f2e..124ab60 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -425,10 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"আপোনাৰ ফ’নটো আনলক কৰিবলৈ আপোনাৰ ফিংগাৰপ্ৰিণ্ট ব্যৱহাৰ কৰাটো এটা সবল আৰ্হি অথবা পিন ব্যৱহাৰ কৰাতকৈ কম সুৰক্ষিত হ’ব পাৰে"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"ই কিদৰে কাম কৰে"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"ফিংগাৰপ্ৰিণ্টৰ দ্বাৰা আনলক কৰাৰ সুবিধাটোৱে বিশ্বাসযোগ্যতা প্ৰমাণীকৰণৰ সময়ত আপোনাক চিনাক্ত কৰিবলৈ আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ এটা অদ্বিতীয় ম’ডেল সৃষ্টি কৰে। এই ফিংগাৰপ্ৰিণ্ট মডেলটো সৃষ্টি কৰিবলৈ ছেটআপৰ সময়ত আপুনি ভিন্ন দিশৰ পৰা নিজৰ ফিংগাৰপ্ৰিণ্টটোৰ প্ৰতিচ্ছবি ল’ব লাগিব।"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"আপোনাৰ ফিংগাৰপ্ৰিণ্ট ম\'ডেলটো আপডে’ট কৰিবলৈ এই ফ’নটোৱে আপুনি ফিংগাৰপ্ৰিণ্টৰ দ্বাৰা আনলক কৰাৰ সুবিধাটো ব্যৱহাৰ কৰাৰ সময়ৰ প্ৰতিচ্ছবিও ব্যৱহাৰ কৰিব। আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ ম’ডেলটো সৃষ্টি কৰিবলৈ ব্যৱহাৰ কৰা প্ৰতিচ্ছবি কেতিয়াও ষ্ট’ৰ কৰা নহয়, কিন্তু ফিংগাৰপ্ৰিণ্টৰ ম’ডেলটো আপোনাৰ ফ’নত সুৰক্ষিতভাৱে ষ্ট’ৰ কৰা হয় আৰু কেতিয়াও ফ’নটোৰ পৰা আঁতৰি নাযায়। আটাইবোৰ প্ৰক্ৰিয়া আপোনাৰ ফ’নত সুৰক্ষিতভাৱে সম্পাদন কৰা হয়।"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"আপুনি নিজৰ আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ ম’ডেলটো মচিব পাৰে অথবা যিকোনো সময়তে ছেটিঙত ফিংগাৰপ্ৰিণ্টেৰে আনলক কৰাৰ সুবিধাটো অফ কৰিব পাৰে। আপুনি নমচা পৰ্যন্ত ফিংগাৰপ্ৰিণ্টৰ ম’ডেলসমূহ ফ’নটোত ষ্ট’ৰ কৰি ৰখা হয়।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"প্ৰতিবাৰতে আপোনাৰ আঙুলিটোৰ স্থান সামান্য সলনি কৰক"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"আপোনাৰ ফিংগাৰপ্ৰিণ্টৰ মাজৰ অংশটোৰে চিহ্নটো ঢাকক"</string>
@@ -1627,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"এপিএনসমূহ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"একচেছ পইণ্ট সম্পাদনা কৰক"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ছেট কৰা হোৱা নাই"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ছেট কৰা হোৱা নাই"</string>
     <string name="apn_name" msgid="6677695784108157953">"নাম"</string>
     <string name="apn_apn" msgid="5812828833797458602">"এপিএন"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"প্ৰক্সি"</string>
@@ -2733,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"বেটাৰিৰ ব্যৱহাৰ"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"সম্পূৰ্ণ চ্চাৰ্জ হোৱাৰ পিছত"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"বেটাৰি ব্যৱহাৰ পৰিচালনা কৰক"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"যোৱা ২৪ ঘণ্টাত নেপথ্যত মুঠ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"মুঠ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> সময়খিনিত নেপথ্যত <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"যোৱা ২৪ ঘণ্টাত এক মিনিটতকৈ কম সময়"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> সময়খিনিত মুঠ এক মিনিটতকৈ কম সময়"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"যোৱা ২৪ ঘণ্টাত নেপথ্যত এক মিনিটতকৈ কম সময়"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> সময়খিনিত নেপথ্যত এক মিনিটতকৈ কম সময়"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"যোৱা ২৪ ঘণ্টাত মুঠ <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> সময়খিনিত মুঠ <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"যোৱা ২৪ ঘণ্টা <xliff:g id="TIME">^1</xliff:g> সময় নেপথ্যত"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> সময়খিনিত নেপথ্যত <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"মুঠ <xliff:g id="TIME">^1</xliff:g> • যোৱা ২৪ ঘণ্টাত নেপথ্যত এক মিনিটতকৈ কম সময়"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"মুঠ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> সময়খিনিত নেপথ্যত এক মিনিটতকৈ কম সময়"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"যোৱা ২৪ ঘণ্টাত ব্যৱহাৰ কৰা নাই"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"আপোনাৰ ডিভাইচৰ ব্যৱহাৰৰ ভিত্তিত বাকী থকা বেটাৰিৰ পৰিমাণ নিৰ্ণয় হয়"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"বাকী থকা মোটামুটি সময়"</string>
@@ -2798,8 +2787,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"নেপথ্য: এক মিনিটতকৈ কম"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"মুঠ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"নেপথ্য: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"বেটাৰিৰ ব্যৱহাৰৰ ডেটা আনুমানিক আৰু ফ’নটো চাৰ্জ হৈ থকাৰ সময়ত কৰা ব্যৱহাৰৰ জোখ নলয়"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"প্ৰক্ৰিয়া-বিষয়ক পৰিসংখ্যা"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"চলি থকা প্ৰক্ৰিয়াসমূহৰ বিষয়ে কাৰিকৰী পৰিসংখ্যা"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"মেম\'ৰিৰ ব্যৱহাৰ"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 9e9417f..cc698ba 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-lər"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Giriş nöqtəsinə düzəliş edin"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Təyin edilməyib"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayarlanmayıb"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ad"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proksi"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Enerji istifadəsi"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Tam dolmadan sonra"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Batareya istifadəsini idarə edin"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Cəmi <xliff:g id="TIME_0">^1</xliff:g> • son 24 saat üçün <xliff:g id="TIME_1">^2</xliff:g> arxa fon"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"cəmi <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> ərzində <xliff:g id="TIME_1">^2</xliff:g> arxa fon"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Son 24 saat ərzində cəmi bir dəqiqədən az"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> ərzində cəmi bir dəqiqədən az"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Son 24 saat ərzində bir dəqiqədən az arxa fon"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> ərzində bir dəqiqədən az arxa fon"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Son 24 saat ərzində cəmi <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> ərzində cəmi <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Son 24 saat ərzində <xliff:g id="TIME">^1</xliff:g> arxa fon"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> ərzində <xliff:g id="TIME_0">^1</xliff:g> arxa fon"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"cəmi <xliff:g id="TIME">^1</xliff:g> • son 24 saat ərzində bir dəqiqədən az arxa fon"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"cəmi <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> ərzində bir dəqiqədən az arxa fon"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Son 24 saat ərzində istifadə edilməyib"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Təxmini qalan batareya səviyyəsi cihazdan istifadəyə əsaslanır"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Təxmini qalan vaxt"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index b3b753c..4e4a2f0 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Змяніць пункт доступу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не зададзена"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не зададзена"</string>
     <string name="apn_name" msgid="6677695784108157953">"Назва"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Проксі"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Выкарыстанне зараду"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"З моманту поўнай зарадкі"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Кіраваць выкарыстаннем зараду"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Усяго <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> у фонавым рэжыме за апошнія 24 гадз"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Усяго <xliff:g id="TIME_0">^1</xliff:g> • У фонавым рэжыме <xliff:g id="TIME_1">^2</xliff:g> працы за перыяд <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Усяго менш чым хвіліна працы за апошнія 24 гадз"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Усяго менш чым хвіліна працы за перыяд <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Менш чым хвіліна працы ў фонавым рэжыме за апошнія 24 гадз"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Менш чым хвіліна працы ў фонавым рэжыме за перыяд <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Усяго <xliff:g id="TIME">^1</xliff:g> за апошнія 24 гадз"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Усяго <xliff:g id="TIME_0">^1</xliff:g> за перыяд <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> працы ў фонавым рэжыме за апошнія 24 гадз"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> працы ў фонавым рэжыме за перыяд <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Усяго <xliff:g id="TIME">^1</xliff:g> • Менш чым хвіліна працы ў фонавым рэжыме за апошнія 24 гадз"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Усяго <xliff:g id="TIME_0">^1</xliff:g> • Менш чым хвіліна працы ў фонавым рэжыме за перыяд <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Не выкарыстоўваўся ў апошнія 24 гадз"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ацэнка стану акумулятара заснавана на выкарыстанні прылады"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Прыблзіны час, які застаўся"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index ab2b2fd..d62d400 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -425,8 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Отключването на телефона ви с отпечатък може да е по-малко сигурно в сравнение с надеждни фигура или ПИН код"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Начин на работа"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Функцията за отключване с отпечатък изгражда уникален модел на отпечатъка ви, за да ви разпознава при удостоверяване. За да създадете такъв модел по време на настройването, ще трябва да заснемете отпечатъка си от различни позиции."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Телефонът ще използва и изображенията от взаимодействията ви с функцията за отключване с отпечатък, за да актуализира съответния модел. Изображенията, използвани за създаването му, не се запазват, но моделът на отпечатъка се съхранява надеждно на телефона ви и никога не го напуска. Цялото обработване се извършва надеждно на телефона ви."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"По всяко време можете да изтриете модела на отпечатъка си или да изключите функцията за отключване с отпечатъка от настройките. Моделите се съхраняват на телефона, докато не ги изтриете."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Телефонът ще използва и изображенията от взаимодействията ви с функцията за отключване с отпечатък, за да актуализира съответния модел. Изображенията, ползвани за създаването му, не се запазват, но моделът на отпечатъка се съхранява надеждно на телефона ви и никога не го напуска. Цялото обработване се извършва сигурно на телефона ви."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"По всяко време можете да изтриете модела на отпечатъка си или да изключите функцията за отключване с отпечатък от настройките. Моделите се съхраняват на телефона, докато не ги изтриете."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Всеки път променяйте леко позицията на пръста си"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Закрийте иконата с центъра на отпечатъка си"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Редакт. на точка за достъп"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не е зададено"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не е зададено"</string>
     <string name="apn_name" msgid="6677695784108157953">"Име"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Име на точката за достъп (APN)"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Прокси сървър"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Използване на батерията"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"След пълно зареждане"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Управление на използването на батерията"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Общо <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> на заден план за последните 24 ч"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Общо <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> на заден план за периода <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Общо по-малко от минута за последните 24 ч"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Общо по-малко от минута за периода <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"По-малко от минута на заден план за последните 24 ч"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"По-малко от минута на заден план за периода <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Общо <xliff:g id="TIME">^1</xliff:g> за последните 24 ч"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Общо <xliff:g id="TIME_0">^1</xliff:g> за периода <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> на заден план за последните 24 ч"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> на заден план за периода <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Общо <xliff:g id="TIME">^1</xliff:g> • По-малко от минута на заден план за последните 24 ч"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Общо <xliff:g id="TIME_0">^1</xliff:g> • По-малко от минута на заден план за периода <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Няма използване на батерията през последните 24 ч"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Прогнозата за оставащата батерия е въз основа на използването на устройството ви"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Приблизително оставащо време"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 155562e..7b3e151 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -425,8 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"ফোন আনলক করার জন্য জটিল প্যাটার্ন বা পিন ব্যবহারের চেয়ে আপনার আঙ্গুলের ছাপ ব্যবহার কম নিরাপদ হতে পারে"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"এটি কীভাবে কাজ করে"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"যাচাই করার সময় আপনাকে শনাক্ত করতে, আঙ্গুলের ছাপ দিয়ে আনলক করার পদ্ধতি আপনার আঙ্গুলের ছাপের একটি অনন্য মডেল তৈরি করে। সেটআপ করার সময় আঙ্গুলের ছাপের মডেল তৈরি করতে, বিভিন্ন অবস্থান থেকে আপনার আঙ্গুলের ছবি নেওয়া হবে।"</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"আপনার ফিঙ্গারপ্রিন্ট মডেল আপডেট করতে ফিঙ্গারপ্রিন্ট আনলক ব্যবহার করার সময়ে যেসব ছবি প্রেস করলে পাওয়া যায়, ফোন সেগুলিও ব্যবহার করবে। আপনার ফিঙ্গারপ্রিন্ট মডেল তৈরির জন্য ব্যবহার করা ছবি কখনই সেভ করে রাখা হয় না। তবে আপনার ফোনে ফিঙ্গারপ্রিন্ট মডেল নিরাপদে সেভ করে রাখা হয় যা কখনই ফোন থেকে মুছে যায় না। আপনার ফোনে সবকটি প্রসেস নিরাপদে হয়।"</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"সেটিংস থেকে যেকোনও সময়ে আপনি নিজের ফিঙ্গারপ্রিন্ট মডেল মুছে ফেলতে বা ফিঙ্গারপ্রিন্ট আনলক বন্ধ করতে পারবেন। আপনি মুছে না ফেলা পর্যন্ত ফিঙ্গারপ্রিন্ট মডেল সেভ করা থাকে।"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"আপনার ফিঙ্গারপ্রিন্ট মডেল আপডেট করতে ফিঙ্গারপ্রিন্ট আনলক ব্যবহার করার সময়ে যেসব ছবি প্রেস করলে পাওয়া যায়, ফোন সেগুলিও ব্যবহার করবে। আপনার ফিঙ্গারপ্রিন্ট মডেল তৈরির জন্য ব্যবহার করা ছবি কখনই সেভ করে রাখা হয় না। তবে আপনার ফোনে ফিঙ্গারপ্রিন্ট মডেল নিরাপদে সেভ করে রাখা হয় যা কখনই ফোন থেকে মুছে যায় না। আপনার ফোনে সবকটি প্রসেস নিরাপদে করা হয়।"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"সেটিংস থেকে যেকোনও সময়ে আপনি নিজের ফিঙ্গারপ্রিন্ট মডেল মুছে ফেলতে বা ফিঙ্গারপ্রিন্ট আনলক করার সুবিধা বন্ধ করতে পারবেন। আপনি মুছে না ফেলা পর্যন্ত ফিঙ্গারপ্রিন্ট মডেল সেভ করা থাকে।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"প্রতিবার আপনার আঙ্গুলের অবস্থান সামান্য পরিবর্তন করুন"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"আপনার আঙ্গুলের ছাপের মাঝখান দিয়ে আইকনটি ঢেকে দিন"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"অ্যাক্সেস পয়েন্ট এডিট করুন"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"সেট করা নেই"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"সেট করা নেই"</string>
     <string name="apn_name" msgid="6677695784108157953">"নাম"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"প্রক্সি"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"ব্যাটারির ব্যবহার"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"সম্পূর্ণ চার্জ হওয়ার সময় থেকে"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"ব্যাটারির ব্যবহার পরিচালনা করুন"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"ব্যাটারির মোট ব্যবহার <xliff:g id="TIME_0">^1</xliff:g> মিনিট • গত ২৪ ঘণ্টায় ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"ব্যাটারির মোট ব্যবহার <xliff:g id="TIME_0">^1</xliff:g> মিনিট • গত <xliff:g id="TIME_PERIOD">^3</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"গত ২৪ ঘন্টায় ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার মোট এক মিনিটের চেয়েও কম সময় করা হয়েছে"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার মোট এক মিনিটের চেয়েও কম সময় হয়েছে"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"গত ২৪ ঘন্টায় ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার এক মিনিটেরও কম"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"গত <xliff:g id="TIME_PERIOD">^1</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার এক মিনিটেরও কম"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"গত ২৪ ঘন্টায় মোট <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার মোট <xliff:g id="TIME_0">^1</xliff:g> করা হয়েছে"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"গত ২৪ ঘন্টায় ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"ব্যাটারির মোট ব্যবহার <xliff:g id="TIME">^1</xliff:g> মিনিট • গত ২৪ ঘন্টায় ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার এক মিনিটেরও কম"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"ব্যাটারির মোট ব্যবহার <xliff:g id="TIME_0">^1</xliff:g> মিনিট • গত <xliff:g id="TIME_PERIOD">^2</xliff:g>-এর মধ্যে ব্যাকগ্রাউন্ডে ব্যাটারির ব্যবহার এক মিনিটেরও কম"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"গত ২৪ ঘন্টায় ব্যবহার করা হয়নি"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"আপনার ডিভাইসের ব্যবহারের উপর ভিত্তি করে ব্যাটারি কতক্ষণ চলবে তার আনুমানিক হিসাব"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"আনুমানিক কতক্ষণ বাকি"</string>
@@ -2796,8 +2787,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ব্যাকগ্রাউন্ড: এক মিনিটের থেকে কম"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"মোট: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ব্যাকগ্রাউন্ড: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"ব্যাটারি ব্যবহারের ডেটা আনুমানিক এবং ফোন চার্জ করার সময়ে ব্যটারি ব্যবহার সম্পর্কিত ডেটা হিসেব করা হয় না"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"প্রক্রিয়ার পরিসংখ্যান"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"চলমান প্রক্রিয়াগুলি গিকি পরিসংখ্যান"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"মেমরি ব্যবহৃত"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 6372303..ec1c46c 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -430,7 +430,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Kako funkcionira"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Otključavanje otiskom prsta kreira jedinstveni model vašeg otiska prsta radi prepoznavanja tokom autentifikacije. Da kreirate model ovog otiska prsta tokom postavljanja, trebate napraviti slike otiska prsta u različitim položajima."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Telefon će također koristiti slike iz vaših interakcija s Otključavanjem otiskom prsta da ažurira model otiska prsta. Slike koje se koriste za kreiranje vašeg modela otiska prsta se nikada ne pohranjuju, ali model otiska prsta se sigurno pohranjuje na vašem telefonu i nikada ga ne napušta. Cjelokupna obrada se vrši sigurno na vašem telefonu."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"U Postavkama uvijek možete izbrisati model otiska prsta ili isključiti Otključavanje otiskom prsta. Modeli otiska prsta se pohranjuju na telefonu dok ih ne izbrišete."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"U Postavkama uvijek možete izbrisati model otiska prsta ili isključiti otključavanje otiskom prsta. Modeli otiska prsta se pohranjuju na telefonu dok ih ne izbrišete."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Svaki put neznatno promijenite položaj prsta"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Pokrijte ikonu sredinom otiska prsta"</string>
@@ -1646,8 +1646,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ovi"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Uredi pristupnu tačku"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nije postavljeno"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nije postavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naziv"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proksi"</string>
@@ -2769,26 +2768,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Potrošnja baterije"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Od potpune napunjenosti"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Upravljanje potrošnjom baterije"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Ukupno: <xliff:g id="TIME_0">^1</xliff:g> • vrijeme u pozadini za posljednja 24 h: <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Ukupno: <xliff:g id="TIME_0">^1</xliff:g> • vrijeme u pozadini za period <xliff:g id="TIME_PERIOD">^3</xliff:g>: <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Ukupno vrijeme je kraće od minute za posljednja 24 h"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Ukupno vrijeme je kraće od minute za period <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Vrijeme u pozadini je kraće od minute za posljednja 24 h"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Vrijeme u pozadini je kraće od minute za period <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Ukupno <xliff:g id="TIME">^1</xliff:g> za posljednja 24 h"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Ukupno <xliff:g id="TIME_0">^1</xliff:g> za period <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Vrijeme u pozadini za posljednja 24 h: <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> u pozadini za period <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Ukupno: <xliff:g id="TIME">^1</xliff:g> • vrijeme u pozadini je kraće od minute za posljednja 24 h"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Ukupno: <xliff:g id="TIME_0">^1</xliff:g> • vrijeme u pozadini je kraće od minute za period <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nema korištenja za posljednja 24 h"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Procjena preostalog trajanja baterije zasnovana je na korištenju uređaja"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Procjena preostalog vremena"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index bf171fd..fd085d3 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edita el punt d\'accés"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"No definit"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"No definit"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nom"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Servidor intermediari"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Ús de la bateria"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Des de la càrrega completa"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Gestiona l\'ús de la bateria"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> en total • <xliff:g id="TIME_1">^2</xliff:g> en segon pla durant les 24 darreres hores"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> en total • <xliff:g id="TIME_1">^2</xliff:g> en segon pla entre <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Menys d\'1 minut en total durant les 24 darreres hores"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Menys d\'1 minut en total entre <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Menys d\'1 minut en segon pla durant les 24 darreres hores"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Menys d\'1 minut en segon pla entre <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> en total durant les 24 darreres hores"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> en total entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> en segon pla durant les 24 darreres hores"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> en segon pla entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> en total • Menys d\'1 minut en segon pla durant les 24 darreres hores"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> en total • Menys d\'1 minut en segon pla entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Sense ús durant les 24 darreres hores"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"L\'estimació de la bateria restant es basa en l\'ús del teu dispositiu"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Temps estimat restant"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 843a3d1..58e1c31 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Přístupové body"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Upravit přístupový bod"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nenastaveno"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nenastaveno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Název"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Název přístupového bodu"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy server"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Využití baterie"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Od úplného nabití"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Správa využití baterie"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> celkem • <xliff:g id="TIME_1">^2</xliff:g> na pozadí za uplynulých 24 hodin"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Celkem <xliff:g id="TIME_0">^1</xliff:g> • V období <xliff:g id="TIME_PERIOD">^3</xliff:g> používáno na pozadí <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Za posledních 24 hodin používáno celkem méně než minutu"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"V období <xliff:g id="TIME_PERIOD">^1</xliff:g> používáno celkem méně než minutu"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Za posledních 24 hodin používáno na pozadí méně než minutu"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"V období <xliff:g id="TIME_PERIOD">^1</xliff:g> používáno na pozadí méně než minutu"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Za posledních 24 hodin používáno celkem <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Za období <xliff:g id="TIME_PERIOD">^2</xliff:g> používáno celkem <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Za posledních 24 hodin používáno na pozadí <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"V období <xliff:g id="TIME_PERIOD">^2</xliff:g> používáno na pozadí <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Celkem <xliff:g id="TIME">^1</xliff:g> • Za posledních 24 hodin používáno na pozadí méně než minutu"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Celkem <xliff:g id="TIME_0">^1</xliff:g> • V období <xliff:g id="TIME_PERIOD">^2</xliff:g> používáno na pozadí méně než minutu"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Za posledních 24 hodin žádné využití"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Odhad zbývající výdrže baterie vychází z vašeho používání zařízení"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Odhadovaný zbývající čas"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 58f17c5..0435cec 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -425,10 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Das Entsperren per Fingerabdruck kann möglicherweise nicht so sicher sein wie ein komplexes Muster oder eine PIN."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"So gehts"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Beim Entsperren per Fingerabdruck wird ein eindeutiges Modell deines Fingerabdrucks erstellt, mit dessen Hilfe dein Finger zur Authentifizierung erkannt wird. Bei der Einrichtung wirst du deinen Finger an verschiedenen Stellen auflegen und Aufnahmen von deinem Fingerabdruck machen, um das Fingerabdruckmodell zu erstellen."</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Das Smartphone wird außerdem Aufnahmen kürzlicher Interaktionen mit dem Entsperren per Fingerabdruck verwenden, um dein Fingerabdruckmodell zu aktualisieren. Die zum Erstellen deines Fingerabdruckmodells verwendeten Fotos werden nie gespeichert. Dein Fingerabdruckmodell wird sicher auf deinem Smartphone gespeichert und verbleibt grundsätzlich dort. Die Daten werden sicher auf deinem Smartphone verarbeitet."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Du kannst jederzeit dein Fingerabdruckmodell löschen oder das Entsperren mit Fingerabdruck in den Einstellungen deaktivieren. Fingerabdruckmodelle werden auf deinem Smartphone gespeichert, bis du sie löschst."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Ändere jedes Mal die Position deines Fingers"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Lege deinen Finger mittig auf das Symbol"</string>
@@ -2799,8 +2797,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"Hintergrund: weniger als eine Minute"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"Gesamt: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"Hintergrund: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"Die Daten zum Akkuverbrauch sind eine Schätzung. Der Verbrauch wird nicht gemessen, während das Smartphone geladen wird."</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"Prozessstatistiken"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistiken zu laufenden Prozessen"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Speichernutzung"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 63e936d..610e5b0 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -426,7 +426,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Cómo funciona"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"El desbloqueo con huella dactilar crea un modelo único de tu huella dactilar para reconocerte durante la autenticación. Para crear este modelo de huella dactilar durante la configuración, deberás tomar fotos de tu huella desde diferentes posiciones."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"El teléfono también usará imágenes de interacciones recientes con el desbloqueo por huella dactilar para actualizar el modelo. Las imágenes que se usan para crear tu modelo de huella dactilar no se almacenan, a diferencia del modelo en sí, que lo hace de manera segura en el teléfono, sin salir nunca de él. Todo el proceso se lleva a cabo en el teléfono de manera segura."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Puedes borrar el modelo de la huella dactilar o desactivar el desbloqueo con huella dactilar cuando quieras en Configuración. Los modelos de huellas dactilares se almacenan en el teléfono hasta que los borres."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Puedes borrar el modelo de la huella dactilar o desactivar el desbloqueo con huella dactilar cuando quieras en Configuración. Los modelos de huellas dactilares se almacenarán en el teléfono hasta que los borres."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Cambia un poco la posición del dedo cada vez"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Cubre el ícono con el centro de la huella dactilar"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 63e6e46..9d26d9a 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -425,8 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Es posible que usar la huella digital para desbloquear el teléfono sea menos seguro que un buen patrón o PIN"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Cómo funciona"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"El desbloqueo con huella digital crea un modelo único de tu huella digital para reconocerte cuando te autenticas. Para crear este modelo de huella digital durante la configuración, tendrás que capturar imágenes de tu huella digital desde diferentes posiciones."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"El teléfono también usará imágenes de cuando utilizas el desbloqueo mediante huella digital para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo de tu huella digital nunca se guardan, pero el modelo en sí se almacena de manera segura en tu teléfono y nunca sale de él. Todos los procesos se realizan de forma segura en el teléfono."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Puedes eliminar tu modelo de huella digital, o desactivar el desbloqueo mediante huella digital en cualquier momento desde Ajustes. Los modelos de huella digital se almacenan en el teléfono hasta que los eliminas."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"El teléfono también usará imágenes de cuando utilizas el desbloqueo mediante huella digital para actualizar el modelo de tu huella digital. Las imágenes usadas para crear el modelo nunca se guardan, pero el modelo en sí se almacena de manera segura en tu teléfono y nunca sale de él. Todos los procesos se llevan a cabo de forma segura en el teléfono."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Puedes eliminar el modelo de tu huella digital o desactivar el desbloqueo mediante huella digital cuando quieras desde Ajustes. Los modelos de huella digital se almacenan en el teléfono hasta que los eliminas."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Cambia ligeramente el dedo de posición cada vez"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Tapa el icono con el centro de la yema del dedo"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar punto de acceso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sin establecer"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Sin configurar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nombre"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2123,9 +2122,9 @@
     <string name="spellchecker_quick_settings" msgid="6449414356743946577">"Ajustes"</string>
     <string name="spellchecker_language" msgid="8905487366580285282">"Idioma"</string>
     <string name="keyboard_and_input_methods_category" msgid="5296847777802891649">"Teclados"</string>
-    <string name="virtual_keyboard_category" msgid="2339505603075527212">"Teclado del teléfono"</string>
+    <string name="virtual_keyboard_category" msgid="2339505603075527212">"Teclado en pantalla"</string>
     <string name="keywords_virtual_keyboard" msgid="1494726424879503434">"Gboard"</string>
-    <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado del teléfono disponible"</string>
+    <string name="available_virtual_keyboard_category" msgid="6930012948152749337">"Teclado en pantalla disponible"</string>
     <string name="add_virtual_keyboard" msgid="2515850206289352606">"Gestionar teclados en pantalla"</string>
     <string name="keyboard_assistance_category" msgid="7320599809770932032">"Ayuda del teclado"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
@@ -2134,7 +2133,7 @@
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8649760728213630156">"Muestra combinaciones de teclas disponibles"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Perfiles de trabajo y herramientas"</string>
-    <string name="virtual_keyboards_for_work_title" msgid="786459157034008675">"Teclado del teléfono para el trabajo"</string>
+    <string name="virtual_keyboards_for_work_title" msgid="786459157034008675">"Teclado en pantalla para el trabajo"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predeterminado"</string>
     <string name="pointer_speed" msgid="7398649279282675718">"Velocidad del puntero del ratón"</string>
     <string name="game_controller_settings_category" msgid="8557472715034961918">"Mandos de videojuegos"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Uso de batería"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Desde la carga completa"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Gestionar uso de la batería"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> en total • <xliff:g id="TIME_1">^2</xliff:g> en segundo plano durante las últimas 24 h"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> en total • <xliff:g id="TIME_1">^2</xliff:g> en segundo plano entre <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Menos de un minuto en total durante las últimas 24 horas"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Menos de un minuto en total entre <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Menos de 1 minuto en segundo plano durante las últimas 24 horas"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Menos de 1 minuto en segundo plano entre <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> en total durante las últimas 24 horas"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> en total entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> en segundo plano durante las últimas 24 horas"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> en segundo plano entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> en total • menos de 1 minuto en segundo plano durante las últimas 24 horas"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> en total • menos de 1 minuto en segundo plano entre <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Sin uso durante las últimas 24 horas"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"La estimación de la batería restante se basa en el uso de tu dispositivo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tiempo restante estimado"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 92ca443..6e7540f 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Pääsupunktid (APN-id)"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Pääsupunkti muutmine"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Määramata"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Määramata"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nimi"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Pääsupunkti nimi"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Puhverserver"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Akukasutus"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Alates viimasest täislaadimisest"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Akukasutuse haldamine"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> kokku • Viimase 24 tunni jooksul taustal <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Kokku <xliff:g id="TIME_0">^1</xliff:g> • Ajavahemikus <xliff:g id="TIME_PERIOD">^3</xliff:g> taustal <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Viimase 24 tunni jooksul kokku vähem kui minut"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Ajavahemikus <xliff:g id="TIME_PERIOD">^1</xliff:g> kokku vähem kui minut"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Viimase 24 tunni jooksul taustal vähem kui minut"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Ajavahemikus <xliff:g id="TIME_PERIOD">^1</xliff:g> taustal vähem kui minut"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Viimase 24 tunni jooksul kokku <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Ajavahemikus <xliff:g id="TIME_PERIOD">^2</xliff:g> kokku <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> taustal viimase 24 tunni jooksul"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"Ajavahemikus <xliff:g id="TIME_PERIOD">^2</xliff:g> taustal <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Kokku <xliff:g id="TIME">^1</xliff:g> • Viimase 24 tunni jooksul taustal vähem kui minut"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Kokku <xliff:g id="TIME_0">^1</xliff:g> • Ajavahemikus <xliff:g id="TIME_PERIOD">^2</xliff:g> taustal vähem kui minut"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Pole viimase 24 tunni jooksul kasutatud"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Aku järelejäänud tööaja prognoos põhineb seadme kasutusel"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Hinnanguline järelejäänud aeg"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 862a485..bc45ff8 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNak"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editatu sarbide-puntua"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ezarri gabe"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ez da ezarri"</string>
     <string name="apn_name" msgid="6677695784108157953">"Izena"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxya"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Bateria-erabilera"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Guztiz kargatu zenetik"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Kudeatu bateria-erabilera"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Guztira: <xliff:g id="TIME_0">^1</xliff:g> • Atzeko planoko erabilera azken 24 orduetan: <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> guztira • <xliff:g id="TIME_1">^2</xliff:g> atzeko planoan <xliff:g id="TIME_PERIOD">^3</xliff:g> bitartean"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Minutu bat baino gutxiago guztira azken 24 orduetan"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Minutu bat baino gutxiago guztira <xliff:g id="TIME_PERIOD">^1</xliff:g> bitartean"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Minutu bat baino gutxiago atzeko planoan azken 24 orduetan"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Minutu bat baino gutxiago atzeko planoan <xliff:g id="TIME_PERIOD">^1</xliff:g> bitartean"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> guztira azken 24 orduetan"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> guztira <xliff:g id="TIME_PERIOD">^2</xliff:g> bitartean"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> atzeko planoan azken 24 orduetan"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> atzeko planoan <xliff:g id="TIME_PERIOD">^2</xliff:g> bitartean"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> guztira • Minutu bat baino gutxiago atzeko planoan azken 24 orduetan"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> guztira • Minutu bat baino gutxiago atzeko planoan <xliff:g id="TIME_PERIOD">^2</xliff:g> bitartean"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Erabilerarik ez azken 24 orduetan"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Gailuaren erabileran oinarritzen da gelditzen den bateriaren aurreikuspena"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geratzen den denbora, gutxi gorabehera"</string>
@@ -4760,7 +4751,7 @@
     <string name="emergency_gesture_call_for_help_title" msgid="4969340870836239982">"Deitu laguntza behar izanez gero"</string>
     <string name="emergency_gesture_call_for_help_dialog_title" msgid="8901271205171421201">"Laguntza behar izanez gero erabili beharreko zenbakia"</string>
     <string name="emergency_gesture_call_for_help_summary" msgid="6552830427932669221">"<xliff:g id="PHONE_NUMBER">%1$s</xliff:g>. Sakatu aldatzeko."</string>
-    <string name="emergency_gesture_number_override_notes" msgid="233018570696200402">"Larrialdi-zerbitzuetakoa ez den zenbaki bat idazten baduzu:\n • Gailuak desblokeatuta egon beharko du SOS larrialdia erabiltzeko.\n • Baliteke deiari inork ez erantzutea."</string>
+    <string name="emergency_gesture_number_override_notes" msgid="233018570696200402">"Larrialdi-zerbitzuetakoa ez den zenbaki bat markatzen baduzu:\n • Gailuak desblokeatuta egon beharko du SOS larrialdia erabiltzeko.\n • Baliteke deiari inork ez erantzutea."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="2271217256447175017">"Pasatu hatza sentsoretik jakinarazpenak ikusteko"</string>
     <string name="fingerprint_gesture_screen_title" msgid="9086261338232806522">"Pasatu hatza sentsoretik"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="286662791588779673">"Jakinarazpenei begiratu bat emateko, pasatu hatza behera telefonoaren atzealdeko hatz-marken sentsorean."</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 9fb72ec..8c1dcd6 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"نام‌های نقاط دستیابی"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ویرایش نقطه دستیابی"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"تنظیم نشده است"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"تنظیم‌نشده"</string>
     <string name="apn_name" msgid="6677695784108157953">"نام"</string>
     <string name="apn_apn" msgid="5812828833797458602">"نام نقطه دستیابی"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"پروکسی"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"مصرف باتری"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"از زمان شارژ کامل"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"مدیریت مصرف باتری"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> درمجموع • <xliff:g id="TIME_1">^2</xliff:g> استفاده در پس‌زمینه طی ۲۴ ساعت گذشته"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> درمجموع • <xliff:g id="TIME_1">^2</xliff:g> استفاده در پس‌زمینه در بازه <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"مجموع کمتر از یک دقیقه در ۲۴ ساعت گذشته"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"مجموع کمتر از یک دقیقه در بازه <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"کمتر از یک دقیقه استفاده در پس‌زمینه طی ۲۴ ساعت گذشته"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"کمتر از یک دقیقه استفاده در پس‌زمینه در بازه <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"مجموع <xliff:g id="TIME">^1</xliff:g> در ۲۴ ساعت گذشته"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"مجموع <xliff:g id="TIME_0">^1</xliff:g> در بازه <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> استفاده در پس‌زمینه طی ۲۴ ساعت گذشته"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> استفاده در پس‌زمینه در بازه <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> درمجموع • کمتر از یک دقیقه استفاده در پس‌زمینه طی ۲۴ ساعت گذشته"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> درمجموع • کمتر از یک دقیقه استفاده در پس‌زمینه در بازه <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"در ۲۴ ساعت گذشته استفاده نشده است"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"شارژ باتری باقی‌مانده براساس مصرف دستگاه تخمین زده می‌شود"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"زمان باقی‌مانده تخمینی"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index be9658a..44ca620 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN:t"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Muokkaa tukiasemaa"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ei asetettu"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ei valittu"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nimi"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Välityspalvelin"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Akun käyttö"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Edellisen täyden latauksen jälkeen"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Hallitse akun käyttöä"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> yhteensä • <xliff:g id="TIME_1">^2</xliff:g> taustalla 24 viime tunnin sisällä"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Yhteensä <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> taustalla klo <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Yhteensä alle minuutti 24 viime tunnin aikana"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Yhteensä alle minuutti klo <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Alle minuutti taustalla 24 viime tunnin aikana"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Alle minuutti taustalla klo <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Yhteensä <xliff:g id="TIME">^1</xliff:g> 24 viime tunnin aikana"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Yhteensä <xliff:g id="TIME_0">^1</xliff:g> klo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> taustalla 24 viime tunnin aikana"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> taustalla klo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Yhteensä <xliff:g id="TIME">^1</xliff:g> • alle minuutti taustalla 24 viime tunnin aikana"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Yhteensä <xliff:g id="TIME_0">^1</xliff:g> • alle minuutti taustalla klo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Ei käyttöä 24 viime tunnin aikana"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Arvio akun kestosta perustuu aiempaan laitteen käyttöön."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Arvioitu jäljellä oleva aika"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 6d9a0a1..e6ce058 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Noms des points d\'accès"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifier le point d\'accès"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Non défini"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Non configuré"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nom"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Nom du point d\'accès"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Serveur mandataire"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Utilisation de la pile"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Depuis la charge complète"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Gérer l\'utilisation de la pile"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> au total • <xliff:g id="TIME_1">^2</xliff:g> en arrière-plan au cours des dernières 24 h"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> au total • <xliff:g id="TIME_1">^2</xliff:g> d\'utilisation en arrière-plan durant la période de <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Utilisation au total : moins d\'une minute au cours des dernières 24 heures"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Utilisation au total : moins d\'une minute durant la période de <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Utilisation en arrière-plan : moins d\'une minute au cours des dernières 24 heures"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Utilisation en arrière-plan : moins d\'une minute durant la période de <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> d\'utilisation au total au cours des dernières 24 heures"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> d\'utilisation au total durant la période de <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> d\'utilisation en arrière-plan au cours des dernières 24 heures"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> d\'utilisation en arrière-plan durant la période de <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> au total • Utilisation en arrière-plan : moins d\'une minute au cours des dernières 24 heures"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> au total • Utilisation en arrière-plan : moins d\'une minute durant la période de <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Aucune utilisation au cours des dernières 24 heures"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"L\'estimation de l\'autonomie restante est basée sur l\'utilisation de l\'appareil"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Temps restant estimé"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 66f152b..ddfe498 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Editar punto de acceso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Sen configurar"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Sen configurar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Uso da batería"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Desde a carga completa"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Xestionar o uso da batería"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Uso total: <xliff:g id="TIME_0">^1</xliff:g> • Uso en segundo plano durante as últimas 24 horas: <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> de uso en total • <xliff:g id="TIME_1">^2</xliff:g> de uso en segundo plano no seguinte período: <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Uso total de menos dun minuto nas últimas 24 horas"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Uso total de menos dun minuto no seguinte período: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Uso en segundo plano de menos dun minuto nas últimas 24 horas"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Uso en segundo plano de menos dun minuto no seguinte período: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> de uso en total nas últimas 24 horas"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> de uso en total no seguinte período: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> de uso en segundo plano nas últimas 24 horas"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> de uso en segundo plano no seguinte período: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> de uso en total • Uso en segundo plano de menos dun minuto nas últimas 24 horas"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> de uso en total • Uso en segundo plano de menos dun minuto no seguinte período: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Sen uso da batería nas últimas 24 horas"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"A estimación do nivel de batería baséase no uso do dispositivo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo restante estimado"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index c611129..d5187e7 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"તમારો ફોન અનલૉક કરવા માટે તમારી ફિંગરપ્રિન્ટનો ઉપયોગ કરવો એ કોઈ સશક્ત પૅટર્ન કે પિન કરતાં કદાચ ઓછું સુરક્ષિત હોઈ શકે છે"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"તેની કાર્ય કરવાની રીત"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"ફિંગરપ્રિન્ટ અનલૉક સુવિધા પ્રમાણીકરણ દરમિયાન તમારી ઓળખ કરવા માટે તમારી ફિંગરપ્રિન્ટનું વિશેષ મૉડલ બનાવે છે. સેટઅપ દરમિયાન ફિંગરપ્રિન્ટનું આ મૉડલ બનાવવા માટે, તમે જુદી-જુદી સ્થિતિમાં તમારી ફિંગરપ્રિન્ટની છબીઓ લેશો."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"તમારી ફિંગરપ્રિન્ટનું મૉડલ અપડેટ કરવા માટે, તમારો ફોન ફિંગરપ્રિન્ટ વડે અનલૉક કરવાની સુવિધા સાથેની તમારી ક્રિયાપ્રતિક્રિયાઓમાંથી પણ છબીઓનો ઉપયોગ કરશે. તમારી ફિંગરપ્રિન્ટનું મૉડલ બનાવવા માટે ઉપયોગમાં લેવાયેલી છબીઓને ક્યારેય પણ સ્ટોર કરવામાં આવતી નથી, પણ ફિંગરપ્રિન્ટના મૉડલને તમારા ફોન પર સુરક્ષિત રીતે સ્ટોર કરવામાં આવે છે અને તે હંમેશાં તમારા ફોનમાં જ રહે છે. બધી પ્રક્રિયાઓ સુરક્ષિત રીતે તમારા ફોનમાં જ કરવામાં આવે છે."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"તમારી ફિંગરપ્રિન્ટનું મૉડલ અપડેટ કરવા માટે, તમારો ફોન ફિંગરપ્રિન્ટ વડે અનલૉક કરવાની સુવિધા સાથેની તમારી ક્રિયાપ્રતિક્રિયાઓમાંની છબીઓનો પણ ઉપયોગ કરશે. તમારી ફિંગરપ્રિન્ટનું મૉડલ બનાવવા માટે ઉપયોગમાં લેવાયેલી છબીઓને ક્યારેય પણ સ્ટોર કરવામાં આવતી નથી, પણ ફિંગરપ્રિન્ટના મૉડલને તમારા ફોન પર સુરક્ષિત રીતે સ્ટોર કરવામાં આવે છે અને તે હંમેશાં તમારા ફોનમાં જ રહે છે. બધી પ્રક્રિયાઓ સુરક્ષિત રીતે તમારા ફોનમાં જ કરવામાં આવે છે."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"તમે તમારી ફિંગરપ્રિન્ટનું મૉડલ ડિલીટ કરી શકો છો અથવા કોઈપણ સમયે સેટિંગમાં ફિંગરપ્રિન્ટ વડે અનલૉક કરવાની સુવિધાને બંધ કરી શકો છો. જ્યાં સુધી તમે ફિંગરપ્રિન્ટના મૉડલ ડિલીટ ન કરો, ત્યાં સુધી તેમને તમારા ફોન પર સ્ટોર કરવામાં આવે છે."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"દરેક વખતે હળવેથી તમારી આંગળીની સ્થિતિ બદલો"</string>
@@ -2796,8 +2796,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"બૅકગ્રાઉન્ડ: એક મિનિટ કરતાં ઓછો સમય"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"કુલ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"બૅકગ્રાઉન્ડ: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"બૅટરીના વપરાશનો ડેટા અંદાજિત છે અને જ્યારે ફોન ચાર્જ થઈ રહ્યો હોય, ત્યારે તેના વપરાશની ગણતરી કરવામાં આવતી નથી"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"પ્રક્રિયા આંકડા"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"ચાલુ પ્રક્રિયાઓ વિશેનાં અવ્યવસ્થિત આંકડાઓ"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"મેમરીનો ઉપયોગ"</string>
@@ -5056,8 +5055,7 @@
     <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="506057560516483258">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="4337061745216872524">"પસંદગીનો નેટવર્ક મોડ: LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="3396717432149544381">"પસંદગીનો નેટવર્ક મોડ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
-    <!-- no translation found for network_5G_recommended (4769018972369031538) -->
-    <skip />
+    <string name="network_5G_recommended" msgid="4769018972369031538">"5G (ભલામણ કરવામાં આવે છે)"</string>
     <string name="network_lte" msgid="2449425437381668780">"LTE (સુઝાવ આપેલ)"</string>
     <string name="network_4G" msgid="9018841362928321047">"4G (સુઝાવ આપેલ)"</string>
     <string name="label_available" msgid="5305726869955838606">"ઉપલબ્ધ નેટવર્ક"</string>
@@ -5411,9 +5409,7 @@
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"જ્યારે ઍપ તમે કૉપિ કરેલી ટેક્સ્ટ, છબીઓ કે અન્ય કન્ટેન્ટનો ઍક્સેસ કરે ત્યારે મેસેજ બતાવો"</string>
     <string name="all_apps" msgid="3054120149509114789">"બધી ઍપ"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"મંજૂરી આપશો નહીં"</string>
-    <!-- no translation found for uwb_settings_title (8578498712312002231) -->
-    <skip />
+    <string name="uwb_settings_title" msgid="8578498712312002231">"અલ્ટ્રા-વાઇડબૅન્ડ (UWB)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"UWB ધરાવતાં નજીકના ડિવાઇસનું સંબંધિત અંતર ઓળખવામાં સહાય કરે છે"</string>
-    <!-- no translation found for uwb_settings_summary_airplane_mode (1328864888135086484) -->
-    <skip />
+    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"UWBનો ઉપયોગ કરવા માટે એરપ્લેન મોડ બંધ કરો"</string>
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index d2ba065..d99747d 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"ऐक्सेस पॉइंट नाम"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ऐक्सेस पॉइंट में बदलाव करें"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"सेट नहीं है"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"सेट नहीं है"</string>
     <string name="apn_name" msgid="6677695784108157953">"नाम"</string>
     <string name="apn_apn" msgid="5812828833797458602">"एपीएन"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"प्रॉक्सी"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"बैटरी खर्च"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"पूरी तरह चार्ज होने के बाद से अब तक"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"बैटरी खर्च को मैनेज करें"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"बैटरी का कुल इस्तेमाल <xliff:g id="TIME_0">^1</xliff:g> तक हुआ • पिछले 24 घंटे में, बैकग्राउंड में बैटरी का इस्तेमाल <xliff:g id="TIME_1">^2</xliff:g> तक हुआ"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_PERIOD">^3</xliff:g> के बीच बैटरी के कुल <xliff:g id="TIME_0">^1</xliff:g> के इस्तेमाल में से • <xliff:g id="TIME_1">^2</xliff:g> तक बैकग्राउंड में इसका इस्तेमाल हुआ"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"पिछले 24 घंटे में, बैटरी का कुल इस्तेमाल एक मिनट से भी कम हुआ"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> के बीच, बैटरी का इस्तेमाल एक मिनट से भी कम हुआ"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"पिछले 24 घंटे में, बैकग्राउंड में बैटरी का इस्तेमाल एक मिनट से भी कम हुआ"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> के बीच, बैकग्राउंड में बैटरी का इस्तेमाल एक मिनट से भी कम हुआ"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"पिछले 24 घंटे में, बैटरी का कुल इस्तेमाल <xliff:g id="TIME">^1</xliff:g> तक हुआ"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> के बीच, बैटरी का इस्तेमाल <xliff:g id="TIME_0">^1</xliff:g> तक हुआ"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"पिछले 24 घंटे में, बैकग्राउंड में बैटरी का इस्तेमाल <xliff:g id="TIME">^1</xliff:g> तक हुआ"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> के बीच, बैकग्राउंड में बैटरी का इस्तेमाल <xliff:g id="TIME_0">^1</xliff:g> तक हुआ"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"बैटरी का कुल इस्तेमाल <xliff:g id="TIME">^1</xliff:g> तक हुआ • पिछले 24 घंटे में, बैकग्राउंड में बैटरी का इस्तेमाल एक मिनट से भी कम हुआ"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_PERIOD">^2</xliff:g> के बीच बैटरी के कुल <xliff:g id="TIME_0">^1</xliff:g> के इस्तेमाल में से • बैकग्राउंड में इसका इस्तेमाल एक मिनट से भी कम हुआ"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"पिछले 24 घंटे में, बैटरी का इस्तेमाल नहीं हुआ"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"डिवाइस के इस्तेमाल के हिसाब से अनुमान लगाया गया है कि फ़ोन की बैटरी और कितनी देर चलेगी"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"अनुमानित बचा हुआ समय"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 1d50bf9..107db6b 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -1646,8 +1646,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ovi"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Uređivanje pristupne točke"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nije postavljeno"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nije postavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naziv"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2769,26 +2768,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Potrošnja baterije"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Od potpunog punjenja"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Upravljanje potrošnjom baterije"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Ukupno <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> u pozadini u posljednja 24 h"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Ukupno <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> u pozadini u razdoblju <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Ukupno manje od minute u zadnja 24 sata"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Ukupno manje od minute u razdoblju <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Manje od minute u pozadini u posljednja 24 h"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Manje od minute u pozadini u razdoblju <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> ukupno u zadnja 24 h"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> ukupno u razdoblju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> u pozadini u posljednja 24 h"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> u pozadini u razdoblju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Ukupno <xliff:g id="TIME">^1</xliff:g> • manje od minute u pozadini u posljednja 24 h"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Ukupno <xliff:g id="TIME_0">^1</xliff:g> • manje od minute u pozadini u razdoblju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nije bilo upotrebe u zadnja 24 h"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Procjena stanja baterije temelji se na upotrebi uređaja"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Procijenjeno preostalo vrijeme"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 4a9e01e..54f9b17 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Előfordulhat, hogy a telefon ujjlenyomat-alapú feloldása kevésbé biztonságos, mint egy bonyolult minta vagy PIN-kód."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Hogyan működik?"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Az ujjlenyomat-alapú feloldás egyéni modellt hoz létre az Ön ujjlenyomatáról, hogy az eszköz felismerje Önt a hitelesítés során. Az ujjlenyomatmodellnek a beállítás során való létrehozásához képeket kell készítenie az ujjlenyomatáról különböző szögekből."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"A telefon ezenkívül az ujjlenyomat-alapú feloldás használata során készült korábbi képeket is felhasználja az ujjlenyomatmodell frissítésére. Az ujjlenyomat-modell elkészítéséhez használt képeket nem, de magát az ujjlenyomat-modellt biztonságosan tárolja a telefon, és az ujjlenyomat-modell sosem kerül ki a telefonról. A feldolgozás teljes mértékben és biztonságos módon a telefon történik."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"A telefon ezenkívül az ujjlenyomat-alapú feloldás használata során készült korábbi képeket is felhasználja az ujjlenyomatmodell frissítésére. Az ujjlenyomatmodell elkészítéséhez használt képeket nem, de magát az ujjlenyomatmodellt biztonságosan tárolja a telefon, és az ujjlenyomatmodell sosem kerül ki a telefonról. A feldolgozás teljes mértékben és biztonságos módon a telefon történik."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"A Beállítások menüben bármikor törölheti az ujjlenyomatmodellt, illetve kikapcsolhatja a Feloldás ujjlenyomattal funkciót. A telefon addig tárolja az ujjlenyomatmodelleket, amíg Ön nem törli őket."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Módosítsa minden alkalommal kis mértékben ujja helyzetét."</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ek"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Hozzáférési pont szerkesztése"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nincs megadva"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nincs beállítva"</string>
     <string name="apn_name" msgid="6677695784108157953">"Név"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Akkumulátorhasználat"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Teljes feltöltés óta"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Akkumulátorhasználat kezelése"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Összesen: <xliff:g id="TIME_0">^1</xliff:g> • Háttérben az elmúlt 24 óra során: <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Összesen <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> a háttérben a következő időintervallumban: <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Összesen kevesebb, mint egy perc az elmúlt 24 órában"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Összesen kevesebb, mint egy perc a következő időintervallumban: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Kevesebb, mint egy percig a háttérben az elmúlt 24 órában"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Kevesebb, mint egy percig a háttérben a következő időintervallumban: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Összesen <xliff:g id="TIME">^1</xliff:g> az elmúlt 24 órában"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Összesen <xliff:g id="TIME_0">^1</xliff:g> a következő időintervallumban: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> a háttérben az elmúlt 24 órában"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> a háttérben a következő időintervallumban: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Összesen <xliff:g id="TIME">^1</xliff:g> • kevesebb, mint egy percig a háttérben az elmúlt 24 órában"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Összesen <xliff:g id="TIME_0">^1</xliff:g> • kevesebb, mint egy percig a háttérben a következő időintervallumban: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nem volt használatban az elmúlt 24 órában"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Az akkumulátor becsült töltöttsége az eszközhasználaton alapszik"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Becsült hátralévő idő"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 8d11bf1..8a7f894 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ներ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Խմբագրել մուտքի կետը"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Կարգավորված չէ"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Նշված չէ"</string>
     <string name="apn_name" msgid="6677695784108157953">"Անունը"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Պրոքսի"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Մարտկոցի օգտագործում"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Լրիվ լիցքավորումից հետո"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Մարտկոցի օգտագործման կառավարում"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Ընդհանուր <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> ֆոնային ռեժիմում՝ վերջին 24 ժամվա ընթացքում"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Ընդհանուր <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> ֆոնային ռեժիմում՝ <xliff:g id="TIME_PERIOD">^3</xliff:g> ժամանակահատվածում"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Վերջին 24 ժամվա ընթացքում ընդհանուր մինչև մեկ րոպե աշխատանք ֆոնային ռեժիմում"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> ժամանակահատվածում ընդհանուր մինչև մեկ րոպե"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Մինչև մեկ րոպե ֆոնային ռեժիմում՝ վերջին 24 ժամվա ընթացքում"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Մինչև մեկ րոպե ֆոնային ռեժիմում՝ <xliff:g id="TIME_PERIOD">^1</xliff:g> ժամանակահատվածում"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Ընդհանուր <xliff:g id="TIME">^1</xliff:g> վերջին 24 ժամվա ընթացքում"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Ընդհանուր <xliff:g id="TIME_0">^1</xliff:g>՝ <xliff:g id="TIME_PERIOD">^2</xliff:g> ժամանակահատվածում"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> ֆոնային ռեժիմում՝ վերջին 24 ժամվա ընթացքում"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> ֆոնային ռեժիմում՝ <xliff:g id="TIME_PERIOD">^2</xliff:g> ժամանակահատվածում"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Ընդհանուր <xliff:g id="TIME">^1</xliff:g> • Մինչև մեկ րոպե ֆոնային ռեժիմում՝ վերջին 24 ժամվա ընթացքում"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Ընդհանուր <xliff:g id="TIME_0">^1</xliff:g> • Մինչև մեկ րոպե ֆոնային ռեժիմում՝ <xliff:g id="TIME_PERIOD">^2</xliff:g> ժամանակահատվածում"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Վերջին 24 ժամվա ընթացքում օգտագործում չի գրանցվել"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Մարտկոցի աշխատանքի տևողությունը մոտավոր է և կախված է սարքի օգտագործումից"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Մոտավոր մնացած ժամանակը"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index de6120d..dd5468a 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit titik akses"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Tidak disetel"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Belum disetel"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nama"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Penggunaan baterai"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Sejak baterai terisi penuh"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Mengelola penggunaan baterai"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Total <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> di latar belakang selama 24 jam terakhir"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Total <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> di latar belakang selama <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Total kurang dari satu menit selama 24 jam terakhir"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Total kurang dari satu menit selama <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Di latar belakang kurang dari satu menit selama 24 jam terakhir"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Di latar belakang kurang dari satu menit selama <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Total <xliff:g id="TIME">^1</xliff:g> selama 24 jam terakhir"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Total <xliff:g id="TIME_0">^1</xliff:g> selama <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> di latar belakang selama 24 jam terakhir"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> di latar belakang selama <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Total <xliff:g id="TIME">^1</xliff:g> • di latar belakang kurang dari satu menit selama 24 jam terakhir"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Total <xliff:g id="TIME_0">^1</xliff:g> • di latar belakang kurang dari satu menit selama <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Tidak ada penggunaan selama 24 jam terakhir"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Perkiraan sisa baterai berdasarkan pada penggunaan perangkat"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Perkiraan sisa waktu"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 6976222..d65e153 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Aðgangsstaðir"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Breyta aðgangsstað"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ekki stillt"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ekki stillt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Heiti"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Aðgangsstaður"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy-þjónn"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Rafhlöðunotkun"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Frá síðustu fullu hleðslu"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Stjórna rafhlöðunotkun"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> alls • <xliff:g id="TIME_1">^2</xliff:g> í bakgrunni síðasta sólarhringinn"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> alls • <xliff:g id="TIME_1">^2</xliff:g> í bakgrunni frá <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Alls innan við mínútu síðasta sólarhringinn"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Alls innan við mínútu frá <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Í bakgrunni innan við mínútu síðasta sólarhringinn"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Í bakgrunni innan við mínútu frá <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> alls síðasta sólarhringinn"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> alls frá <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> í bakgrunni síðasta sólarhringinn"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> í bakgrunni frá <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> alls • í bakgrunni innan við mínútu síðasta sólarhringinn"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> alls • í bakgrunni innan við mínútu frá <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Engin notkun síðasta sólarhringinn"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Áætluð rafhlöðuending er byggð á notkun þinni á tækinu"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Áætlaður tími eftir"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index b380ff6..694ed4b 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Modifica punto di accesso"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nessuna impostazione"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nessun valore impostato"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nome"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Utilizzo batteria"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Dalla ricarica completa"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Gestisci utilizzo batteria"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Totale: <xliff:g id="TIME_0">^1</xliff:g> • In background: <xliff:g id="TIME_1">^2</xliff:g> nelle ultime 24 ore"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Totale: <xliff:g id="TIME_0">^1</xliff:g> • In background: <xliff:g id="TIME_1">^2</xliff:g> nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Totale: meno di un minuto nelle ultime 24 ore"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Totale: meno di un minuto nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"In background: meno di un minuto nelle ultime 24 ore"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"In background: meno di un minuto nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Totale: <xliff:g id="TIME">^1</xliff:g> nelle ultime 24 ore"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Totale: <xliff:g id="TIME_0">^1</xliff:g> nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"In background: <xliff:g id="TIME">^1</xliff:g> nelle ultime 24 ore"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"In background: <xliff:g id="TIME_0">^1</xliff:g> nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Totale: <xliff:g id="TIME">^1</xliff:g> • In background: meno di un minuto nelle ultime 24 ore"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Totale: <xliff:g id="TIME_0">^1</xliff:g> • In background: meno di un minuto nell\'intervallo di tempo <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nessun utilizzo nelle ultime 24 ore"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"La stima della batteria residua si basa sul tuo utilizzo del dispositivo"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tempo residuo stimato"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index ed6ce24..856ce76 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -433,10 +433,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"ייתכן שביטול הנעילה על ידי שימוש בטביעת אצבע היא שיטה פחות בטוחה מקו ביטול נעילה או מקוד אימות חזקים"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"איך זה עובד"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"התכונה \'ביטול נעילה באמצעות טביעת אצבע\' יוצרת תבנית ייחודית של טביעת האצבע כדי לזהות אותך במהלך האימות. כדי ליצור את התבנית לטביעת האצבע במהלך ההגדרה, עליך לצלם תמונות של טביעת האצבע מזוויות שונות."</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"גם התמונות מהאינטראקציות שלך במהלך ביטול נעילה באמצעות טביעת אצבע ישמשו את הטלפון כדי לעדכן את התבנית לטביעת האצבע. התמונות שמשמשות ליצירת התבנית של טביעת האצבע אף פעם לא נשמרות, אבל התבנית של טביעת האצבע נשמרת באופן מאובטח בטלפון שלך ואף פעם לא נשלחת או מועברת ממנו. כל פעולות העיבוד מתבצעות בטלפון באופן מאובטח."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"בכל שלב אפשר למחוק את התבנית של טביעת האצבע או להשבית את \'ביטול הנעילה באמצעות טביעת האצבע\' דרך ה\'הגדרות\'. התבניות של טביעת האצבע נשמרות בטלפון עד שהן נמחקות."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"יש לשנות מעט את תנוחת האצבע בכל פעם"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"האצבע צריכה להיות מונחת כך שמרכז טביעת האצבע יכסה את הסמל"</string>
@@ -1669,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"‏פריטי APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"עריכת נקודת גישה"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"לא מוגדר"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"לא הוגדר"</string>
     <string name="apn_name" msgid="6677695784108157953">"שם"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"‏שרת Proxy"</string>
@@ -2809,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"שימוש בסוללה"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"מאז הטעינה המלאה"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"ניהול השימוש בסוללה"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> בסה\"כ • <xliff:g id="TIME_1">^2</xliff:g> ברקע במהלך 24 השעות האחרונות"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> בסה\"כ • <xliff:g id="TIME_1">^2</xliff:g> ברקע בשעות <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"פחות מדקה בסה\"כ במשך 24 השעות האחרונות"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"פחות מדקה בסה\"כ בשעות <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"פחות מדקה ברקע במשך 24 השעות האחרונות"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"פחות מדקה ברקע בשעות <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> בסה\"כ במשך 24 השעות האחרונות"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> בסה\"כ בשעות <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> ברקע במשך 24 השעות האחרונות"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> ברקע בשעות <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> בסה\"כ • פחות מדקה ברקע במשך 24 השעות האחרונות"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> בסה\"כ • פחות מדקה ברקע בשעות <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"לא בשימוש במשך 24 השעות האחרונות"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"הערכת הזמן שנותר עד שתיגמר הסוללה מבוססת על השימוש שנעשה במכשיר"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"זמן משוער שנותר"</string>
@@ -2874,8 +2863,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ברקע: פחות מדקה"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"סה\"כ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ברקע: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"נתוני השימוש בסוללה משוערים ולא כוללים מדדים של השימוש בסוללה כשהטלפון בטעינה"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"סטטיסטיקה של תהליך"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"סטטיסטיקה של מומחי מחשבים על התהליכים הפועלים"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"זיכרון בשימוש"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 6241465..f27fa3d 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"アクセスポイントの編集"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名前"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"プロキシ"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"電池使用量"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"フル充電以降の電池の使用状況"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"電池使用量の管理"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"合計: <xliff:g id="TIME_0">^1</xliff:g> • バックグラウンド: <xliff:g id="TIME_1">^2</xliff:g>（過去 24 時間）"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_PERIOD">^3</xliff:g> の合計: <xliff:g id="TIME_0">^1</xliff:g> • バックグラウンドでの使用: <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"過去 24 時間の合計: 1 分未満"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> の合計: 1 分未満"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"過去 24 時間のバックグラウンドでの使用: 1 分未満"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> のバックグラウンドでの使用: 1 分未満"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"過去 24 時間の合計: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> の合計: <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"過去 24 時間のバックグラウンドでの使用: <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> のバックグラウンドでの使用: <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"過去 24 時間の合計: <xliff:g id="TIME">^1</xliff:g> • バックグラウンドでの使用: 1 分未満"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_PERIOD">^2</xliff:g> の合計: <xliff:g id="TIME_0">^1</xliff:g> • バックグラウンドでの使用: 1 分未満"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"過去 24 時間の使用: なし"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"電池残量はデバイスの使用状況に基づく推定値です"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"予測される残り時間"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index cad98c3..0d3f1ae 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ები"</string>
     <string name="apn_edit" msgid="2003683641840248741">"წვდომის წერტილის რედაქტირება"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"არ არის დაყენებული"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"არ არის დაყენებული"</string>
     <string name="apn_name" msgid="6677695784108157953">"სახელი"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"პროქსი-სერვერი"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"ბატარეის მოხმარება"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"სრული დატენვიდან"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"ბატარეის მოხმარების მართვა"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"სულ <xliff:g id="TIME_0">^1</xliff:g> • ფონურად <xliff:g id="TIME_1">^2</xliff:g> ბოლო 24 საათის განმავლობაში"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"სულ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> ფონურად <xliff:g id="TIME_PERIOD">^3</xliff:g> პერიოდის განმავლობაში"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"სულ წუთზე ნაკლები ბოლო 24 საათის განმავლობაში"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"სულ წუთზე ნაკლები <xliff:g id="TIME_PERIOD">^1</xliff:g>-ის განმავლობაში"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"ფონურად წუთზე ნაკლები ბოლო 24 საათის განმავლობაში"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"ფონურად წუთზე ნაკლები <xliff:g id="TIME_PERIOD">^1</xliff:g> პერიოდის განმავლობაში"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"სულ <xliff:g id="TIME">^1</xliff:g> ბოლო 24 საათის განმავლობაში"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"სულ <xliff:g id="TIME_0">^1</xliff:g> <xliff:g id="TIME_PERIOD">^2</xliff:g>-ის განმავლობაში"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> ფონურად ბოლო 24 საათში"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> ფონურად <xliff:g id="TIME_PERIOD">^2</xliff:g> პერიოდის განმავლობაში"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"სულ <xliff:g id="TIME">^1</xliff:g> • ფონურად წუთზე ნაკლები ბოლო 24 საათის განმავლობაში"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"სულ <xliff:g id="TIME_0">^1</xliff:g> • ფონურად წუთზე ნაკლები <xliff:g id="TIME_PERIOD">^2</xliff:g> პერიოდის განმავლობაში"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"ბოლო 24 საათში გამოყენება არ მომხდარა"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ბატარეის მუშაობის დარჩენილი ხანგრძლივობის მიახლოებითი ვარაუდი თქვენი მოწყობილობის მოხმარებას ეყრდნობა"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"სავარაუდო დარჩენილი დრო"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 709810c..dc6ddd0 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Кіру нүктесін өзгерту"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Қойылмаған"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Орнатылмаған"</string>
     <string name="apn_name" msgid="6677695784108157953">"Атауы"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Прокси"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Батарея шығыны"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Толық зарядталғаннан кейін"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Батарея шығынын қадағалау"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Жалпы пайдалану уақыты: <xliff:g id="TIME_0">^1</xliff:g> • Фондық режимде: <xliff:g id="TIME_1">^2</xliff:g> (соңғы 24 сағат ішінде)"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Жалпы пайдаланылу уақыты: <xliff:g id="TIME_0">^1</xliff:g>. • <xliff:g id="TIME_PERIOD">^3</xliff:g> аралығында фондық режимде пайдаланылу уақыты: <xliff:g id="TIME_1">^2</xliff:g>."</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Соңғы 24 сағатта жалпы пайдаланылу уақыты: 1 минуттан кем."</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> аралығында жалпы пайдаланылу уақыты: 1 минуттан кем."</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Соңғы 24 сағатта фондық режимде пайдаланылу уақыты: 1 минуттан кем."</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> аралығында фондық режимде пайдаланылу уақыты: 1 минуттан кем."</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Соңғы 24 сағатта жалпы пайдаланылу уақыты: <xliff:g id="TIME">^1</xliff:g>."</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> аралығында жалпы пайдаланылу уақыты: <xliff:g id="TIME_0">^1</xliff:g>."</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Соңғы 24 сағатта фондық режимде пайдаланылу уақыты: <xliff:g id="TIME">^1</xliff:g>."</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> аралығында фондық режимде пайдаланылу уақыты: <xliff:g id="TIME_0">^1</xliff:g>."</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Жалпы пайдаланылу уақыты: <xliff:g id="TIME">^1</xliff:g>. • Соңғы 24 сағатта фондық режимде пайдаланылу уақыты: 1 минуттан кем."</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Жалпы пайдаланылу уақыты: <xliff:g id="TIME_0">^1</xliff:g>. • <xliff:g id="TIME_PERIOD">^2</xliff:g> аралығында фондық режимде пайдаланылу уақыты: 1 минуттан кем."</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Соңғы 24 сағатта пайдаланылмады."</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Қалған батарея зарядының деңгейі құрылғының пайдаланылуы негізінде анықталады"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Қалған болжалды уақыт"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index dd34082..fb46b91 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"កែ​ចំណុច​ចូលប្រើប្រាស់"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"មិនកំណត់"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"មិនបានកំណត់"</string>
     <string name="apn_name" msgid="6677695784108157953">"ឈ្មោះ"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"ប្រូកស៊ី"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"ការប្រើប្រាស់ថ្ម"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"ចាប់តាំងពីសាកថ្មពេញ"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"គ្រប់គ្រងការប្រើប្រាស់ថ្ម"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"សរុប <xliff:g id="TIME_0">^1</xliff:g> • ប្រើនៅផ្ទៃខាងក្រោយ <xliff:g id="TIME_1">^2</xliff:g> ក្នុងរយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"សរុប <xliff:g id="TIME_0">^1</xliff:g> • បានប្រើ​ផ្ទៃខាងក្រោយ <xliff:g id="TIME_1">^2</xliff:g> សម្រាប់ <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"សរុបតិចជាងមួយនាទីសម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"សរុបតិចជាងមួយនាទីសម្រាប់ <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"បានប្រើ​ផ្ទៃខាងក្រោយតិចជាង​មួយនាទី​សម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"បានប្រើ​ផ្ទៃខាងក្រោយតិចជាង​មួយនាទីសម្រាប់ <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"សរុប <xliff:g id="TIME">^1</xliff:g> សម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"សរុប <xliff:g id="TIME_0">^1</xliff:g> សម្រាប់ <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"បានប្រើ​ផ្ទៃខាងក្រោយ <xliff:g id="TIME">^1</xliff:g> សម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"បានប្រើ​ផ្ទៃខាងក្រោយ <xliff:g id="TIME_0">^1</xliff:g> សម្រាប់ <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"សរុប <xliff:g id="TIME">^1</xliff:g> • បានប្រើ​ផ្ទៃខាងក្រោយ​តិចជាងមួយនាទី​សម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"សរុប <xliff:g id="TIME_0">^1</xliff:g> • បានប្រើ​ផ្ទៃខាងក្រោយ​តិចជាងមួយនាទី​សម្រាប់ <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"មិនមាន​ការប្រើប្រាស់ទេ សម្រាប់រយៈពេល 24 ម៉ោងចុងក្រោយ"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ការ​ប៉ាន់ស្មាន​អំពី​កម្រិត​ថ្ម​ដែល​នៅសល់​គឺ​ផ្អែក​លើ​ការ​ប្រើប្រាស់​ឧបករណ៍​របស់​អ្នក"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"រយៈពេល​នៅ​សល់​ប៉ាន់​ស្មាន"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index c7042d9..4c24f43 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -5058,8 +5058,7 @@
     <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="506057560516483258">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="4337061745216872524">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="3396717432149544381">"ಆದ್ಯತೆಯ ನೆಟ್‌ವರ್ಕ್ ಮೋಡ್: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
-    <!-- no translation found for network_5G_recommended (4769018972369031538) -->
-    <skip />
+    <string name="network_5G_recommended" msgid="4769018972369031538">"5G (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_lte" msgid="2449425437381668780">"LTE (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="network_4G" msgid="9018841362928321047">"4G (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)"</string>
     <string name="label_available" msgid="5305726869955838606">"ಲಭ್ಯವಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳು"</string>
@@ -5413,9 +5412,7 @@
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"ಆ್ಯಪ್‌ಗಳು ನೀವು ನಕಲಿಸಿರುವ ಪಠ್ಯ, ಚಿತ್ರಗಳು ಅಥವಾ ಇತರ ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸುವಾಗ ಸಂದೇಶವೊಂದನ್ನು ತೋರಿಸಿ"</string>
     <string name="all_apps" msgid="3054120149509114789">"ಎಲ್ಲಾ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"ಅನುಮತಿಸಬೇಡಿ"</string>
-    <!-- no translation found for uwb_settings_title (8578498712312002231) -->
-    <skip />
+    <string name="uwb_settings_title" msgid="8578498712312002231">"ಅಲ್ಟ್ರಾ-ವೈಡ್‌ಬ್ಯಾಂಡ್ (UWB)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"UWB ಹೊಂದಿರುವ ಸಮೀಪದ ಸಾಧನಗಳ ಸಂಬಂಧಿತ ಸ್ಥಾನವನ್ನು ಗುರುತಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ"</string>
-    <!-- no translation found for uwb_settings_summary_airplane_mode (1328864888135086484) -->
-    <skip />
+    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"UWB ಬಳಸಲು ಏರ್‌ಪ್ಲೇನ್ ಮೋಡ್ ಅನ್ನು ಆಫ್ ಮಾಡಿ"</string>
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index c3d194f..65a7cd3 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"지문을 통한 휴대전화 잠금 해제는 강력한 패턴 또는 PIN보다 보안이 취약할 수 있습니다."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"작동 방식"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"지문 인식을 통한 잠금 해제를 사용하면 인증 중 사용자를 확인하기 위한 고유한 지문 모델이 생성됩니다. 설정 중 지문 모델을 만들기 위해 다양한 위치에서 지문 이미지를 촬영해야 합니다."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"휴대전화가 지문 잠금 해제 사용 과정에서 인식한 이미지를 활용하여 지문 모델을 업데이트합니다. 지문 모델을 만드는 데 사용된 이미지는 저장되지 않으나 지문 모델은 휴대전화에 안전하게 저장되며 기기 외부로 전송되지 않습니다. 모든 처리는 휴대전화 내에서 안전하게 이뤄집니다."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"휴대전화가 지문 잠금 해제 과정에서 인식한 이미지를 활용하여 지문 모델을 업데이트합니다. 지문 모델을 만드는 데 사용된 이미지는 저장되지 않으나 지문 모델은 휴대전화에 안전하게 저장되며 기기 외부로 전송되지 않습니다. 모든 처리는 휴대전화 내에서 안전하게 이뤄집니다."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"언제든지 설정에서 지문 모델을 삭제하거나 지문 잠금 해제를 사용 중지할 수 있습니다. 지문 모델은 삭제하기 전까지 휴대전화에 저장됩니다."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"지문을 등록할 때마다 손가락을 조금씩 이동하세요."</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"액세스 포인트 수정"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"설정되지 않음"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"설정되지 않음"</string>
     <string name="apn_name" msgid="6677695784108157953">"이름"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"프록시"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"배터리 사용량"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"충전 완료 후"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"배터리 사용량 관리"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"총 <xliff:g id="TIME_0">^1</xliff:g> • 지난 24시간 동안 백그라운드에서 <xliff:g id="TIME_1">^2</xliff:g> 사용"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"총 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> 동안 백그라운드에서 <xliff:g id="TIME_1">^2</xliff:g> 사용"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"지난 24시간 동안의 총 사용 시간: 1분 미만"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g>의 총 사용 시간: 1분 미만"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"지난 24시간 동안 백그라운드에서 1분 미만 사용"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> 동안 백그라운드에서 1분 미만 사용"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"지난 24시간 동안의 총 사용 시간: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g>의 총 사용 시간: <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"지난 24시간 동안 백그라운드에서 <xliff:g id="TIME">^1</xliff:g> 사용"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> 동안 백드라운드에서 <xliff:g id="TIME_0">^1</xliff:g> 사용"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"총 <xliff:g id="TIME">^1</xliff:g> • 지난 24시간 동안 백그라운에서 1분 미만 사용"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"총 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> 동안 백그라운드에서 1분 미만 사용"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"지난 24시간 동안 사용 안 함"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"예상 잔여 배터리 소모 시간은 기기 사용량을 기반으로 표시됩니다."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"남은 예상 시간"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index dedfaba..dc292dd 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Манжа изиңизге караганда телефонуңузду графикалык ачкыч же PIN код менен коргоо бир кыйла коопсуз"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Ал кантип иштейт"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"\"Манжа изи менен ачуу\" функциясы аныктыгыңызды текшерүүдө сизди таануу үчүн, манжаңыздын изинин уникалдуу үлгүсүн түзөт. Манжа изинин үлгүсүн түзүү үчүн манжаңыздын изин ар кайсы абалдан сүрөткө тартышыңыз керек."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Манжаңыздын изинин үлгүсүн жаңыртуу үчүн телефон \"Кулпуланган түзмөктү манжа изи менен ачуу\" функциясы колдонулган аракеттердеги сүрөттөрдү да пайдаланат. Манжа изинин үлгүсүн түзүү үчүн колдонулган сүрөттөр эч качан сакталбайт, ал эми манжаңыздын изинин үлгүсү телефонуңузда гана сакталат. Сүрөттөр телефонуңузда гана иштетилет."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Манжа изинин үлгүсүн жаңыртуу үчүн телефон \"Кулпуланган түзмөктү манжа изи менен ачуу\" функциясы колдонулган аракеттердеги сүрөттөрдү да пайдаланат. Манжа изинин үлгүсүн түзүү үчүн колдонулган сүрөттөр эч качан сакталбайт, ал эми манжаңыздын изинин үлгүсү телефонуңузда гана сакталат. Сүрөттөр телефонуңузда гана иштетилет."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Манжаңыздын изинин үлгүсүн, же болбосо \"Кулпуланган түзмөктү манжа изи менен ачуу\" функциясын каалаган убакта Жөндөөлөргө өтүп, өчүрсөңүз болот. Манжа изинин үлгүлөрү өчүрүлмөйүнчө телефонуңузда сакталат."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Манжаңыздын абалын ар жолкусунда бир аз өзгөртүп туруңуз"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN\'дер"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Байланыш түйүнүн өзгөртүү"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Коюлган эмес"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Коюлган эмес"</string>
     <string name="apn_name" msgid="6677695784108157953">"Аталышы"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Прокси"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Батареянын керектелиши"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Толук кубатталгандан бери"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Батареянын керектелишин башкаруу"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Жалпысынан <xliff:g id="TIME_0">^1</xliff:g> • акыркы 24 сааттын ичинде <xliff:g id="TIME_1">^2</xliff:g> фондо колдонулган"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Жалпысынан <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> аралыгында <xliff:g id="TIME_1">^2</xliff:g> фондо колдонулган"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Акыркы 24 сааттын ичинде жалпысынан 1 мүнөттөн аз убакыт"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> чейин жалпысынан 1 мүнөттөн аз убакыт"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Акыркы 24 сааттын ичинде 1 мүнөттөн аз убакытка фондо колдонулган"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> аралыгында 1 мүнөттөн аз убакытка фондо колдонулган"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Акыркы 24 сааттын ичинде жалпысынан <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> чейин жалпысынан <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Акыркы 24 сааттын ичинде <xliff:g id="TIME">^1</xliff:g> фондо колдонулган"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> аралыгында <xliff:g id="TIME_0">^1</xliff:g> фондо колдонулган"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Жалпысынан <xliff:g id="TIME">^1</xliff:g> • акыркы 24 сааттын ичинде 1 мүнөттөн аз убакытка фондо колдонулган"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Жалпысынан <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> аралыгында 1 мүнөттөн аз убакытка фондо колдонулган"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Акыркы 24 сааттын ичинде колдонулган жок"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Калган убакыт түзмөктүн колдонулушуна жараша эсептелип көрсөтүлүүдө."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Болжолдуу калган убакыт"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ba70bad..f7c7a41 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redaguoti prieigos tašką"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nenustatyta"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nenustatyta"</string>
     <string name="apn_name" msgid="6677695784108157953">"Pavadinimas"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Tarpinis serveris"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Akumuliatoriaus energijos vartojimas"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Nuo visiško įkrovimo"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Tvarkyti akumuliatoriaus naudojimą"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Iš viso <xliff:g id="TIME_0">^1</xliff:g> • Naudota fone <xliff:g id="TIME_1">^2</xliff:g> per pastarąsias 24 val."</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Iš viso <xliff:g id="TIME_0">^1</xliff:g> • Naudota fone <xliff:g id="TIME_1">^2</xliff:g> per <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Iš viso mažiau nei minutę per pastarąsias 24 val."</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Iš viso mažiau nei minutę per <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Naudota fone mažiau nei minutę per pastarąsias 24 val."</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Naudota fone mažiau nei minutę per <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Iš viso <xliff:g id="TIME">^1</xliff:g> per pastarąsias 24 val."</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Iš viso <xliff:g id="TIME_0">^1</xliff:g> per <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Naudota fone <xliff:g id="TIME">^1</xliff:g> per pastarąsias 24 val."</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"Naudota fone <xliff:g id="TIME_0">^1</xliff:g> per <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Iš viso <xliff:g id="TIME">^1</xliff:g> • Naudota fone mažiau nei minutę per pastarąsias 24 val."</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Iš viso <xliff:g id="TIME_0">^1</xliff:g> • Naudota fone mažiau nei minutę per <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nenaudota per pastarąsias 24 val."</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Likęs akumuliatoriaus veikimo laikas numatytas pagal tai, kaip naudojate įrenginį"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Liko laiko (numatyta)"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 6b81fbf..57a590e 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -429,8 +429,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Tālruņa atbloķēšana, izmantojot pirksta nospiedumu, var būt mazāk droša nekā sarežģīta kombinācija vai PIN."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Darbības principi"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Iestatot autorizāciju ar pirksta nospiedumu, tiek izveidots unikāls jūsu pirksta nospieduma modelis, lai autentificēšanas laikā varētu jūs atpazīt. Lai iestatīšanas laikā izveidotu šo pirksta nospieduma modeli, jūs uzņemsiet pirksta nospieduma attēlus no dažādām pozīcijām."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Turklāt, kad izmantosiet autorizāciju ar pirksta nospiedumu, tālrunī tiks atjaunināts jūsu pirksta nospieduma modelis, izmantojot autorizācijas gaitā tvertos attēlus. Pirksta nospieduma modeļa izveidei izmantotie attēli nekad netiek saglabāti, savukārt pirksta nospieduma modelis tiek droši glabāts jūsu tālrunī un vienmēr atrodas tikai tālrunī. Apstrāde tiks veikta drošā veidā un tikai jūsu tālrunī."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Iestatījumos jebkurā laikā varat izdzēst pirksta nospieduma modeli vai izslēgt autorizāciju ar pirksta nospiedumu. Pirkstu nospiedumu modeļi tiek glabāti tālrunī, līdz jūs tos izdzēšat."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Turklāt, kad izmantosiet autorizāciju ar pirksta nospiedumu, pirksta nospieduma modelis tiks atjaunināts, izmantojot tālrunī tvertos attēlus. Pirksta nospieduma modeļa izveidei izmantotie attēli nekad netiek saglabāti, savukārt pirksta nospieduma modelis tiek droši glabāts jūsu tālrunī un vienmēr atrodas tikai tālrunī. Apstrāde tiks veikta drošā veidā un tikai jūsu tālrunī."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Iestatījumos varat jebkurā laikā izdzēst pirksta nospieduma modeli vai izslēgt autorizāciju ar pirksta nospiedumu. Pirkstu nospiedumu modeļi tiek glabāti tālrunī, līdz jūs tos izdzēšat."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Katru reizi mazliet mainiet pirksta pozīciju"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Aizklājiet ikonu ar pirksta nospieduma centru"</string>
@@ -1646,8 +1646,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Rediģēt piekļuves punktu"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nav iestatīts"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nav iestatīts"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nosaukums"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Starpniekserveris"</string>
@@ -2769,26 +2768,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Akumulatora lietojums"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Kopš pilnas uzlādes"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Akumulatora lietojuma pārvaldīšana"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Kopā: <xliff:g id="TIME_0">^1</xliff:g> • Lietojums fonā pēdējo 24 h laikā: <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Kopā: <xliff:g id="TIME_0">^1</xliff:g> • Lietojums fonā: <xliff:g id="TIME_1">^2</xliff:g> (šajā periodā: <xliff:g id="TIME_PERIOD">^3</xliff:g>)"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Mazāk nekā minūti ilgs kopējais lietojums pēdējo 24 h laikā"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Mazāk nekā minūti ilgs kopējais lietojums šajā periodā: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Mazāk nekā minūti ilgs lietojums fonā pēdējo 24 h laikā"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Mazāk nekā minūti ilgs lietojums fonā šajā periodā: <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Kopā: <xliff:g id="TIME">^1</xliff:g> pēdējo 24 h laikā"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> ilgs kopējais lietojums šajā periodā: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Lietojums fonā pēdējo 24 h laikā: <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"Lietojums fonā: <xliff:g id="TIME_0">^1</xliff:g> (šajā periodā: <xliff:g id="TIME_PERIOD">^2</xliff:g>)"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Kopā: <xliff:g id="TIME">^1</xliff:g> • Mazāk nekā minūti ilgs lietojums fonā pēdējo 24 h laikā"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Kopā: <xliff:g id="TIME_0">^1</xliff:g> • Mazāk nekā minūti ilgs lietojums fonā šajā periodā: <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nav lietots pēdējo 24 h laikā"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Akumulatora darbības laiks tiek aprēķināts, pamatojoties uz ierīces lietojuma datiem."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Plānotais atlikušais laiks"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index a101323..5a0dadd 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-കൾ"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ആക്‌സസ് പോയിന്റ് എഡിറ്റ് ചെയ്യുക"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"സജ്ജീകരിച്ചിട്ടില്ല"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"സജ്ജീകരിച്ചിട്ടില്ല"</string>
     <string name="apn_name" msgid="6677695784108157953">"പേര്"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"പ്രോക്‌സി"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"ബാറ്ററി ഉപയോഗം"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"പൂർണ്ണമായി ചാർജ് ചെയ്‌തത് മുതൽ"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"ബാറ്ററി ഉപയോഗം മാനേജ് ചെയ്യുക"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"മൊത്തം <xliff:g id="TIME_0">^1</xliff:g> എന്നതിൽ • കഴിഞ്ഞ 24 മണിക്കൂറിൽ <xliff:g id="TIME_1">^2</xliff:g> പശ്ചാത്തല ഉപയോഗം"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"ആകെ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> എന്നതിന് ഇടയിൽ പശ്ചാത്തല ഉപയോഗം <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെ ആകെ ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> എന്നതിന് ഇടയിൽ ആകെ ഒരു മിനിറ്റിൽ താഴെ"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെയുള്ള പശ്ചാത്തല ഉപയോഗം ഒരു മിനിറ്റിൽ താഴെ"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> എന്നതിന് ഇടയിൽ പശ്ചാത്തല ഉപയോഗം ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെ ആകെ <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> എന്നതിന് ഇടയിൽ ആകെ <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെയുള്ള പശ്ചാത്തല ഉപയോഗം <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> എന്നതിന് ഇടയിൽ പശ്ചാത്തല ഉപയോഗം <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"ആകെ <xliff:g id="TIME">^1</xliff:g> • കഴിഞ്ഞ 24 മണിക്കൂറിനിടെയുള്ള പശ്ചാത്തല ഉപയോഗം ഒരു മിനിറ്റിൽ താഴെ"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"ആകെ <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> എന്നതിന് ഇടയിൽ പശ്ചാത്തല ഉപയോഗം ഒരു മിനിറ്റിൽ താഴെ"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"കഴിഞ്ഞ 24 മണിക്കൂറിനിടെ ഉപയോഗിച്ചിട്ടില്ല"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"നിങ്ങളുടെ ഉപകരണ ഉപയോഗത്തെ അടിസ്ഥാനമാക്കിയുള്ളതാണ് ബാക്കിയുള്ള ബാറ്ററിയുടെ ഏകദേശക്കണക്ക്"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"അവശേഷിക്കുന്ന ഏകദേശ സമയം"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 15d1015..c165388 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Хурууныхаа хээг ашиглан утасныхаа түгжээг тайлах нь хүчтэй хээ эсвэл ПИН-ээс хамгаалалт багатай байж болзошгүй"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Энэ хэрхэн ажилладаг вэ?"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Хурууны хээгээр тайлах онцлог нь таныг баталгаажуулалтын үеэр танихын тулд таны хурууны хээний давтагдашгүй загварыг үүсгэнэ. Тохируулгын үеэр энэ хурууны хээний загварыг үүсгэхийн тулд та хурууныхаа хээний зургийг өөр өөр байрлалаас авна."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Таны хурууны хээний загварыг шинэчлэхийн тулд тухайн утас таны Хурууны хээгээр тайлах онцлогтой хийсэн саяхны харилцан үйлдлийн зургуудыг мөн ашиглана. Таны хурууны хээний загварыг үүсгэхэд ашигласан зургийг хэзээ ч хадгалдаггүй хэдий ч хурууны хээний загварыг утсанд тань аюулгүйгээр хадгалдаг бөгөөд утсанд үлддэг. Бүх боловсруулалтыг таны утсан дээр аюулгүйгээр хийнэ."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Таны хурууны хээний загварыг шинэчлэхийн тулд тухайн утас таны Хурууны хээгээр түгжээ тайлах онцлогтой хийсэн саяхны харилцан үйлдлийн зургуудыг мөн ашиглана. Таны хурууны хээний загварыг үүсгэхэд ашигласан зургийг хэзээ ч хадгалдаггүй хэдий ч хурууны хээний загварыг утсанд тань аюулгүйгээр хадгалдаг бөгөөд утсанд үлддэг. Бүх боловсруулалтыг таны утсан дээр аюулгүйгээр хийнэ."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Та хүссэн үедээ Тохиргоо хэсэгт хурууны хээний загварыг устгах эсвэл хурууны хээгээр түгжээ тайлах онцлогийг унтраах боломжтой. Таныг хурууны хээний загварыг устгах хүртэл үүнийг утсан дээр хадгална."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Хурууныхаа байрлалыг тухай бүрд бага зэрэг өөрчилнө үү"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Хандалтын цэгийг засах"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Тохируулаагүй"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Тохируулаагүй"</string>
     <string name="apn_name" msgid="6677695784108157953">"Нэр"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Прокси"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Батарей ашиглалт"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Бүрэн цэнэглэснээс хойш"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Батарей ашиглалтыг удирдах"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Нийт <xliff:g id="TIME_0">^1</xliff:g> • өнгөрсөн 24 цагийн турш дэвсгэрт <xliff:g id="TIME_1">^2</xliff:g> ашигласан"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Нийт <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g>-н турш дэвсгэрт <xliff:g id="TIME_1">^2</xliff:g> ашигласан"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Өнгөрсөн 24 цагийн турш нийт нэг минутаас бага хугацаанд ашигласан"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g>-н турш нийт нэг минутаас бага хугацаанд ашигласан"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Өнгөрсөн 24 цагийн турш дэвсгэрт нэг минутаас бага хугацаанд ашигласан"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g>-н турш дэвсгэрт нэг минутаас бага хугацаанд ашигласан"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Өнгөрсөн 24 цагийн турш нийт <xliff:g id="TIME">^1</xliff:g> ашигласан"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g>-н турш нийт <xliff:g id="TIME_0">^1</xliff:g> ашигласан"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Өнгөрсөн 24 цагийн турш дэвсгэрт <xliff:g id="TIME">^1</xliff:g> ашигласан"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g>-н турш дэвсгэрт <xliff:g id="TIME_0">^1</xliff:g> ашигласан"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Нийт <xliff:g id="TIME">^1</xliff:g> • өнгөрсөн 24 цагийн турш дэвсгэрт нэг минутаас бага хугацаанд ашигласан"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Нийт <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g>-н турш дэвсгэрт нэг минутаас бага хугацаанд ашигласан"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Өнгөрсөн 24 цагийн турш ашиглаагүй"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Таны төхөөрөмжийн ашиглалтад үндэслэн батарейны үлдсэн түвшнийг тооцдог"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Барагцаалсан үлдсэн хугацаа"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 0e97dcb..6652fed 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edit titik capaian"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Tidak ditetapkan"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Tidak ditetapkan"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nama"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proksi"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Penggunaan bateri"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Sejak cas penuh"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Urus penggunaan bateri"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Jumlah sebanyak <xliff:g id="TIME_0">^1</xliff:g> • latar sebanyak <xliff:g id="TIME_1">^2</xliff:g> untuk 24 jam yang lalu"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Sejumlah <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> latar untuk <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Jumlah kurang dari seminit untuk tempoh 24 jam yang lalu"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Jumlah kurang dari seminit untuk <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Latar kurang dari seminit untuk tempoh 24 jam yang lalu"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Latar kurang dari seminit untuk <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Sejumlah <xliff:g id="TIME">^1</xliff:g> untuk tempoh 24 jam yang lalu"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Sejumlah <xliff:g id="TIME_0">^1</xliff:g> untuk <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> latar untuk tempoh 24 jam yang lalu"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> latar untuk <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Sejumlah <xliff:g id="TIME">^1</xliff:g> • latar kurang dari seminit untuk tempoh 24 jam yang lalu"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Sejumlah <xliff:g id="TIME_0">^1</xliff:g> • latar kurang dari seminit untuk <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Tiada penggunaan untuk tempoh 24 jam yang lalu"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Anggaran baki bateri adalah berdasarkan penggunaan peranti anda"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Anggaran baki masa"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 0c220f7..b91f223 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"အဝင်ပွိုင့် ပြင်ဆင်ရန်"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"သတ်မှတ်မထားပါ"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"သတ်မှတ်မထားပါ"</string>
     <string name="apn_name" msgid="6677695784108157953">"အမည်"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"ပရောက်စီ"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"ဘက်ထရီ အသုံးပြုမှု"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"အားဖြည့်ပြီးချိန်ကတည်းက"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"ဘက်ထရီအသုံးပြုမှုကို စီမံခန့်ခွဲရန်"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"စုစုပေါင်း <xliff:g id="TIME_0">^1</xliff:g> • ပြီးခဲ့သော ၂၄ နာရီအတွက် နောက်ခံအချိန်က <xliff:g id="TIME_1">^2</xliff:g> ရှိသည်"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"စုစုပေါင်း <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> အတွက် နောက်ခံအချိန်က <xliff:g id="TIME_1">^2</xliff:g> ရှိသည်"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"ပြီးခဲ့သော ၂၄ နာရီအတွက် စုစုပေါင်းက တစ်မိနစ်အောက် ရှိသည်"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> အတွက် စုစုပေါင်းက တစ်မိနစ်အောက် ရှိသည်"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"ပြီးခဲ့သော ၂၄ နာရီအတွက် နောက်ခံအချိန်က တစ်မိနစ်အောက် ရှိသည်"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> အတွက် နောက်ခံအချိန်က တစ်မိနစ်အောက် ရှိသည်"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"ပြီးခဲ့သော ၂၄ နာရီအတွက် စုစုပေါင်း <xliff:g id="TIME">^1</xliff:g> ရှိသည်"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> အတွက် စုစုပေါင်းက <xliff:g id="TIME_0">^1</xliff:g> ရှိသည်"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"ပြီးခဲ့သော ၂၄ နာရီအတွက် နောက်ခံအချိန်က <xliff:g id="TIME">^1</xliff:g> ရှိသည်"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> အတွက် နောက်ခံအချိန်က <xliff:g id="TIME_0">^1</xliff:g> ရှိသည်"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"စုစုပေါင်း <xliff:g id="TIME">^1</xliff:g> • ပြီးခဲ့သော ၂၄ နာရီအတွက် နောက်ခံအချိန်က တစ်မိနစ်အောက် ရှိသည်"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"စုစုပေါင်း <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> အတွက် နောက်ခံအချိန်က တစ်မိနစ်အောက် ရှိသည်"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"ပြီးခဲ့သော ၂၄ နာရီအတွက် အသုံးပြုမှု မရှိပါ"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ဘက်ထရီလက်ကျန်ခန့်မှန်းချက်သည် သင့်စက်၏ အသုံးပြုမှုအပေါ် အခြေခံပါသည်"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ခန့်မှန်း ကျန်ရှိချိန်"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index e458980..40181f0 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Rediger tilgangspunkt"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ikke angitt"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ikke angitt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Navn"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN-navn"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy-tjener"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Batteribruk"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Siden sist batteriet var fulladet"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Styr batteribruk"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> totalt • <xliff:g id="TIME_1">^2</xliff:g> i bakgrunnen de siste 24 t"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> totalt • <xliff:g id="TIME_1">^2</xliff:g> i bakgrunnen <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Totalt mindre enn ett minutt de siste 24 timene"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Totalt mindre enn ett minutt <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Mindre enn ett minutt i bakgrunnen de siste 24 timene"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Mindre enn ett minutt i bakgrunnen <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> totalt de siste 24 timene"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> totalt <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> i bakgrunnen de siste 24 timene"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> i bakgrunnen <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> totalt • mindre enn ett minutt i bakgrunnen de siste 24 timene"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> totalt • mindre enn et minutt i bakgrunnen <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Ingen bruk de siste 24 timene"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Beregnet gjenværende batteritid er basert på måten du bruker enheten på"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Anslått tid som er igjen"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 4ca3984..4c351db 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2761,7 +2761,7 @@
     <string name="menu_stats_unplugged" msgid="7125297366200634285">"<xliff:g id="UNPLUGGED">%1$s</xliff:g> अनप्लग भएदेखि"</string>
     <string name="menu_stats_last_unplugged" msgid="230678127178268655">"पछिल्लो पटक <xliff:g id="UNPLUGGED">%1$s</xliff:g>का लागि अनप्लग गरिँदा"</string>
     <string name="menu_stats_total" msgid="2713445396954503670">"उपयोग कूलहरू"</string>
-    <string name="menu_stats_refresh" msgid="6727628139586938835">"पुनःताजा गर्नुहोस्"</string>
+    <string name="menu_stats_refresh" msgid="6727628139586938835">"रिफ्रेस गर्नुहोस्"</string>
     <string name="process_mediaserver_label" msgid="6135260215912215092">"मिडिया सर्भर"</string>
     <string name="process_dex2oat_label" msgid="1190208677726583153">"एप आफू अनुकूल"</string>
     <string name="battery_saver" msgid="7737147344510595864">"ब्याट्री सेभर"</string>
@@ -5058,8 +5058,7 @@
     <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="506057560516483258">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="4337061745216872524">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="3396717432149544381">"रुचाइएको नेटवर्क मोड: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
-    <!-- no translation found for network_5G_recommended (4769018972369031538) -->
-    <skip />
+    <string name="network_5G_recommended" msgid="4769018972369031538">"5G (सिफारिस गरिएको)"</string>
     <string name="network_lte" msgid="2449425437381668780">"LTE (सिफारिस गरिएको)"</string>
     <string name="network_4G" msgid="9018841362928321047">"4G (सिफारिस गरिएको)"</string>
     <string name="label_available" msgid="5305726869955838606">"उपलब्ध नेटवर्कहरू"</string>
@@ -5413,9 +5412,7 @@
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"तपाईंले कपी गरेका टेक्स्ट, फोटो वा अन्य सामग्री एपहरूले प्रयोग गर्दा म्यासेज देखाइयोस्"</string>
     <string name="all_apps" msgid="3054120149509114789">"सबै एपहरू"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"अनुमति नदिनुहोस्"</string>
-    <!-- no translation found for uwb_settings_title (8578498712312002231) -->
-    <skip />
+    <string name="uwb_settings_title" msgid="8578498712312002231">"अल्ट्रा-वाइडब्यान्ड (UWB)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"यसले UWB चल्ने नजिकैका डिभाइसहरूको सापेक्ष स्थिति पहिचान गर्न मद्दत गर्छ"</string>
-    <!-- no translation found for uwb_settings_summary_airplane_mode (1328864888135086484) -->
-    <skip />
+    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"UWB प्रयोग गर्न हवाइजहाज मोड अफ गर्नुहोस्"</string>
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 981c209..baf9383 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN\'s"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Toegangspunt bewerken"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Niet ingesteld"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Niet ingesteld"</string>
     <string name="apn_name" msgid="6677695784108157953">"Naam"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Batterijgebruik"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Sinds volledige lading"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Batterijgebruik beheren"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> totaal • <xliff:g id="TIME_1">^2</xliff:g> op de achtergrond in de afgelopen 24 u"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> totaal gebruik • <xliff:g id="TIME_1">^2</xliff:g> achtergrondgebruik gedurende <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Totaal gebruik minder dan een minuut in de afgelopen 24 u"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Totaal gebruik minder dan een minuut gedurende <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Achtergrondgebruik minder dan een minuut in de afgelopen 24 u"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Achtergrondgebruik minder dan een minuut gedurende <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> totaal gebruik in de afgelopen 24 u"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> totaal gebruik gedurende <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> achtergrondgebruik in de afgelopen 24 u"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> achtergrondgebruik gedurende <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> totaal gebruik • Achtergrondgebruik minder dan een minuut in de afgelopen 24 u"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> totaal gebruik • Achtergrondgebruik minder dan een minuut gedurende <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Geen achtergrondgebruik in de afgelopen 24 u"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Schatting van resterende batterijduur is gebaseerd op je apparaatgebruik"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Geschatte resterende tijd"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 6c01069..c950dec 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -2796,8 +2796,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ପୃଷ୍ଠପଟ: ଏକ ମିନିଟରୁ କମ୍"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ମୋଟ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ପୃଷ୍ଠପଟ: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"ବ୍ୟାଟେରୀ ବ୍ୟବହାର ଡାଟା ଆନୁମାନିକ ଅଟେ ଏବଂ ଫୋନ୍ ଚାର୍ଜ ହେଉଥିବା ସମୟରେ ବ୍ୟବହାର ମାପ କରାଯାଏ ନାହିଁ"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"ପ୍ରକ୍ରିୟା ଷ୍ଟାଟସ୍"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"ଚାଲୁଥିବା ପ୍ରକ୍ରିୟା ବିଷୟରେ ଗିକୀ ଷ୍ଟେଟସ୍‌"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"ମେମୋରୀ ବ୍ୟବହାର"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 9a9c1c1..77661c0 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -425,10 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਲਈ ਆਪਣਾ ਫਿੰਗਰਪ੍ਰਿੰਟ ਵਰਤਣਾ ਮਜ਼ਬੂਤ ਪੈਟਰਨ ਜਾਂ ਪਿੰਨ ਤੋਂ ਘੱਟ ਸੁਰੱਖਿਅਤ ਹੋ ਸਕਦਾ ਹੈ"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"ਇਹ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਪ੍ਰਮਾਣੀਕਰਨ ਦੌਰਾਨ ਤੁਹਾਡੀ ਪਛਾਣ ਕਰਨ ਲਈ ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਇੱਕ ਵਿਲੱਖਣ ਮਾਡਲ ਬਣਾਉਂਦਾ ਹੈ। ਸੈੱਟਅੱਪ ਦੌਰਾਨ ਇਸ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਮਾਡਲ ਨੂੰ ਬਣਾਉਣ ਲਈ, ਤੁਸੀਂ ਵੱਖ-ਵੱਖ ਕੋਣਾਂ ਤੋਂ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਚਿੱਤਰ ਲਵੋਗੇ।"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"ਫ਼ੋਨ ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਮਾਡਲ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਨਾਲ ਤੁਹਾਡੀਆਂ ਅੰਤਰਕਿਰਿਆਵਾਂ ਤੋਂ ਚਿੱਤਰਾਂ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰੇਗਾ। ਤੁਹਾਡੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਮਾਡਲ ਬਣਾਉਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਚਿੱਤਰ ਕਦੇ ਵੀ ਸਟੋਰ ਨਹੀਂ ਕੀਤੇ ਜਾਂਦੇ, ਪਰ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਮਾਡਲ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਸਟੋਰ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਕਦੇ ਵੀ ਫ਼ੋਨ ਤੋਂ ਬਾਹਰ ਨਹੀਂ ਜਾਂਦਾ। ਸਾਰੀ ਪ੍ਰਕਿਰਿਆ ਤੁਹਾਡੇ ਫ਼ੋਨ \'ਤੇ ਸੁਰੱਖਿਅਤ ਤਰੀਕੇ ਨਾਲ ਵਾਪਰਦੀ ਹੈ।"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"ਤੁਸੀਂ ਸੈਟਿੰਗਾਂ ਵਿੱਚ ਕਿਸੇ ਵੇਲੇ ਵੀ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਮਾਡਲ ਨੂੰ ਮਿਟਾ ਸਕਦੇ ਹੋ ਜਾਂ ਫਿੰਗਰਪ੍ਰਿੰਟ ਅਣਲਾਕ ਨੂੰ ਬੰਦ ਕਰ ਸਕਦੇ ਹੋ। ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਮਾਡਲ ਫ਼ੋਨ \'ਤੇ ਉਦੋਂ ਤੱਕ ਸਟੋਰ ਰਹਿੰਦੇ ਹਨ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਮਿਟਾਉਂਦੇ ਨਹੀਂ।"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"ਹਰ ਵਾਰ ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਥੋੜ੍ਹਾ ਹਿਲਾਓ"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾ ਵਿਚਲਾ ਹਿੱਸਾ ਪ੍ਰਤੀਕ ਉੱਤੇ ਰੱਖੋ"</string>
@@ -2798,8 +2796,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"ਬੈਕਗ੍ਰਾਊਂਡ: ਇੱਕ ਮਿੰਟ ਤੋਂ ਵੀ ਘੱਟ ਸਮਾਂ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"ਕੁੱਲ: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"ਬੈਕਗ੍ਰਾਊਂਡ: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"ਬੈਟਰੀ ਵਰਤੋਂ ਸੰਬੰਧੀ ਡਾਟਾ ਅੰਦਾਜ਼ਨ ਹੈ ਅਤੇ ਫ਼ੋਨ ਚਾਰਜ ਹੋਣ ਵੇਲੇ ਵਰਤੋਂ ਨੂੰ ਨਹੀਂ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"ਪ੍ਰਕਿਰਿਆ ਸਟੈਟਸ"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"ਚੱਲ ਰਹੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਬਾਰੇ Geeky ਸਟੈਟਸ"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"ਮੈਮਰੀ ਵਰਤੋਂ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 5b7a5b7..88f46dc 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Nazwy APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Edytuj punkt dostępu"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nie ustawiono"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nie ustawiono"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nazwa"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Wykorzystanie baterii"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Od pełnego naładowania"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Zarządzaj wykorzystaniem baterii"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Łącznie <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> w tle w ciągu ostatnich 24 godzin"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Łącznie <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> w tle w okresie <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Łącznie mniej niż minutę w ciągu ostatnich 24 godz."</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Łącznie mniej niż minutę w okresie <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"W tle mniej niż minutę w ciągu ostatnich 24 godz."</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"W tle mniej niż minutę w okresie <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Łącznie <xliff:g id="TIME">^1</xliff:g> w ciągu ostatnich 24 godz."</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Łącznie <xliff:g id="TIME_0">^1</xliff:g> w okresie <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> w tle w ciągu ostatnich 24 godz."</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> w tle przez <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Łącznie <xliff:g id="TIME">^1</xliff:g> • w tle mniej niż minutę w ciągu ostatnich 24 godz."</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Łącznie <xliff:g id="TIME_0">^1</xliff:g> • w tle mniej niż minutę w okresie <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Brak wykorzystania w ciągu ostatnich 24 godz"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Pozostały czas pracy na baterii jest szacowany na podstawie wykorzystania urządzenia"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Szacowany pozostały czas"</string>
@@ -5589,5 +5580,5 @@
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"Nie zezwalaj"</string>
     <string name="uwb_settings_title" msgid="8578498712312002231">"Łącze ultraszerokopasmowe (UWB)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"Pomagają określić względne położenie urządzeń w pobliżu obsługujących UWB"</string>
-    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"Wyłącz tryb samolotowy, aby użyć UWB"</string>
+    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"Aby użyć UWB, wyłącz tryb samolotowy"</string>
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index bd65adf..940078d 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -4135,7 +4135,7 @@
     <string name="suggestion_button_close" msgid="6865170855573283759">"Închideți"</string>
     <string name="device_feedback" msgid="5351614458411688608">"Trimiteți feedback despre dispozitiv"</string>
     <string name="restr_pin_enter_admin_pin" msgid="4435410646541671918">"Introduceți codul PIN de administrator"</string>
-    <string name="switch_on_text" msgid="5664542327776075105">"Activat"</string>
+    <string name="switch_on_text" msgid="5664542327776075105">"Activată"</string>
     <string name="switch_off_text" msgid="1315547447393646667">"Dezactivată"</string>
     <string name="screen_pinning_switch_on_text" msgid="6971386830247542552">"Activată"</string>
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Dezactivată"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 4a6ae0b..f936adc 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Точки доступа"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Изменить точку доступа"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не задано"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не указано"</string>
     <string name="apn_name" msgid="6677695784108157953">"Имя"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Прокси-сервер"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Расход заряда"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"С момента полной зарядки"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Управление расходом заряда"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Всего: <xliff:g id="TIME_0">^1</xliff:g> • В фоновом режиме: <xliff:g id="TIME_1">^2</xliff:g> за последние 24 часа"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Всего <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> в фоновом режиме в период <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Всего меньше минуты за последние 24 часа"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Всего меньше минуты в период <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"В фоновом режиме меньше минуты за последние 24 часа"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"В фоновом режиме меньше минуты в период <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Всего <xliff:g id="TIME">^1</xliff:g> за последние 24 часа"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Всего <xliff:g id="TIME_0">^1</xliff:g> в период <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> в фоновом режиме за последние 24 часа"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> в фоновом режиме в период <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Всего <xliff:g id="TIME">^1</xliff:g> • В фоновом режиме меньше минуты за последние 24 часа"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Всего <xliff:g id="TIME_0">^1</xliff:g> • В фоновом режиме меньше минуты в период <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Фоновый режим не использовался за последние 24 часа"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Оставшееся время работы рассчитано с учетом того, как используется устройство."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Расчетное время работы без подзарядки"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index fa64452..37d174a 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -426,7 +426,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"එය ක්‍රියා කරන ආකාරය"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"සත්‍යාපනය අතරතුරදී ඔබව හඳුනා ගැනීම සඳහා ඇඟිලි සලකුණු අගුලු හැරීම ඔබගේ ඇඟිලි සලකුණෙහි අනන්‍ය ආකෘතියක් තනයි. පිහිටුවීම අතරතුර මෙම ඇඟිලි සලකුණු ආකෘතිය තැනීම සඳහා, ඔබ විවිධ පිහිටීම්වලින් ඔබගේ ඇඟිලි සලකුණේ රූප ගනු ඇත."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"ඔබගේ ඇඟිලි සලකුණු ආකෘතිය යාවත්කාලීන කිරීම සඳහා ඇඟිලි සලකුණු අගුලු හැරීම සමඟ වන ඔබගේ අන්තර්ක්‍රියාවලින් රූප භාවිත කරනු ඇත. ඔබගේ ඇඟිලි සලකුණු ආකෘතිය තැනීමට භාවිත කරන රූප කිසි විටක ගබඩා නොකරනු ඇත, නමුත් ඇඟිලි සලකුණු ආකෘතිය ඔබගේ දුරකථනයේ ආරක්ෂිතව ගබඩා කර ඇති අතර කිසි විටක දුරකථනය හැර නොයයි. සියලු සැකසීම් ඔබගේ දුරකථනයේ ආරක්ෂිතව සිදු වේ."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"ඔබට සැකසීම් තුළ ඕනෑම වේලාවක ඔබගේ ඇඟිලි සලකුණු ආකෘතිය මැකීමට, හෝ ඇඟිලි සලකුණු අගුලු හැරීම ක්‍රියාවිරහිත කිරීමට හැකිය. ඇඟිලි සලකුණු ආකෘති ඔබ මකන තෙක් දුරකථනයේ ගබඩා කර ඇත."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"ඔබට සැකසීම් තුළ ඕනෑම වේලාවක ඔබගේ ඇඟිලි සලකුණු ආකෘතිය මැකීමට හෝ ඇඟිලි සලකුණු අගුලු හැරීම ක්‍රියාවිරහිත කිරීමට හැකිය. ඇඟිලි සලකුණු ආකෘති ඔබ මකන තෙක් දුරකථනයේ ගබඩා කර ඇත."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"එක් එක් අවස්ථාවේ ඔබගේ ඇඟිල්ලේ පිහිටීම මදක් වෙනස් කරන්න"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"ඔබගේ ඇඟිලි සලකුණ මධ්‍යය සමගින් නිරූපකය ආවරණය කරන්න"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ප්‍රවේශ ස්ථානය සංස්කරණය"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"පිහිටුවා නැත"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"සකසා නැත"</string>
     <string name="apn_name" msgid="6677695784108157953">"නම‍"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"ප්‍රොක්සිය"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"බැටරි භාවිතය"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"පූර්ණ ආරෝපණය සිට"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"බැටරි භාවිතය කළමනාකරණය"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"මුළු <xliff:g id="TIME_0">^1</xliff:g> • පසුගිය පැය 24 සඳහා <xliff:g id="TIME_1">^2</xliff:g>ක පසුබිම"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"මුළු <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> සඳහා <xliff:g id="TIME_1">^2</xliff:g> පසුබිම"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"පසුගිය පැය 24 සඳහා මිනිත්තුවකට වඩා අඩු එකතුව"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> සඳහා මිනිත්තුවකට වඩා අඩු එකතුව"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"පසුගිය පැය 24 සඳහා මිනිත්තුවකට වඩා අඩු පසුබිම"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> සඳහා මිනිත්තුවකට වඩා අඩු පසුබිම"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"පසුගිය පැය 24 සඳහා එකතුව <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> සඳහා එකතුව <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"පසුගිය පැය 24 සඳහා <xliff:g id="TIME">^1</xliff:g> පසුබිම"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> සඳහා <xliff:g id="TIME_0">^1</xliff:g> පසුබිම"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"මුළු <xliff:g id="TIME">^1</xliff:g> • පසුගිය පැය 24 සඳහා මිනිත්තුවකට වඩා අඩු පසුබිම"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"මුළු <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> සඳහා මිනිත්තුවකට වඩා අඩු පසුබිම"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"පසුගිය පැය 24 සඳහා භාවිතයක් නැත"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ඉතිරිව ඇති බැටරි ඇස්තමේන්තුව ඔබගේ උපාංග භාවිතය මත පදනම් වේ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"ඇස්තමේන්තුගත ඉතිරි කාලය"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index fb12e15..9b0cfe4 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-ji"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Uredi dostopno točko"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ni nastavljeno"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ni nastavljeno"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ime"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Strežnik proxy"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Poraba baterije"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Od polne napolnjenosti akumulatorja"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Upravljanje porabe baterije"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Skupaj: <xliff:g id="TIME_0">^1</xliff:g>. • <xliff:g id="TIME_1">^2</xliff:g> v ozadju v zadnjih 24 urah"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Skupaj: <xliff:g id="TIME_0">^1</xliff:g>. • <xliff:g id="TIME_1">^2</xliff:g> v ozadju v časovnem obdobju <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Skupaj manj kot minuto v zadnjih 24 urah"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Skupaj manj kot minuto v časovnem obdobju <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Manj kot minuto v ozadju v zadnjih 24 urah"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Manj kot minuto v ozadju v časovnem obdobju <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Skupaj: <xliff:g id="TIME">^1</xliff:g> v zadnjih 24 urah"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Skupaj: <xliff:g id="TIME_0">^1</xliff:g> v časovnem obdobju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> v ozadju v zadnjih 24 urah"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> v ozadju v časovnem obdobju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Skupaj: <xliff:g id="TIME">^1</xliff:g>. • Manj kot minuto v ozadju v zadnjih 24 urah"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Skupaj: <xliff:g id="TIME_0">^1</xliff:g>. • Manj kot minuto v ozadju v časovnem obdobju <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Ni bilo uporabe v zadnjih 24 urah."</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ocena preostalega časa delovanja na baterijsko napajanje temelji na načinu uporabe naprave."</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Približni preostali čas"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 75e3223..616801c 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN-të"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redakto pikën e qasjes"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Nuk është caktuar"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Nuk është caktuar"</string>
     <string name="apn_name" msgid="6677695784108157953">"Emri"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN-ja"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Përdorimi i baterisë"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Që nga karikimi i plotë"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Menaxho përdorimin e baterisë"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> në total • <xliff:g id="TIME_1">^2</xliff:g> në sfond për 24 orët e fundit"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> në total • <xliff:g id="TIME_1">^2</xliff:g> në sfond për periudhën <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Përdorimi në total: më pak se një minutë në 24 orët e fundit"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Përdorimi në total: më pak se një minutë për periudhën <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Në sfond për më pak se një minutë për 24 orët e fundit"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Në sfond për më pak se një minutë për periudhën <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> në total për 24 orët e fundit"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> në total për periudhën <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> në sfond për 24 orët e fundit"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> në sfond për periudhën <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> në total • në sfond për më pak se një minutë për 24 orët e fundit"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> në total • në sfond për më pak se një minutë për periudhën <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Nuk është përdorur për 24 orët e fundit"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Përllogaritja për baterinë e mbetur bazohet në përdorimin e pajisjes tënde"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Koha e vlerësuar e mbetur"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 97b5407..1157784 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -425,7 +425,7 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Att låsa upp telefonen med ett fingeravtryck kan vara mindre säkert än ett starkt grafiskt lösenord eller en bra pinkod"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"Så fungerar det"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Med fingeravtryckslås skapas en unik modell av ditt fingeravtryck så att du kan identifieras vid autentisering. Fingeravtrycksmodellen skapas under konfigureringen genom att bilder tas av fingeravtrycket i olika positioner."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Telefonen uppdaterar även fingeravtrycksmodellen med hjälp av även bilder från interaktioner med fingeravtryckslåset. De bilder som används för att skapa fingeravtrycksmodellen lagras aldrig, men fingeravtrycksmodellen lagras säkert på telefonen och lämnar den aldrig. All behandling görs säkert på telefonen."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Telefonen uppdaterar även fingeravtrycksmodellen med hjälp av bilder från interaktioner med fingeravtryckslåset. De bilder som används för att skapa fingeravtrycksmodellen lagras aldrig, men fingeravtrycksmodellen lagras säkert på telefonen och lämnar den aldrig. All behandling görs säkert på telefonen."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"Du kan radera fingeravtrycksmodellen eller inaktivera fingeravtryckslås när du vill i inställningarna. Fingeravtrycksmodeller lagras på telefonen tills du raderar dem."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Flytta fingret lite varje gång"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN:er"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Redigera åtkomstpunkt"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ej fastställt"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Har inte angetts"</string>
     <string name="apn_name" msgid="6677695784108157953">"Namn"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Batteriförbrukning"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Sedan fulladdning"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Hantera batterianvändning"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> totalt • <xliff:g id="TIME_1">^2</xliff:g> bakgrundsanvändning under de senaste 24 timmarna"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> totalt • <xliff:g id="TIME_1">^2</xliff:g> bakgrundsanvändning under perioden <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Mindre än en minuts användning totalt under de senaste 24 timmarna"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Mindre än en minuts användning totalt under perioden <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Mindre än en minuts bakgrundsanvändning under de senaste 24 timmarna"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Mindre än en minuts bakgrundsanvändning under perioden <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> totalt under de senaste 24 timmarna"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> totalt under perioden <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> bakgrundsanvändning under de senaste 24 timmarna"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> bakgrundsanvändning under perioden <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> totalt • Mindre än en minuts bakgrundsanvändning under de senaste 24 timmarna"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> totalt • Mindre än en minuts bakgrundsanvändning under perioden <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Ingen användning under de senaste 24 timmarna"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Uppskattad återstående batteritid baseras på enhetsanvändningen"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Beräknad återstående tid"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index e04317f..ef08527 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Badilisha mahali pa kufikia"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Haijawekwa"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Haijawekwa"</string>
     <string name="apn_name" msgid="6677695784108157953">"Jina"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Seva mbadala"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Matumizi ya betri"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Tangu ilipojaa chaji"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Dhibiti matumizi ya betri"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Jumla ya <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> chinichini katika saa 24 zilizopita"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Jumla ya <xliff:g id="TIME_0">^1</xliff:g> • Imetumika chinichini kwa <xliff:g id="TIME_1">^2</xliff:g> katika <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Jumla ya muda usiozidi dakika moja katika saa 24 zilizopita"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Jumla ya muda usiozidi dakika moja katika <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Imetumika chinichini kwa muda usiozidi dakika moja katika saa 24 zilizopita"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Imetumika chinichini kwa muda usiozidi dakika moja katika <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Jumla ya <xliff:g id="TIME">^1</xliff:g> katika saa 24 zilizopita"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Jumla ya <xliff:g id="TIME_0">^1</xliff:g> katika <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> chinichini kwa saa 24 zilizopita"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"Imetumika chinichini kwa <xliff:g id="TIME_0">^1</xliff:g> katika <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Jumla ya <xliff:g id="TIME">^1</xliff:g> • Imetumika chinichini kwa muda usiozidi dakika moja katika saa 24 zilizopita"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Jumla ya <xliff:g id="TIME_0">^1</xliff:g> • Imetumika chinichini kwa muda usiozidi dakika moja katika <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Haijatumika katika saa 24 zilizopita"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Kadirio la chaji ya betri iliyosalia linategemea matumizi ya kifaa chako"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Kadirio la muda uliosalia"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index a713630..8fb51b1 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN பட்டியல்"</string>
     <string name="apn_edit" msgid="2003683641840248741">"ஆக்சஸ் பாயிண்ட்டைத் திருத்து"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"அமைக்கப்படவில்லை"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"அமைக்கப்படவில்லை"</string>
     <string name="apn_name" msgid="6677695784108157953">"பெயர்"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"ப்ராக்ஸி"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"பேட்டரி உபயோகம்"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"முழு சார்ஜ் ஆனதிலிருந்து"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"பேட்டரி பயன்பாட்டை நிர்வகி"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"மொத்தம் <xliff:g id="TIME_0">^1</xliff:g> • கடந்த 24 மணிநேரத்தில் பின்னணி உபயோகம் <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"மொத்தம் <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> கால அளவில் பின்னணி உபயோகம் <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"கடந்த 24 மணிநேரத்தில் மொத்த உபயோகம் ஒரு நிமிடத்திற்கும் குறைவானது"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> கால அளவில் மொத்த உபயோகம் ஒரு நிமிடத்திற்கும் குறைவானது"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"கடந்த 24 மணிநேரத்தில் ஒரு நிமிடத்திற்கும் குறைவான பின்னணி உபயோகம்"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> கால அளவில் ஒரு நிமிடத்திற்கும் குறைவான பின்னணி உபயோகம்"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"கடந்த 24 மணிநேரத்தில் மொத்த உபயோகம் <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> கால அளவில் மொத்த உபயோகம் <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"கடந்த 24 மணிநேரத்தில் பின்னணி உபயோகம்: <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> கால அளவில் பின்னணி உபயோகம்: <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"மொத்தம் <xliff:g id="TIME">^1</xliff:g> • கடந்த 24 மணிநேரத்தில் ஒரு நிமிடத்திற்கும் குறைவான பின்னணி உபயோகம்"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"மொத்தம் <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> கால அளவில் ஒரு நிமிடத்திற்கும் குறைவான பின்னணி உபயோகம்"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"கடந்த 24 மணிநேரத்தில் எந்த உபயோகமும் இல்லை"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"சாதனத்தை உபயோகிப்பதன் அடிப்படையில், மீதமுள்ள பேட்டரியின் தோராய அளவு கணக்கிடப்படுகிறது"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"கணக்கிடப்பட்ட மீதமுள்ள நேரம்"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 70df59f..a64add2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNలు"</string>
     <string name="apn_edit" msgid="2003683641840248741">"యాక్సెస్ పాయింట్‌ను ఎడిట్ చేయండి"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"సెట్ చేయలేదు"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"సెట్ చేయలేదు"</string>
     <string name="apn_name" msgid="6677695784108157953">"పేరు"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"ప్రాక్సీ"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"బ్యాటరీ వినియోగం"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"ఫుల్‌ ఛార్జ్ చేసినప్పటి నుండి"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"బ్యాటరీ వినియోగాన్ని మేనేజ్ చేయండి"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"గత 24 గంటలకు <xliff:g id="TIME_0">^1</xliff:g> మొత్తం • <xliff:g id="TIME_1">^2</xliff:g> బ్యాక్‌గ్రౌండ్ వినియోగం"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"మొత్తం <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> మధ్య బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"గత 24 గంటల నుండి మొత్తం బ్యాటరీ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> మధ్య మొత్తం బ్యాటరీ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"గత 24 గంటల నుండి బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> మధ్య బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"గత 24 గంటల నుండి <xliff:g id="TIME">^1</xliff:g> మొత్తం"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> మధ్య మొత్తం బ్యాటరీ వినియోగం <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"గత 24 గంటల నుండి <xliff:g id="TIME">^1</xliff:g> బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> మధ్య బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"మొత్తం <xliff:g id="TIME">^1</xliff:g> • గత 24 గంటల నుండి బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"మొత్తం <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> మధ్య బ్యాటరీ బ్యాక్‌గ్రౌండ్ వినియోగం నిమిషం కంటే తక్కువ ఉంది"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"గత 24 గంటల నుండి ఎలాంటి వినియోగం లేదు"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"పరికరం వినియోగాన్ని బ‌ట్టి మిగిలి ఉన్న బ్యాటరీ అంచనా వేయ‌బడుతుంది"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"అంచనా వేసిన సమయం మిగిలి ఉంది"</string>
@@ -2796,8 +2787,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"బ్యాక్‌గ్రౌండ్ సమయం: ఒక నిమిషం కన్నా తక్కువ"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"మొత్తం ఉపయోగం: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"బ్యాక్‌గ్రౌండ్ సమయం: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"బ్యాటరీ వినియోగ డేటా సుమారుగా ఉంటుంది, ఫోన్ ఛార్జింగ్ అవుతున్నపుడు ఇది వినియోగాన్ని కొలవదు"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"ప్రాసెస్ గణాంకాలు"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"అమలవుతున్న ప్రాసెస్‌ల గురించి అసాధారణమైన గణాంకాలు"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"మెమరీ వినియోగం"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index c9009ad..8d6cc4d 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"แก้ไขจุดเข้าใช้งาน"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"ไม่ได้ตั้งค่า"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"ไม่ได้ตั้งค่า"</string>
     <string name="apn_name" msgid="6677695784108157953">"ชื่อ"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"พร็อกซี"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"การใช้งานแบตเตอรี่"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"ตั้งแต่ชาร์จจนเต็ม"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"จัดการการใช้งานแบตเตอรี่"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"รวม <xliff:g id="TIME_0">^1</xliff:g> • ใช้ในเบื้องหลัง <xliff:g id="TIME_1">^2</xliff:g> ในช่วง 24 ชม. ที่ผ่านมา"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"ใช้งานรวม <xliff:g id="TIME_0">^1</xliff:g> • ใช้งานเบื้องหลัง <xliff:g id="TIME_1">^2</xliff:g>ในช่วง <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"ใช้งานรวมไม่ถึง 1 นาทีในช่วง 24 ชม. ที่ผ่านมา"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"ใช้งานรวมไม่ถึง 1 นาทีในช่วง <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"ใช้งานเบื้องหลังไม่ถึง 1 นาทีในช่วง 24 ชม. ที่ผ่านมา"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"ใช้งานเบื้องหลังไม่ถึง 1 นาทีในช่วง <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"ใช้งานรวม <xliff:g id="TIME">^1</xliff:g>ในช่วง 24 ชม. ที่ผ่านมา"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"ใช้งานรวม <xliff:g id="TIME_0">^1</xliff:g>ในช่วง <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"ใช้งานเบื้องหลัง <xliff:g id="TIME">^1</xliff:g>ในช่วง 24 ชม. ที่ผ่านมา"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"ใช้งานเบื้องหลัง <xliff:g id="TIME_0">^1</xliff:g>ในช่วง <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"ใช้งานรวม <xliff:g id="TIME">^1</xliff:g> • ใช้งานเบื้องหลังไม่ถึง 1 นาทีในช่วง 24 ชม. ที่ผ่านมา"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"ใช้งานรวม <xliff:g id="TIME_0">^1</xliff:g> • ใช้งานเบื้องหลังไม่ถึง 1 นาทีในช่วง <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"ไม่มีการใช้งานในช่วง 24 ชม. ที่ผ่านมา"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"ค่าประมาณแบตเตอรี่ที่เหลืออิงตามการใช้งานอุปกรณ์ของคุณ"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"เวลาที่เหลือโดยประมาณ"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index c86c504..f15aa25 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Mga APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"I-edit ang access point"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Hindi nakatakda"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Hindi nakatakda"</string>
     <string name="apn_name" msgid="6677695784108157953">"Pangalan"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Paggamit ng baterya"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Mula noong napuno ang baterya"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Pamahalaan ang paggamit ng baterya"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> sa kabuuan • <xliff:g id="TIME_1">^2</xliff:g> sa background sa nakalipas na 24 na oras"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> sa kabuuan • <xliff:g id="TIME_1">^2</xliff:g> sa background noong <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Sa kabuuan, wala pang isang minuto sa nakalipas na 24 na oras"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Sa kabuuan, wala pang isang minuto noong <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Wala pang isang minutong nasa background sa nakalipas na 24 na oras"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Wala pang isang minutong nasa background noong <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> sa kabuuan sa nakalipas na 24 na oras"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_0">^1</xliff:g> sa kabuuan noong <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> sa background sa nakalipas na 24 na oras"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> sa background noong <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> sa kabuuan • wala pang isang minutong nasa background sa nakalipas na 24 na oras"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> sa kabuuan • wala pang isang minutong nasa background noong <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Walang paggamit sa nakalipas na 24 na oras"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Nakabatay ang pagtatantya ng natitirang baterya sa paggamit ng iyong device"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Tinatayang natitirang oras"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index a6a15fb..2de329e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -425,8 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"Telefonunuzun kilidini açmak için parmak izinizi kullanmak, güçlü bir desenden veya PIN\'den daha az güvenli olabilir"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"İşleyiş şekli"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"Parmak İzi Kilidi, kimlik doğrulama sırasında sizi tanımak için parmak izinizin benzersiz bir modelini oluşturur. Kurulum sırasında bu parmak izi modelini oluşturmak için parmak izinizin farklı konumlardan resimlerini çekersiniz."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Telefon, parmak izi modelinizi güncellemek için Parmak İziyle Kilit Açma ile etkileşimlerinize ait resimleri de kullanır. Parmak izi modelinizi oluşturmak için kullanılan resimler hiçbir zaman saklanmaz ancak parmak izi modeli, telefonunuzda güvenli bir şekilde saklanıp hiçbir zaman cihazdan dışarı çıkmaz. Tüm işlemler, güvenli bir şekilde telefonunuzda gerçekleşir."</string>
-    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"İstediğiniz zaman parmak izi modelinizi silebilir veya Ayarlar\'da Parmak İziyle Kilit Açma özelliğini kapatabilirsiniz. Parmak izi modelleri, siz silene kadar telefonda saklanır."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"Telefon, parmak izi modelinizi güncellemek için Parmak İzi Kilidi ile etkileşimlerinize ait resimleri de kullanır. Parmak izi modelinizi oluşturmak için kullanılan resimler hiçbir zaman saklanmaz ancak yüz modeli, telefonunuzda güvenli bir şekilde saklanıp hiçbir zaman telefondan dışarı çıkmaz. Tüm işlemler, güvenli bir şekilde telefonunuzda gerçekleşir."</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"İstediğiniz zaman parmak izi modelinizi silebilir veya Ayarlar\'da Parmak İziyle Kilit Açma özelliğini devre dışı bırakabilirsiniz. Parmak izi modelleri, siz silene kadar telefonda saklanır."</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"Her defasında parmağınızın konumunu biraz değiştirin"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"Parmak izinizin ortasıyla simgenin üzerini kapatın"</string>
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN\'ler"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Erişim noktasını düzenle"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Ayarlanmadı"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayarlanmadı"</string>
     <string name="apn_name" msgid="6677695784108157953">"Ad"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Pil kullanımı"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Son tam şarjdan itibaren"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Pil kullanımını yönetme"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Toplam <xliff:g id="TIME_0">^1</xliff:g> • Son 24 saatte <xliff:g id="TIME_1">^2</xliff:g> arka plan kullanıldı"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Toplam <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> arasında arka plan <xliff:g id="TIME_1">^2</xliff:g> kullanıldı"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Son 24 saat içinde toplam bir dakikadan az"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> arasında toplam bir dakikadan az"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Son 24 saatte arka plan bir dakikadan az kullanıldı"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> arasında arka plan bir dakikadan az kullanıldı"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Son 24 saatte toplam <xliff:g id="TIME">^1</xliff:g> kullanıldı"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> arasında toplam <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"Son 24 saatte arka plan <xliff:g id="TIME">^1</xliff:g> kullanıldı"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> arasında arka plan <xliff:g id="TIME_0">^1</xliff:g> kullanıldı"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Toplam <xliff:g id="TIME">^1</xliff:g> • Son 24 saat içinde arka plan bir dakikadan az kullanıldı"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Toplam <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> arasında arka plan bir dakikadan az kullanıldı"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Son 24 saatte kullanılmadı"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Kalan pil gücü tahmini, cihazınızın kullanımına göre yapılır"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Kalan tahmini süre"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 52bde04..51d4f17 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -1667,8 +1667,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"Точки доступу"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Змінити точку доступу"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Не встановлено"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Не задано"</string>
     <string name="apn_name" msgid="6677695784108157953">"Назва"</string>
     <string name="apn_apn" msgid="5812828833797458602">"Назва точки доступу"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Проксі"</string>
@@ -2807,26 +2806,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Використання заряду"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Після повного заряджання"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Використання заряду"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"<xliff:g id="TIME_0">^1</xliff:g> усього • <xliff:g id="TIME_1">^2</xliff:g> споживання у фоновому режимі за останні 24 год"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"<xliff:g id="TIME_0">^1</xliff:g> усього • <xliff:g id="TIME_1">^2</xliff:g> споживання у фоновому режимі за період <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Усього менше ніж хвилина за останні 24 год"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Усього менше ніж хвилина за період <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Менше ніж хвилина споживання у фоновому режимі за останні 24 год"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Менше ніж хвилина споживання у фоновому режимі за період <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"<xliff:g id="TIME">^1</xliff:g> усього за останні 24 год"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Усього <xliff:g id="TIME_0">^1</xliff:g> за період <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> споживання у фоновому режимі за останні 24 год"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> споживання у фоновому режимі за період <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"<xliff:g id="TIME">^1</xliff:g> усього • менше ніж хвилина споживання у фоновому режимі за останні 24 год"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"<xliff:g id="TIME_0">^1</xliff:g> усього • менше ніж хвилина споживання у фоновому режимі за період <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Відсутнє споживання за останні 24 години"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Залишок заряду акумулятора визначається на основі використання пристрою"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Залишилося приблизно"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 1f2dac5..52dc65f 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -425,10 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"‏اپنے فون کو غیر مقفل کرنے کے لیے اپنے فنگر پرنٹ کا استعمال کرنا ایک مضبوط پیٹرن یا PIN سے کم محفوظ ہو سکتا ہے"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"اس کے کام کرنے کا طریقہ"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"فنگر پرنٹ کے ذریعے غیر مقفل کرنے کی خصوصیت تصدیق کے دوران آپ کو پہچاننے کے لیے آپ کے فنگر پرنٹ کا ایک منفرد ماڈل تخلیق کرتی ہے۔ سیٹ اپ کے دوران اس فنگر پرنٹ کا ماڈل تخلیق کرنے کے لیے آپ اپنے فنگر پرنٹ کی تصاویر مختلف پوزیشنز سے لیں گے۔"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"آپ کے فنگر پرنٹ کا ماڈل اپ ڈیٹ کرنے کے لیے فون فنگر پرنٹ اَن لاک کی خصوصیت کے ساتھ آپ کے تعاملات سے حاصل کردہ تصاویر کا بھی استعمال کرے گا۔ آپ کے فنگر پرنٹ کا ماڈل تخلیق کرنے کے لیے استعمال کی جانے والی تصاویر کو کبھی بھی اسٹور نہیں کیا جاتا ہے لیکن فنگر پرنٹ ماڈل آپ کے فون پر محفوظ طریقے سے اسٹور کیا جاتا ہے اور یہ کبھی بھی فون سے باہر نہیں جاتا ہے۔ آپ کے فون پر سبھی کاروائیاں محفوظ طریقے سے ہوتی ہیں۔"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"آپ اپنے فنگر پرنٹ ماڈل کو حذف کر سکتے ہیں یا ترتیبات میں کسی بھی وقت فنگر پرنٹ اَن لاک کی خصوصیت کو آف کر سکتے ہیں۔ فنگر پرنٹ کے ماڈلز فون پر تب تک اسٹور ہوتے ہیں جب تک آپ انہیں حذف نہیں کرتے ہیں۔"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"ہر بار اپنی انگلی کی پوزیشن کو تھوڑا تبدیل کریں"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"اپنی انگلی کو سینسر کے اوپر رکھیں"</string>
@@ -1627,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APNs"</string>
     <string name="apn_edit" msgid="2003683641840248741">"رسائی کے مقام میں ترمیم کریں"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"سیٹ نہيں ہے"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"سیٹ نہیں ہے"</string>
     <string name="apn_name" msgid="6677695784108157953">"نام"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"پراکسی"</string>
@@ -2733,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"بیٹری کا استعمال"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"مکمل چارج کے بعد سے"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"بیٹری کے استعمال کا نظم کریں"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"کُل<xliff:g id="TIME_0">^1</xliff:g> • گزشتہ 24 گھنٹے میں پس منظر میں <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"کُل <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> میں پس منظر میں <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"گزشتہ 24 گھنٹے میں کُل ایک منٹ سے کم"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> میں کُل ایک منٹ سے کم"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"گزشتہ 24 گھنٹے میں پس منظر میں ایک منٹ سے کم"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> میں پس منظر میں ایک منٹ سے کم"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"گزشتہ 24 گھنٹے میں کُل <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> میں کُل <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"گزشتہ 24 گھنٹے کیلئے پس منظر میں <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> میں پس منظر میں <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"کُل <xliff:g id="TIME">^1</xliff:g> • گزشتہ 24 گھنٹے میں پس منظر میں ایک منٹ سے کم"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"کُل <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> میں پس منظر میں ایک منٹ سے کم"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"گزشتہ 24 گھنٹے میں کوئی استعمال نہیں"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"بچی ہوئی بیٹری کا اندازہ آپ کے آلے کے استعمال پر مبنی ہے"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"باقی تخمینی وقت"</string>
@@ -2798,8 +2787,7 @@
     <string name="battery_usage_background_less_than_one_minute" msgid="3957971442554437909">"پس منظر: ایک منٹ سے کم"</string>
     <string name="battery_usage_for_total_time" msgid="8402254046930910905">"کُل: <xliff:g id="TIME">%s</xliff:g>"</string>
     <string name="battery_usage_for_background_time" msgid="9109637210617095188">"پس منظر: <xliff:g id="TIME">%s</xliff:g>"</string>
-    <!-- no translation found for battery_usage_screen_footer (7899907241146636817) -->
-    <skip />
+    <string name="battery_usage_screen_footer" msgid="7899907241146636817">"بیٹری کے استعمال کا ڈیٹا تخمینی ہے اور فون چارج ہوتے وقت بیٹری کے استعمال کی پیمائش نہیں کرتا ہے"</string>
     <string name="process_stats_summary_title" msgid="502683176231281732">"پروسیس اعداد و شمار"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"جاری پروسیسز کے بارے میں مفید اعداد و شمار"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"میموری کا استعمال"</string>
@@ -5058,8 +5046,7 @@
     <string name="preferred_network_mode_nr_lte_tdscdma_wcdma_summary" msgid="506057560516483258">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_gsm_wcdma_summary" msgid="4337061745216872524">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/GSM/WCDMA"</string>
     <string name="preferred_network_mode_nr_lte_tdscdma_cdma_evdo_gsm_wcdma_summary" msgid="3396717432149544381">"‏ترجیحی نیٹ ورک موڈ: NR/LTE/TDSCDMA/CDMA/EvDo/GSM/WCDMA"</string>
-    <!-- no translation found for network_5G_recommended (4769018972369031538) -->
-    <skip />
+    <string name="network_5G_recommended" msgid="4769018972369031538">"‏5G (تجویز کردہ)"</string>
     <string name="network_lte" msgid="2449425437381668780">"‏LTE (تجویز کردہ)"</string>
     <string name="network_4G" msgid="9018841362928321047">"‏4G (تجویز کردہ)"</string>
     <string name="label_available" msgid="5305726869955838606">"دستیاب نیٹ ورکس"</string>
@@ -5413,9 +5400,7 @@
     <string name="show_clip_access_notification_summary" msgid="474090757777203207">"ایپس کے آپ کے کاپی کردہ ٹیکسٹ، تصاویر یا دیگر مواد تک رسائی حاصل کرنے پر پیغام دکھائیں"</string>
     <string name="all_apps" msgid="3054120149509114789">"سبھی ایپس"</string>
     <string name="request_manage_bluetooth_permission_dont_allow" msgid="8798061333407581300">"اجازت نہ دیں"</string>
-    <!-- no translation found for uwb_settings_title (8578498712312002231) -->
-    <skip />
+    <string name="uwb_settings_title" msgid="8578498712312002231">"‏الٹرا وائڈ بینڈ (UWB)"</string>
     <string name="uwb_settings_summary" msgid="3074271396764672268">"‏اس سے UWB والے قریبی آلات کی متعلقہ پوزیشن کی شناخت کرنے میں مدد ملتی ہے"</string>
-    <!-- no translation found for uwb_settings_summary_airplane_mode (1328864888135086484) -->
-    <skip />
+    <string name="uwb_settings_summary_airplane_mode" msgid="1328864888135086484">"‏UWB کا استعمال کرنے کیلئے ہوائی جہاز وضع آف کریں"</string>
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 38d43d9..04eddda 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Ulanish nuqtasini tahrirlash"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Kiritilmagan"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Berilmagan"</string>
     <string name="apn_name" msgid="6677695784108157953">"Nomi"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proksi"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Batareya sarfi"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"To‘liq quvvat olganidan beri"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Batareya sarfini boshqarish"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Umumiy foydalanish vaqti: <xliff:g id="TIME_0">^1</xliff:g> • Orqa fon rejimida: <xliff:g id="TIME_1">^2</xliff:g> (oxirgi 24 soat ichida)"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Jami: <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> davomida <xliff:g id="TIME_1">^2</xliff:g> orqa fon rejimida"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"24 soat ichida jami bir daqiqadan kamroq"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> ichida jami bir daqiqadan kamroq"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"24 soat ichida bir daqiqadan kamroq orqa fon rejimida"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> ichida bir daqiqadan kamroq orqa fon rejimida"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"24 soat uchun jami <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> ichida jami <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"24 soat ichida <xliff:g id="TIME">^1</xliff:g> orqa fon rejimida"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> uchun <xliff:g id="TIME_0">^1</xliff:g> orqa fon rejimida"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Jami <xliff:g id="TIME">^1</xliff:g> • 24 soat ichida bir daqiqadan kamroq orqa fon rejimida"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Jami <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> ichida bir daqiqadan kamroq orqa fon rejimida"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"24 soat ichida orqa fon rejimi ishlatilmagan"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Batareyaning qolgan vaqti qurilmadan qanday foydalanishingiz asosida taxminiy hisoblangan"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Taxminiy qolgan vaqt"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index af87800..e145036 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"Chỉnh sửa điểm truy cập"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"Chưa đặt"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Chưa đặt"</string>
     <string name="apn_name" msgid="6677695784108157953">"Tên"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Mức sử dụng pin"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Kể từ lúc sạc đầy"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Quản lý mức sử dụng pin"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"Tổng <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> ở chế độ nền trong 24 giờ qua"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"Tổng <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> ở chế độ nền trong khoảng thời gian <xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Tổng chưa đến 1 phút trong 24 giờ qua"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Tổng chưa đến 1 phút trong khoảng thời gian <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Ở chế độ nền chưa đến 1 phút trong 24 giờ qua"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Ở chế độ nền chưa đến 1 phút trong khoảng thời gian <xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"Tổng <xliff:g id="TIME">^1</xliff:g> trong 24 giờ qua"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"Tổng <xliff:g id="TIME_0">^1</xliff:g> trong khoảng thời gian <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> ở chế độ nền trong 24 giờ qua"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> ở chế độ nền trong khoảng thời gian <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"Tổng <xliff:g id="TIME">^1</xliff:g> • ở chế độ nền chưa đến 1 phút trong 24 giờ qua"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"Tổng <xliff:g id="TIME_0">^1</xliff:g> • ở chế độ nền chưa đến 1 phút trong khoảng thời gian <xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Không sử dụng trong 24 giờ qua"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Thời lượng pin còn lại ước tính là dựa trên mức sử dụng thiết bị"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Thời gian còn lại ước tính"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 04ad701..a9daeff 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -425,10 +425,8 @@
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_1" msgid="5824014348182478279">"用指纹解锁手机的安全性可能不及高安全系数的图案或 PIN 码"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_title_2" msgid="2580899232734177771">"运作方式"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_2" msgid="4350767334790735812">"指纹解锁功能会为您创建一个具有唯一性的指纹模型，用于在身份验证期间识别您的身份。为了在设置过程中创建指纹模型，您需要拍摄指纹不同位置的图片。"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_3 (9170127808407017743) -->
-    <skip />
-    <!-- no translation found for security_settings_fingerprint_v2_enroll_introduction_footer_message_4 (4579083553690400908) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_3" msgid="9170127808407017743">"手机还会在您与指纹解锁功能互动时获取图片，并用获取的图片来更新您的指纹模型。系统绝不会存储创建指纹模型时所用的图片，但会将指纹模型安全地存储在您的手机上，并且绝不会将其传送到该手机以外的其他位置。所有处理都是在您的手机上安全进行。"</string>
+    <string name="security_settings_fingerprint_v2_enroll_introduction_footer_message_4" msgid="4579083553690400908">"您可以随时在“设置”部分删除您的指纹模型或关闭指纹解锁功能。指纹模型会存储在手机上，直到您将其删除为止。"</string>
     <string name="security_settings_fingerprint_v2_enroll_introduction_message_learn_more" msgid="5856010507790137793"></string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_try_adjusting" msgid="3855444121278320304">"请在每次放手指时略微更改手指的位置"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_partially_detected" msgid="8330287007361798356">"请将指纹中间部位放在图标上"</string>
@@ -1627,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"修改接入点"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未设置"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未设置"</string>
     <string name="apn_name" msgid="6677695784108157953">"名称"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"代理"</string>
@@ -2733,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"电池用量"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"自充满电后"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"管理电池用量"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"共 <xliff:g id="TIME_0">^1</xliff:g> • 过去 24 小时内在后台使用了 <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"共 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g>之间在后台使用了 <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"过去 24 小时内共使用了不到 1 分钟"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g>之间共使用了不到 1 分钟"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"过去 24 小时内在后台使用了不到 1 分钟"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g>之间在后台使用了不到 1 分钟"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"过去 24 小时内共使用了 <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g>之间共使用了 <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"过去 24 小时内在后台使用了 <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g>之间在后台使用了 <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"共 <xliff:g id="TIME">^1</xliff:g> • 过去 24 小时内在后台使用了不到 1 分钟"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"共 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g>之间在后台使用了不到 1 分钟"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"过去 24 小时内未使用过"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"系统会根据设备使用情况估算电池的剩余续航时间"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"预计剩余时间"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index fd2a291..954ef25 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -1626,8 +1626,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"編輯接入點"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名稱"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2732,26 +2731,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"電池用量"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"上次充滿電後"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"管理電池用量"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"總共使用 <xliff:g id="TIME_0">^1</xliff:g>• 過去 24 小時的背景使用時間為 <xliff:g id="TIME_1">^2</xliff:g>"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> 這段期間內在背景使用電池的時間長度為 <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"過去 24 小時使用電池的總時間長度少於一分鐘"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> 這段期間內使用電池的總時間長度少於一分鐘"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"過去 24 小時在背景使用電池的時間長度少於一分鐘"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> 這段期間內在背景使用電池的時間長度少於一分鐘"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"過去 24 小時使用電池的總時間長度為 <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"過去 24 小時在背景使用電池的時間長度為 <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內在背景使用電池的時間長度為 <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"使用電池的總時間長度為 <xliff:g id="TIME">^1</xliff:g> • 過去 24 小時在背景使用電池的時間長度少於一分鐘"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內在背景使用電池的時間長度少於一分鐘"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"過去 24 小時未使用電池"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"根據裝置的使用情況估計剩餘電量"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"估計剩餘時間"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 96515db..99357da 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -1625,8 +1625,7 @@
     <string name="apn_settings" msgid="4295467389400441299">"APN"</string>
     <string name="apn_edit" msgid="2003683641840248741">"編輯存取點"</string>
     <string name="apn_not_set" msgid="8246646433109750293">"未設定"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"未設定"</string>
     <string name="apn_name" msgid="6677695784108157953">"名稱"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Proxy"</string>
@@ -2731,26 +2730,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"電池用量"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"自上次充飽電後"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"管理電池用量"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"總共使用 <xliff:g id="TIME_0">^1</xliff:g> • 背景使用 <xliff:g id="TIME_1">^2</xliff:g> (過去 24 小時)"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^3</xliff:g> 這段期間內在背景使用電池的時間長度為 <xliff:g id="TIME_1">^2</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"過去 24 小時使用電池的總時間長度不到一分鐘"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"<xliff:g id="TIME_PERIOD">^1</xliff:g> 這段期間內使用電池的總時間長度不到一分鐘"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"過去 24 小時在背景使用電池的時間長度不到一分鐘"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"<xliff:g id="TIME_PERIOD">^1</xliff:g> 這段期間內在背景使用電池的時間長度不到一分鐘"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"過去 24 小時使用電池的總時間長度為 <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"<xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"過去 24 小時在背景使用電池的時間長度為 <xliff:g id="TIME">^1</xliff:g>"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內在背景使用電池的時間長度為 <xliff:g id="TIME_0">^1</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"使用電池的總時間長度為 <xliff:g id="TIME">^1</xliff:g> • 過去 24 小時在背景使用電池的時間長度不到一分鐘"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"使用電池的總時間長度為 <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_PERIOD">^2</xliff:g> 這段期間內在背景使用電池的時間長度不到一分鐘"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"過去 24 小時未使用電池"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"系統會依據裝置的使用情形估算剩餘電量"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"預估剩餘時間"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index cd0765c..a3675de 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -1628,8 +1628,7 @@
     <string name="apn_edit" msgid="2003683641840248741">"Hlela indawo yokungena"</string>
     <!-- unknown quoting pattern: original -1, translation 1 -->
     <string name="apn_not_set" msgid="8246646433109750293">"&amp;lt;Ayisethiwe&amp;gt;"</string>
-    <!-- no translation found for apn_not_set_for_mvno (1141490067313964640) -->
-    <skip />
+    <string name="apn_not_set_for_mvno" msgid="1141490067313964640">"Ayisethiwe"</string>
     <string name="apn_name" msgid="6677695784108157953">"Igama"</string>
     <string name="apn_apn" msgid="5812828833797458602">"APN"</string>
     <string name="apn_http_proxy" msgid="1052464912365838007">"Ummeleli"</string>
@@ -2734,26 +2733,18 @@
     <string name="battery_detail_power_usage" msgid="1492926471397355477">"Ukusetshenziswa kwebhethri"</string>
     <string name="battery_detail_info_title" msgid="5896661833554333683">"Kusuka ligcwele ngokuphelele"</string>
     <string name="battery_detail_manage_title" msgid="7910805419446927887">"Phatha ukusetshenziswa kwebhethri"</string>
-    <!-- no translation found for battery_total_and_bg_usage (7808189707718974808) -->
-    <skip />
-    <!-- no translation found for battery_total_and_bg_usage_with_period (7938034545486503036) -->
-    <skip />
+    <string name="battery_total_and_bg_usage" msgid="7808189707718974808">"isamba <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> kwangemuva emahoreni angama-24 adlule"</string>
+    <string name="battery_total_and_bg_usage_with_period" msgid="7938034545486503036">"isamba <xliff:g id="TIME_0">^1</xliff:g> • <xliff:g id="TIME_1">^2</xliff:g> indawo engemuva ye-<xliff:g id="TIME_PERIOD">^3</xliff:g>"</string>
     <string name="battery_total_usage_less_minute" msgid="6665817695616836396">"Isamba singaphansi komzuzu emahoreni angama-24 adlule"</string>
     <string name="battery_total_usage_less_minute_with_period" msgid="571923652373556609">"Isamba singaphansi komzuzu kokungu-<xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage_less_minute (90932588167097641) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_less_minute_with_period (7624741677867017430) -->
-    <skip />
+    <string name="battery_bg_usage_less_minute" msgid="90932588167097641">"Indawo engemuva ngaphansi komzuzu emahoreni angama-24 adlule"</string>
+    <string name="battery_bg_usage_less_minute_with_period" msgid="7624741677867017430">"Indawo engemuva ngaphansi komzuzu we-<xliff:g id="TIME_PERIOD">^1</xliff:g>"</string>
     <string name="battery_total_usage" msgid="2662725472478185867">"isamba esingu-<xliff:g id="TIME">^1</xliff:g> samahora angama-24 adlule"</string>
     <string name="battery_total_usage_with_period" msgid="2849061229625950626">"isamba esingu-<xliff:g id="TIME_0">^1</xliff:g> kokungu-<xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
-    <!-- no translation found for battery_bg_usage (2983050956970659511) -->
-    <skip />
-    <!-- no translation found for battery_bg_usage_with_period (992952174445045711) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage (4158686147238415647) -->
-    <skip />
-    <!-- no translation found for battery_total_usage_and_bg_less_minute_usage_with_period (8677646584258593395) -->
-    <skip />
+    <string name="battery_bg_usage" msgid="2983050956970659511">"<xliff:g id="TIME">^1</xliff:g> indawo engemuva emahoreni angama-24 adlule"</string>
+    <string name="battery_bg_usage_with_period" msgid="992952174445045711">"<xliff:g id="TIME_0">^1</xliff:g> indawo engemuva ye-<xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage" msgid="4158686147238415647">"isamba <xliff:g id="TIME">^1</xliff:g> • indawo engemuva ngaphansi komzuzu wamahora angama-24 edlule"</string>
+    <string name="battery_total_usage_and_bg_less_minute_usage_with_period" msgid="8677646584258593395">"isamba <xliff:g id="TIME_0">^1</xliff:g> • indawo engemuva ngaphansi komzuzu kokungu-<xliff:g id="TIME_PERIOD">^2</xliff:g>"</string>
     <string name="battery_not_usage" msgid="8417901856028909227">"Akusetshenziswanga emahoreni angama-24 adlule"</string>
     <string name="advanced_battery_graph_subtext" msgid="6816737986172678550">"Ukulinganiselwa kwebhethri okusele kususelwa ekusetshenzisweni kwedivayisi yakho"</string>
     <string name="estimated_time_left" msgid="948717045180211777">"Isikhathi esilinganiselwe esisele"</string>
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 0aa309f..be32412 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -198,4 +198,6 @@
     <color name="accessibility_magnification_background">#F50D60</color>
     <color name="accessibility_daltonizer_background">#00BCD4</color>
     <color name="accessibility_color_inversion_background">#546E7A</color>
+
+    <color name="battery_info_error_color_red">#fce8e6</color> <!-- Material Red 50 -->
 </resources>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8368b46..742ed97 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -853,8 +853,6 @@
     <string name="security_settings_face_settings_require_confirmation">Always require confirmation</string>
     <!-- When authenticating in apps, always require confirmation (e.g. confirm button) after a face is authenticated. [CHAR LIMIT=70] -->
     <string name="security_settings_face_settings_require_confirmation_details">When using face unlock in apps, always require confirmation step</string>
-    <!-- Button text in face settings which removes the user's faces from the device [CHAR LIMIT=20] -->
-    <string name="security_settings_face_settings_remove_face_data">Delete face data</string>
     <!-- Button text in face settings which removes the user's face model from the device [CHAR LIMIT=40] -->
     <string name="security_settings_face_settings_remove_face_model">Delete face model</string>
     <!-- Button text in face settings which lets the user enroll their face [CHAR LIMIT=40] -->
@@ -866,9 +864,9 @@
     <!-- Text shown in face settings explaining what your face can be used for. Used when attention checking is not supported. [CHAR LIMIT=NONE] -->
     <string name="security_settings_face_settings_footer_attention_not_supported">Keep in mind:\nLooking at the phone can unlock it when you don\u2019t intend to.\n\nYour phone can be unlocked by someone else if it\u2019s held up to your face, even if your eyes are closed.\n\nYour phone can be unlocked by someone who looks a lot like you, say, an identical sibling.</string>
     <!-- Dialog title shown when the user removes an enrollment [CHAR LIMIT=35] -->
-    <string name="security_settings_face_settings_remove_dialog_title">Delete face data?</string>
+    <string name="security_settings_face_settings_remove_dialog_title">Delete face model?</string>
     <!-- Dialog contents shown when the user removes an enrollment [CHAR LIMIT=NONE] -->
-    <string name="security_settings_face_settings_remove_dialog_details">The face data used by face unlock will be permanently and securely deleted. After removal, you will need your PIN, pattern, or password to unlock your phone, sign in to apps, and confirm payments.</string>
+    <string name="security_settings_face_settings_remove_dialog_details">Your face model will be permanently and securely deleted. After deletion, you will need your PIN, pattern, or password to unlock your phone or for authentication in apps.</string>
     <!-- Dialog title shown when the user chooses to delete an existing enrolled face model. [CHAR LIMIT=35] -->
     <string name="security_settings_face_settings_remove_model_dialog_title">Delete face model?</string>
     <!-- Dialog contents shown when the user chooses to delete an existing enrolled face model. [CHAR LIMIT=NONE] -->
@@ -889,8 +887,8 @@
     <string name="fingerprint_enable_keyguard_toggle_title">screen lock</string>
     <!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. -->
     <plurals name="security_settings_fingerprint_preference_summary">
-        <item quantity="one"><xliff:g id="count">%1$d</xliff:g> fingerprint set up</item>
-        <item quantity="other"><xliff:g id="count">%1$d</xliff:g> fingerprints set up</item>
+        <item quantity="one">Fingerprint added</item>
+        <item quantity="other"><xliff:g id="count">%1$d</xliff:g> fingerprints added</item>
     </plurals>
     <!-- message shown in summary field when no fingerprints are registered -->
     <string name="security_settings_fingerprint_preference_summary_none"></string>
@@ -971,9 +969,13 @@
 
     <!-- Biometric settings --><skip />
     <!-- Title shown for menu item that launches biometric settings. [CHAR LIMIT=66] -->
-    <string name="security_settings_biometric_preference_title">Face &amp; fingerprint unlock</string>
+    <string name="security_settings_biometric_preference_title">Face &amp; Fingerprint Unlock</string>
     <!-- Message shown in summary field of biometric settings. [CHAR LIMIT=66] -->
-    <string name="security_settings_biometric_preference_summary">Face and fingerprint</string>
+    <string name="security_settings_biometric_preference_summary_none_enrolled">Tap to set up</string>
+    <!-- Message shown in summary field of biometric settings when face is enrolled, and multiple fingerprints are enrolled. [CHAR LIMIT=66]-->
+    <string name="security_settings_biometric_preference_summary_both_fp_multiple">Face and fingerprints added</string>
+    <!-- Message shown in summary field of biometric settings when face is enrolled, and a single fingerprintis enrolled. [CHAR LIMIT=66]-->
+    <string name="security_settings_biometric_preference_summary_both_fp_single">Face and fingerprint added</string>
     <!-- Introduction shown in face and fingerprint page to introduce the biometric feature. [CHAR LIMIT=NONE]-->
     <string name="biometric_settings_intro">When you set up face unlock and fingerprint, your phone will ask for your fingerprint when you wear a mask or are in a dark area.</string>
     <!-- Biometric category title - biometric options for unlocking the device. [CHAR LIMIT=50] -->
@@ -1464,43 +1466,42 @@
     <string name="unlock_disable_lock_title">Turn off screen lock</string>
 
     <!-- Title of the dialog shown when the user removes the device lock [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_title">Remove device protection?</string>
+    <string name="unlock_disable_frp_warning_title">Delete screen lock?</string>
     <!-- Title of the dialog shown when the user removes the profile lock [CHAR LIMIT=NONE] -->
     <string name="unlock_disable_frp_warning_title_profile">Remove profile protection?</string>
 
     <!-- Content of the dialog shown when the user removes the device lock pattern [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pattern">"Device protection features will not work without your pattern."</string>
+    <string name="unlock_disable_frp_warning_content_pattern">"A pattern protects your phone if it\u2019s lost or stolen"</string>
     <!-- Content of the dialog shown when the user removes the device lock pattern and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pattern_fingerprint">"Device protection features will not work without your pattern.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this device and you won\'t be able to unlock your phone, authorize purchases, or sign in to apps with them."</string>
+    <string name="unlock_disable_frp_warning_content_pattern_fingerprint">"A pattern protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This also deletes the fingerprint model stored on your device. You won\u2019t be able to use your fingerprint for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock pattern and the user has face authentication enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_pattern_face">"A pattern protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock pattern and the user has face authentication and fingerprint enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_pattern_face_fingerprint">"A pattern protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This deletes the fingerprint model stored on your device. Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face or fingerprint for authentication in apps."</string>
     <!-- Content of the dialog shown when the user removes the device lock PIN [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pin">"Device protection features will not work without your PIN."</string>
+    <string name="unlock_disable_frp_warning_content_pin">"A PIN protects your phone if it\u2019s lost or stolen"</string>
     <!-- Content of the dialog shown when the user removes the device lock PIN and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pin_fingerprint">"Device protection features will not work without your PIN.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this device and you won\'t be able to unlock your phone, authorize purchases, or sign in to apps with them."</string>
+    <string name="unlock_disable_frp_warning_content_pin_fingerprint">"A PIN protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This also deletes the fingerprint model stored on your device. You won\u2019t be able to use your fingerprint for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock PIN and the user has face enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_pin_face">"A PIN protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock PIN and the user has face authentication and fingerprint enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_pin_face_fingerprint">"A PIN protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This deletes the fingerprint model stored on your device. Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face or fingerprint for authentication in apps."</string>
     <!-- Content of the dialog shown when the user removes the device lock password [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_password">"Device protection features will not work without your password."</string>
+    <string name="unlock_disable_frp_warning_content_password">"A password protects your phone if it\u2019s lost or stolen"</string>
     <!-- Content of the dialog shown when the user removes the device lock password and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_password_fingerprint">"Device protection features will not work without your password.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this device and you won\'t be able to unlock your phone, authorize purchases, or sign in to apps with them."</string>
+    <string name="unlock_disable_frp_warning_content_password_fingerprint">"A password protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This also deletes the fingerprint model stored on your device. You won\u2019t be able to use your fingerprint for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock password and the user has face enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_password_face">"A password protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock password and the user has face authentication and fingerprint enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_password_face_fingerprint">"A password protects your phone if it\u2019s lost or stolen.<xliff:g id="empty_line">\n\n</xliff:g>This deletes the fingerprint model stored on your device. Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face or fingerprint for authentication in apps."</string>
     <!-- Content of the dialog shown when the user removes the device lock of unknown type [CHAR LIMIT=NONE] -->
     <string name="unlock_disable_frp_warning_content_unknown">"Device protection features will not work without your screen lock."</string>
     <!-- Content of the dialog shown when the user removes the device lock of unknown type and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_unknown_fingerprint">"Device protection features will not work without your screen lock.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this device and you won\'t be able to unlock your phone, authorize purchases, or sign in to apps with them."</string>
-
-    <!-- Content of the dialog shown when the user removes the profile lock pattern [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pattern_profile">"Profile protection features will not work without your pattern."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock pattern and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pattern_fingerprint_profile">"Profile protection features will not work without your pattern.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this profile and you won\'t be able to unlock your profile, authorize purchases, or sign in to apps with them."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock PIN [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pin_profile">"Profile protection features will not work without your PIN."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock PIN and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_pin_fingerprint_profile">"Profile protection features will not work without your PIN.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this profile and you won\'t be able to unlock your profile, authorize purchases, or sign in to apps with them."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock password [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_password_profile">"Profile protection features will not work without your password."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock password and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_password_fingerprint_profile">"Profile protection features will not work without your password.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this profile and you won\'t be able to unlock your profile, authorize purchases, or sign in to apps with them."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock of unknown type [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_unknown_profile">"Profile protection features will not work without your screen lock."</string>
-    <!-- Content of the dialog shown when the user removes the profile lock of unknown type and the user has fingerprints enrolled [CHAR LIMIT=NONE] -->
-    <string name="unlock_disable_frp_warning_content_unknown_fingerprint_profile">"Profile protection features will not work without your screen lock.<xliff:g id="empty_line">\n\n</xliff:g>Your saved fingerprints will also be removed from this profile and you won\'t be able to unlock your profile, authorize purchases, or sign in to apps with them."</string>
+    <string name="unlock_disable_frp_warning_content_unknown_fingerprint">"Device protection features will not work without your screen lock.<xliff:g id="empty_line">\n\n</xliff:g>This also deletes the fingerprint model stored on your device. You won\u2019t be able to use your fingerprint for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock of unknown type and the user has face enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_unknown_face">"Device protection features will not work without your screen lock.<xliff:g id="empty_line">\n\n</xliff:g>Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face for authentication in apps."</string>
+    <!-- Content of the dialog shown when the user removes the device lock of unknown type and the user has face authentication and fingerprint enrolled [CHAR LIMIT=NONE] -->
+    <string name="unlock_disable_frp_warning_content_unknown_face_fingerprint">"Device protection features will not work without your screen lock.<xliff:g id="empty_line">\n\n</xliff:g>This deletes the fingerprint model stored on your device. Your face model will also be permanently and securely deleted. You won\u2019t be able to use your face or fingerprint for authentication in apps."</string>
 
     <!-- Affirmative action of the dialog shown when the user removes the device lock [CHAR LIMIT=25] -->
     <string name="unlock_disable_frp_warning_ok">Yes, remove</string>
@@ -3121,8 +3122,6 @@
     <string name="screensaver_settings_when_to_dream">When to start</string>
     <!-- Dream settings screen, action label, current selected screen saver -->
     <string name="screensaver_settings_current">Current screen saver</string>
-    <!-- Dream settings screen, button label to start dreaming -->
-    <string name="screensaver_settings_dream_start">Start now</string>
     <!-- Dream settings screen, button label for settings for a specific screensaver -->
     <string name="screensaver_settings_button">Settings</string>
     <!-- Sound & display settings screen, setting option name to change whether the screen adjusts automatically based on lighting conditions -->
@@ -3573,8 +3572,6 @@
     <!-- Body of dialog confirming that user wants to forget an internal storage device [CHAR LIMIT=NONE]-->
     <string name="storage_internal_forget_confirm">All the apps, photos, and data stored on this <xliff:g id="name" example="SD card">^1</xliff:g> will be lost forever.</string>
 
-    <!-- Item title describing storage used by images [CHAR LIMIT=48]-->
-    <string name="storage_detail_images">Images</string>
     <!-- Body of dialog informing user about the storage used by the Android System [CHAR LIMIT=NONE]-->
     <string name="storage_detail_dialog_system">System includes files used to run Android version <xliff:g id="version" example="8.0">%s</xliff:g></string>
 
@@ -5913,6 +5910,10 @@
     <string name="manager_battery_usage_footer">Changing how an app uses your battery can affect its performance.</string>
     <!-- Footer for the manage battery usage page when app is limited to specific option (e.g This app requires restricted battery usage) [CHAR_LIMIT=NONE] -->
     <string name="manager_battery_usage_footer_limited">This app requires <xliff:g id="state" example="restricted">%1$s</xliff:g> battery usage.</string>
+    <!-- The state when app is limited to unrestricted option only (e.g This app requires unrestricted battery usage) [CHAR_LIMIT=40] -->
+    <string name="manager_battery_usage_unrestricted_only">unrestricted</string>
+    <!-- The state when app is limited to optimized option only (e.g This app requires optimized battery usage) [CHAR_LIMIT=40] -->
+    <string name="manager_battery_usage_optimized_only">optimized</string>
 
     <!-- Title for the screen usage in power use UI [CHAR_LIMIT=60] -->
     <string name="device_screen_usage">Screen usage since full charge</string>
@@ -7599,10 +7600,6 @@
     <string name="help_uri_apps_manage_sources" translatable="false"></string>
     <!-- Help URI, manage apps games [DO NOT TRANSLATE] -->
     <string name="help_uri_apps_games" translatable="false"></string>
-    <!-- Help URI, manage apps movies [DO NOT TRANSLATE] -->
-    <string name="help_uri_apps_movies" translatable="false"></string>
-    <!-- Help URI, manage apps photography [DO NOT TRANSLATE] -->
-    <string name="help_uri_apps_photography" translatable="false"></string>
     <!-- Help URI, manage apps wifi access [DO NOT TRANSLATE] -->
     <string name="help_uri_apps_wifi_access" translatable="false"></string>
     <!-- Help URI, manage apps that have access to all files [DO NOT TRANSLATE] -->
@@ -8747,10 +8744,6 @@
 
     <!-- Bubble feature settings: Description for toggle when bubbles are turned on in notification settings [CHAR LIMIT=100] -->
     <string name="notifications_bubble_setting_on_summary">On / Conversations can appear as floating icons</string>
-    <!-- Bubble feature settings: Title of the toggle to turn bubbles on and off [CHAR LIMIT=100] -->
-    <string name="notifications_bubble_setting_title">Allow apps to show bubbles</string>
-    <!-- Bubble feature settings: Description shown with the toggle to turn bubbles on and off [CHAR LIMIT=NONE]-->
-    <string name="notifications_bubble_setting_description">Some conversations will appear as floating icons on top of other apps</string>
 
     <!-- Bubble app settings: option allowing all conversations from an app to bubble if the app sends bubbles [CHAR LIMIT=60]-->
     <string name="bubble_app_setting_all">All conversations can bubble</string>
@@ -11921,9 +11914,6 @@
     <!-- Title of games app storage screen [CHAR LIMIT=30] -->
     <string name="game_storage_settings">Games</string>
 
-    <!-- Title for audio files preference. [CHAR LIMIT=50] -->
-    <string name="audio_files_title">Audio files</string>
-
     <!-- Title for the installed app info storage page. The total storage space taken up by this app. [CHAR LIMIT=40]-->
     <string name="app_info_storage_title">Space used</string>
 
@@ -13236,6 +13226,10 @@
     <string name="adaptive_brightness_main_switch_title">Use adaptive brightness</string>
     <!-- Title for wifi calling main switch preferences. [CHAR LIMIT=50] -->
     <string name="wifi_calling_main_switch_title">Use Wi‑Fi calling</string>
+    <!-- Title for Bubbles main switch preferences. [CHAR LIMIT=50] -->
+    <string name="bubbles_main_switch_title">Use Bubbles</string>
+    <!-- Title for Screen saver main switch preferences. [CHAR LIMIT=50] -->
+    <string name="screen_saver_main_switch_title">Use screen saver</string>
 
     <!-- Default preference title for showing all apps on device [CHAR_LIMIT=50]-->
     <string name="default_see_all_apps_title">See all apps</string>
@@ -13272,6 +13266,8 @@
 
     <!-- Label for extra app info settings for a specific app [CHAR LIMIT=40] -->
     <string name="extra_app_info_label" translatable="false"></string>
+    <!-- Summary for extra app info settings for a specific app [CHAR LIMIT=40] -->
+    <string name="extra_app_info_summary" translatable="false"></string>
 
     <!-- Title for toggle controlling whether notifications are shown when an app pastes from clipboard. [CHAR LIMIT=50] -->
     <string name="show_clip_access_notification">Show clipboard access</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index b27cc5d..2619398 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -665,7 +665,7 @@
         <item name="android:gravity">center</item>
         <item name="android:textSize">20sp</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:fontFamily">google-sans-medium</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
     </style>
 
     <style name="AccessibilityDialogDescription"
@@ -676,7 +676,6 @@
         <item name="android:layout_marginBottom">32dp</item>
         <item name="android:textSize">16sp</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:fontFamily">sans-serif</item>
     </style>
 
     <style name="AccessibilityDialogPermissionTitle"
@@ -685,7 +684,7 @@
         <item name="android:layout_height">wrap_content</item>
         <item name="android:textSize">16sp</item>
         <item name="android:textColor">?android:attr/textColorPrimary</item>
-        <item name="android:fontFamily">sans-serif</item>
+        <item name="android:fontFamily">@*android:string/config_headlineFontFamily</item>
     </style>
 
     <style name="AccessibilityDialogPermissionDescription"
@@ -694,7 +693,6 @@
         <item name="android:layout_height">wrap_content</item>
         <item name="android:textSize">14sp</item>
         <item name="android:textColor">?android:attr/textColorSecondary</item>
-        <item name="android:fontFamily">sans-serif</item>
     </style>
 
     <style name="AccessibilityDialogButtonBarSpace">
@@ -715,8 +713,8 @@
            parent="@*android:style/Widget.DeviceDefault.Button.ButtonBar.AlertDialog">
         <item name="android:layout_width">match_parent</item>
         <item name="android:layout_height">56dp</item>
-        <item name="android:paddingLeft">8dp</item>
-        <item name="android:paddingRight">8dp</item>
+        <item name="android:paddingEnd">8dp</item>
+        <item name="android:paddingStart">8dp</item>
         <item name="android:background">?android:attr/selectableItemBackground</item>
     </style>
 
diff --git a/res/xml/accessibility_autoclick_settings.xml b/res/xml/accessibility_autoclick_settings.xml
index d387b58..ee27cea 100644
--- a/res/xml/accessibility_autoclick_settings.xml
+++ b/res/xml/accessibility_autoclick_settings.xml
@@ -60,10 +60,11 @@
         settings:allowDividerBelow="true"
         settings:controller="com.android.settings.accessibility.ToggleAutoclickCustomSeekbarController" />
 
-    <com.android.settingslib.widget.FooterPreference
-        android:key="autoclick_footer"
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="accessibility_autoclick_footer"
         android:title="@string/accessibility_autoclick_description"
+        android:persistent="false"
         android:selectable="false"
-        settings:searchable="false" />
-
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.ToggleAutoclickFooterPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/accessibility_button_settings.xml b/res/xml/accessibility_button_settings.xml
index bb16f03..4732da5 100644
--- a/res/xml/accessibility_button_settings.xml
+++ b/res/xml/accessibility_button_settings.xml
@@ -59,11 +59,11 @@
         android:persistent="false"
         settings:controller="com.android.settings.accessibility.FloatingMenuOpacityPreferenceController"/>
 
-    <com.android.settingslib.widget.FooterPreference
+    <com.android.settings.accessibility.AccessibilityFooterPreference
         android:key="accessibility_button_footer"
         android:title="@string/accessibility_button_description"
+        android:persistent="false"
         android:selectable="false"
         settings:searchable="false"
-        android:persistent="false"/>
-
-</PreferenceScreen>
\ No newline at end of file
+        settings:controller="com.android.settings.accessibility.AccessibilityButtonFooterPreferenceController"/>
+</PreferenceScreen>
diff --git a/res/xml/accessibility_control_timeout_settings.xml b/res/xml/accessibility_control_timeout_settings.xml
index 0f14cd5..71a6605 100644
--- a/res/xml/accessibility_control_timeout_settings.xml
+++ b/res/xml/accessibility_control_timeout_settings.xml
@@ -55,8 +55,11 @@
         android:title="@string/accessibility_timeout_2mins"
         android:persistent="false" />
 
-    <com.android.settingslib.widget.FooterPreference
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="accessibility_control_timeout_footer"
         android:title="@string/accessibility_control_timeout_preference_summary"
-        android:selectable="false" />
-
+        android:persistent="false"
+        android:selectable="false"
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.AccessibilityControlTimeoutFooterPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/app_info_settings_v2.xml b/res/xml/app_info_settings_v2.xml
index 80c449a..8b9cf4f 100644
--- a/res/xml/app_info_settings_v2.xml
+++ b/res/xml/app_info_settings_v2.xml
@@ -83,6 +83,7 @@
     <Preference
         android:key="extra_app_info_settings"
         android:title="@string/extra_app_info_label"
+        android:summary="@string/extra_app_info_summary"
         settings:controller="com.android.settings.applications.appinfo.ExtraAppInfoPreferenceController" />
 
     <Preference
diff --git a/res/xml/bubble_notification_settings.xml b/res/xml/bubble_notification_settings.xml
index 4827cb6..70492b4 100644
--- a/res/xml/bubble_notification_settings.xml
+++ b/res/xml/bubble_notification_settings.xml
@@ -18,6 +18,11 @@
                   xmlns:settings="http://schemas.android.com/apk/res-auto"
                   android:title="@string/bubbles_app_toggle_title">
 
+        <com.android.settingslib.widget.MainSwitchPreference
+            android:key="global_notification_bubbles"
+            android:title="@string/bubbles_main_switch_title"
+            settings:controller="com.android.settings.notification.BubbleNotificationPreferenceController"/>
+
         <com.android.settings.widget.VideoPreference
             android:key="bubbles_illustration"
             android:title="@string/summary_placeholder"
@@ -25,13 +30,4 @@
             settings:controller="com.android.settings.widget.VideoPreferenceController"
             android:persistent="false" />
 
-        <!-- Notification bubbles -->
-        <SwitchPreference
-            android:key="global_notification_bubbles"
-            android:icon="@drawable/ic_create_bubble"
-            settings:allowDividerAbove="true"
-            android:title="@string/notifications_bubble_setting_title"
-            android:summary="@string/notifications_bubble_setting_description"
-            settings:controller="com.android.settings.notification.BubbleNotificationPreferenceController"/>
-
-</PreferenceScreen>
\ No newline at end of file
+</PreferenceScreen>
diff --git a/res/xml/captioning_appearance.xml b/res/xml/captioning_appearance.xml
index 3e0e804..7156630 100644
--- a/res/xml/captioning_appearance.xml
+++ b/res/xml/captioning_appearance.xml
@@ -87,8 +87,11 @@
 
     </PreferenceCategory>
 
-    <com.android.settingslib.widget.FooterPreference
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="captioning_appearance_footer"
         android:title="@string/accessibility_caption_preference_summary"
-        android:selectable="false"/>
-
+        android:persistent="false"
+        android:selectable="false"
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
 </PreferenceScreen>
diff --git a/res/xml/captioning_more_options.xml b/res/xml/captioning_more_options.xml
index d4111d2..b902c48 100644
--- a/res/xml/captioning_more_options.xml
+++ b/res/xml/captioning_more_options.xml
@@ -25,8 +25,12 @@
         android:summary="%s"
         android:title="@string/captioning_locale" />
 
-    <com.android.settingslib.widget.FooterPreference
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="captioning_more_options_footer"
         android:title="@string/accessibility_caption_preference_summary"
-        android:selectable="false" />
+        android:persistent="false"
+        android:selectable="false"
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/captioning_settings.xml b/res/xml/captioning_settings.xml
index a58e224..30e76de 100644
--- a/res/xml/captioning_settings.xml
+++ b/res/xml/captioning_settings.xml
@@ -47,10 +47,12 @@
         android:persistent="false"
         android:title="@string/captioning_more_options_title" />
 
-    <com.android.settingslib.widget.FooterPreference
+    <com.android.settings.accessibility.AccessibilityFooterPreference
+        android:key="captioning_settings_footer"
+        android:title="@string/accessibility_caption_preference_summary"
         android:persistent="false"
         android:selectable="false"
-        android:title="@string/accessibility_caption_preference_summary"
-        settings:searchable="false"/>
+        settings:searchable="false"
+        settings:controller="com.android.settings.accessibility.CaptionFooterPreferenceController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/dream_fragment_overview.xml b/res/xml/dream_fragment_overview.xml
index 3cb49f9..6e18a97 100644
--- a/res/xml/dream_fragment_overview.xml
+++ b/res/xml/dream_fragment_overview.xml
@@ -19,6 +19,11 @@
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/screensaver_settings_title">
 
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="dream_start_now_button_container"
+        android:title="@string/screen_saver_main_switch_title"
+        settings:controller="com.android.settings.dream.StartNowPreferenceController"/>
+
     <com.android.settings.widget.GearPreference
         android:key="current_screensaver"
         android:title="@string/screensaver_settings_current"
@@ -30,14 +35,4 @@
         android:title="@string/screensaver_settings_when_to_dream"
         android:fragment="com.android.settings.dream.WhenToDreamPicker" />
 
-
-    <!-- Layout preference doesn't obey allowDividerAbove, so put it in a PreferenceCategory -->
-    <PreferenceCategory
-        android:key="dream_start_now_category">
-        <com.android.settingslib.widget.LayoutPreference
-            android:key="dream_start_now_button_container"
-            android:selectable="false"
-            android:layout="@layout/dream_start_button" />
-    </PreferenceCategory>
-
 </PreferenceScreen>
diff --git a/res/xml/emergency_settings.xml b/res/xml/emergency_settings.xml
index 66c5fd1..91b7525 100644
--- a/res/xml/emergency_settings.xml
+++ b/res/xml/emergency_settings.xml
@@ -41,7 +41,6 @@
         android:key="app_and_notif_cell_broadcast_settings"
         android:title="@string/cell_broadcast_settings"
         android:order="200"
-        settings:iconSpaceReserved="true"
         settings:useAdminDisabledSummary="true">
         <intent
             android:action="android.intent.action.MAIN"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index d7b8364..d30c637 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -18,8 +18,7 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:title="@string/language_settings"
-    settings:initialExpandedChildrenCount="3">
+    android:title="@string/language_settings">
 
     <Preference
         android:key="phone_language"
diff --git a/res/xml/one_handed_settings.xml b/res/xml/one_handed_settings.xml
index 5a71d48..b2c7de9 100644
--- a/res/xml/one_handed_settings.xml
+++ b/res/xml/one_handed_settings.xml
@@ -21,6 +21,12 @@
     android:persistent="false"
     android:title="@string/one_handed_title">
 
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="gesture_one_handed_mode_enabled"
+        android:title="@string/one_handed_mode_enabled"
+        settings:keywords="@string/keywords_one_handed"
+        settings:controller="com.android.settings.gestures.OneHandedEnablePreferenceController"/>
+
     <com.android.settingslib.widget.LayoutPreference
         android:key="one_handed_header"
         android:layout="@layout/one_handed_header"
@@ -30,12 +36,6 @@
         settings:searchable="false"/>
 
     <SwitchPreference
-        android:key="gesture_one_handed_mode_enabled"
-        android:title="@string/one_handed_mode_enabled"
-        settings:keywords="@string/keywords_one_handed"
-        settings:controller="com.android.settings.gestures.OneHandedEnablePreferenceController"/>
-
-    <SwitchPreference
         android:key="gesture_app_taps_to_exit"
         android:title="@string/one_handed_app_taps_to_exit"
         settings:controller="com.android.settings.gestures.OneHandedAppTapsExitPreferenceController"/>
diff --git a/res/xml/security_settings_face.xml b/res/xml/security_settings_face.xml
index 131f222..e1ac9b3 100644
--- a/res/xml/security_settings_face.xml
+++ b/res/xml/security_settings_face.xml
@@ -81,7 +81,7 @@
         android:title="@string/security_settings_face_preference_title">
         <com.android.settingslib.widget.LayoutPreference
             android:key="security_settings_face_delete_faces_container"
-            android:title="@string/security_settings_face_settings_remove_face_data"
+            android:title="@string/security_settings_face_settings_remove_face_model"
             android:selectable="false"
             android:layout="@layout/face_remove_button"
             settings:allowDividerBelow="true"/>
diff --git a/res/xml/zen_mode_settings.xml b/res/xml/zen_mode_settings.xml
index 10b3e41..886790a 100644
--- a/res/xml/zen_mode_settings.xml
+++ b/res/xml/zen_mode_settings.xml
@@ -38,6 +38,7 @@
         <Preference
             android:key="zen_mode_behavior_apps"
             android:title="@string/zen_category_apps"
+            android:summary=" "
             android:fragment="com.android.settings.notification.zen.ZenModeBypassingAppsSettings" />
 
         <!-- All sounds -->
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index c89402c..705ac36 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -19,11 +19,16 @@
 import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.util.FeatureFlagUtils;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.core.FeatureFlags;
 import com.android.settings.enterprise.EnterprisePrivacySettings;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.security.SecuritySettingsFeatureProvider;
+
+import com.google.android.setupdesign.util.ThemeHelper;
 
 /**
  * Top-level Settings activity
@@ -118,7 +123,39 @@
      * Activity for Reduce Bright Colors.
      */
     public static class ReduceBrightColorsSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class SecurityDashboardActivity extends SettingsActivity { /* empty */ }
+    /** Activity for the security dashboard. */
+    public static class SecurityDashboardActivity extends SettingsActivity {
+
+        /** Whether the given fragment is allowed. */
+        @VisibleForTesting
+        @Override
+        public boolean isValidFragment(String fragmentName) {
+            return super.isValidFragment(fragmentName)
+                    || (fragmentName != null
+                            && TextUtils.equals(fragmentName, getAlternativeFragmentName()));
+        }
+
+        @Override
+        public String getInitialFragmentName(Intent intent) {
+            final String alternativeFragmentName = getAlternativeFragmentName();
+            if (alternativeFragmentName != null) {
+                return alternativeFragmentName;
+            }
+
+            return super.getInitialFragmentName(intent);
+        }
+
+        private String getAlternativeFragmentName() {
+            String alternativeFragmentClassname = null;
+            final SecuritySettingsFeatureProvider securitySettingsFeatureProvider =
+                    FeatureFactory.getFactory(this).getSecuritySettingsFeatureProvider();
+            if (securitySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment()) {
+                alternativeFragmentClassname = securitySettingsFeatureProvider
+                        .getAlternativeSecuritySettingsFragmentClassname();
+            }
+            return alternativeFragmentClassname;
+        }
+    }
     public static class UsageAccessSettingsActivity extends SettingsActivity { /* empty */ }
     public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ }
     public static class LocationSettingsActivity extends SettingsActivity { /* empty */ }
@@ -129,6 +166,7 @@
         @Override
         protected void onCreate(Bundle savedState) {
             setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+            ThemeHelper.trySetDynamicColor(this);
             super.onCreate(savedState);
         }
 
@@ -141,6 +179,7 @@
         @Override
         protected void onCreate(Bundle savedState) {
             setTheme(SetupWizardUtils.getTheme(this, getIntent()));
+            ThemeHelper.trySetDynamicColor(this);
             super.onCreate(savedState);
         }
 
@@ -199,10 +238,6 @@
     public static class ManageDomainUrlsActivity extends SettingsActivity { /* empty */ }
     public static class AutomaticStorageManagerSettingsActivity extends SettingsActivity { /* empty */ }
     public static class GamesStorageActivity extends SettingsActivity { /* empty */ }
-    public static class MoviesStorageActivity extends SettingsActivity { /* empty */ }
-    public static class PhotosStorageActivity extends SettingsActivity {
-        /* empty */
-    }
     public static class GestureNavigationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class InteractAcrossProfilesSettingsActivity extends SettingsActivity {
         /* empty */
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index b672917..923c2bd 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -219,7 +219,7 @@
     private String getMetricsTag() {
         String tag = null;
         if (getIntent() != null && getIntent().hasExtra(EXTRA_SHOW_FRAGMENT)) {
-            tag = getIntent().getStringExtra(EXTRA_SHOW_FRAGMENT);
+            tag = getInitialFragmentName(getIntent());
         }
         if (TextUtils.isEmpty(tag)) {
             Log.w(LOG_TAG, "MetricsTag is invalid " + tag);
@@ -262,7 +262,7 @@
         }
 
         // Getting Intent properties can only be done after the super.onCreate(...)
-        final String initialFragmentName = intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
+        final String initialFragmentName = getInitialFragmentName(intent);
 
         // This is a "Sub Settings" when:
         // - this is a real SubSettings
@@ -363,6 +363,12 @@
         }
     }
 
+    /** Returns the initial fragment name that the activity will launch. */
+    @VisibleForTesting
+    public String getInitialFragmentName(Intent intent) {
+        return intent.getStringExtra(EXTRA_SHOW_FRAGMENT);
+    }
+
     @Override
     protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
         theme.applyStyle(R.style.SetupWizardPartnerResource, true);
diff --git a/src/com/android/settings/SettingsDumpService.java b/src/com/android/settings/SettingsDumpService.java
index 5e6ee93..a935c18 100644
--- a/src/com/android/settings/SettingsDumpService.java
+++ b/src/com/android/settings/SettingsDumpService.java
@@ -120,7 +120,9 @@
             obj.put("cell", array);
         }
         if (packageManager.hasSystemFeature(FEATURE_WIFI)) {
-            obj.put("wifi", dumpDataUsage(NetworkTemplate.buildTemplateWifiWildcard(), controller));
+            obj.put("wifi", dumpDataUsage(
+                    NetworkTemplate.buildTemplateWifi(
+                    NetworkTemplate.WIFI_NETWORKID_ALL, null /* subscriberId */), controller));
         }
 
         if (packageManager.hasSystemFeature(FEATURE_ETHERNET)) {
diff --git a/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java
new file mode 100644
index 0000000..744a292
--- /dev/null
+++ b/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+
+import com.android.settings.R;
+
+/**
+ * Preference controller for accessibility button footer.
+ */
+public class AccessibilityButtonFooterPreferenceController extends
+        AccessibilityFooterPreferenceController {
+
+    public AccessibilityButtonFooterPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    protected String getLabelName() {
+        return mContext.getString(R.string.accessibility_button_title);
+    }
+}
diff --git a/src/com/android/settings/accessibility/AccessibilityButtonFragment.java b/src/com/android/settings/accessibility/AccessibilityButtonFragment.java
index c3e683a..4e067d8 100644
--- a/src/com/android/settings/accessibility/AccessibilityButtonFragment.java
+++ b/src/com/android/settings/accessibility/AccessibilityButtonFragment.java
@@ -17,7 +17,6 @@
 package com.android.settings.accessibility;
 
 import android.app.settings.SettingsEnums;
-import android.content.Context;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
@@ -36,11 +35,6 @@
     }
 
     @Override
-    public void onAttach(Context context) {
-        super.onAttach(context);
-    }
-
-    @Override
     protected String getLogTag() {
         return TAG;
     }
diff --git a/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceController.java
index e9ed19a..ed7cb27 100644
--- a/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceController.java
+++ b/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceController.java
@@ -43,7 +43,7 @@
     @Override
     public int getAvailabilityStatus() {
         return AccessibilityUtil.isGestureNavigateEnabled(mContext)
-                ? DISABLED_DEPENDENT_SETTING : AVAILABLE;
+                ? CONDITIONALLY_UNAVAILABLE : AVAILABLE;
     }
 
     @Override
diff --git a/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceController.java
new file mode 100644
index 0000000..ef67428
--- /dev/null
+++ b/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+
+import com.android.settings.R;
+
+/**
+ * Preference controller for accessibility control timeout footer.
+ */
+public class AccessibilityControlTimeoutFooterPreferenceController extends
+        AccessibilityFooterPreferenceController {
+
+    public AccessibilityControlTimeoutFooterPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    protected String getLabelName() {
+        return mContext.getString(R.string.accessibility_setting_item_control_timeout_title);
+    }
+}
diff --git a/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java b/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
index 26c2313..803550b 100644
--- a/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
+++ b/src/com/android/settings/accessibility/AccessibilityEditDialogUtils.java
@@ -118,16 +118,16 @@
      * Method to show the magnification edit shortcut dialog in Magnification.
      *
      * @param context A valid context
-     * @param dialogTitle The title of magnify edit shortcut dialog
      * @param positiveBtnListener The positive button listener
      * @return A magnification edit shortcut dialog in Magnification
      */
     public static Dialog createMagnificationSwitchShortcutDialog(Context context,
-            CharSequence dialogTitle, CustomButtonsClickListener positiveBtnListener) {
+            CustomButtonsClickListener positiveBtnListener) {
         final View contentView = createSwitchShortcutDialogContentView(context);
         final AlertDialog alertDialog = new AlertDialog.Builder(context)
                 .setView(contentView)
-                .setTitle(dialogTitle)
+                .setTitle(context.getString(
+                        R.string.accessibility_magnification_switch_shortcut_title))
                 .create();
         setCustomButtonsClickListener(alertDialog, contentView,
                 positiveBtnListener, /* negativeBtnListener= */ null);
diff --git a/src/com/android/settings/accessibility/AccessibilityFooterPreference.java b/src/com/android/settings/accessibility/AccessibilityFooterPreference.java
new file mode 100644
index 0000000..899ffa5
--- /dev/null
+++ b/src/com/android/settings/accessibility/AccessibilityFooterPreference.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+import android.text.TextUtils;
+import android.text.method.LinkMovementMethod;
+import android.util.AttributeSet;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.R;
+import com.android.settingslib.widget.FooterPreference;
+
+/**
+ * A custom preference acting as footer of a page. It has a field for icon and text. It is added
+ * to screen as the last preference and groups of icon and text content in accessibility-focusable
+ * {@link android.view.accessibility.AccessibilityNodeInfo} for TalkBack to use.
+ */
+public final class AccessibilityFooterPreference extends FooterPreference {
+
+    private CharSequence mIconContentDescription;
+    private boolean mLinkEnabled;
+
+    public AccessibilityFooterPreference(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    public AccessibilityFooterPreference(Context context) {
+        super(context);
+    }
+
+    @Override
+    public void onBindViewHolder(PreferenceViewHolder holder) {
+        super.onBindViewHolder(holder);
+
+        final TextView title = holder.itemView.findViewById(android.R.id.title);
+        if (mLinkEnabled) {
+            // When a TextView has a movement method, it will set the view to clickable. This makes
+            // View.onTouchEvent always return true and consumes the touch event, essentially
+            // nullifying any return values of MovementMethod.onTouchEvent.
+            // To still allow propagating touch events to the parent when this view doesn't have
+            // links, we only set the movement method here if the text contains links.
+            title.setMovementMethod(LinkMovementMethod.getInstance());
+        } else {
+            title.setMovementMethod(/* movement= */ null);
+        }
+
+        final LinearLayout infoFrame = holder.itemView.findViewById(R.id.icon_frame);
+        if (!TextUtils.isEmpty(mIconContentDescription)) {
+            // Groups related content.
+            infoFrame.setContentDescription(mIconContentDescription);
+            title.setFocusable(false);
+        } else {
+            infoFrame.setContentDescription(null);
+            title.setFocusable(true);
+        }
+    }
+
+    /**
+     * Sets the content description of the icon.
+     */
+    public void setIconContentDescription(CharSequence iconContentDescription) {
+        if (!TextUtils.equals(iconContentDescription, mIconContentDescription)) {
+            mIconContentDescription = iconContentDescription;
+            notifyChanged();
+        }
+    }
+
+    /**
+     * Gets the content description of the icon.
+     */
+    public CharSequence getIconContentDescription() {
+        return mIconContentDescription;
+    }
+
+    /**
+     * Sets the title field supports movement method.
+     */
+    public void setLinkEnabled(boolean enabled) {
+        if (mLinkEnabled != enabled) {
+            mLinkEnabled = enabled;
+            notifyChanged();
+        }
+    }
+
+    /**
+     * Returns true if the title field supports movement method.
+     */
+    public boolean isLinkEnabled() {
+        return mLinkEnabled;
+    }
+}
diff --git a/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java b/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java
new file mode 100644
index 0000000..df01e3b
--- /dev/null
+++ b/src/com/android/settings/accessibility/AccessibilityFooterPreferenceController.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+/**
+ * Base class for accessibility preference footer.
+ */
+public abstract class AccessibilityFooterPreferenceController extends BasePreferenceController {
+
+    public AccessibilityFooterPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+
+        final AccessibilityFooterPreference footerPreference =
+                screen.findPreference(getPreferenceKey());
+        updateFooterPreferences(footerPreference);
+    }
+
+
+    /** Returns the accessibility feature name. */
+    protected abstract String getLabelName();
+
+    private void updateFooterPreferences(AccessibilityFooterPreference footerPreference) {
+        final String iconContentDescription = mContext.getString(
+                R.string.accessibility_introduction_title, getLabelName());
+        footerPreference.setIconContentDescription(iconContentDescription);
+    }
+}
diff --git a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
index d780ac5..7eceb7d 100644
--- a/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
+++ b/src/com/android/settings/accessibility/CaptionAppearanceFragment.java
@@ -33,8 +33,8 @@
 
 import com.android.internal.widget.SubtitleView;
 import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.accessibility.ListDialogPreference.OnValueChangedListener;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.accessibility.AccessibilityUtils;
 import com.android.settingslib.search.SearchIndexable;
@@ -46,8 +46,10 @@
 
 /** Settings fragment containing font style of captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionAppearanceFragment extends SettingsPreferenceFragment
+public class CaptionAppearanceFragment extends DashboardFragment
         implements OnPreferenceChangeListener, OnValueChangedListener {
+
+    private static final String TAG = "CaptionAppearanceFragment";
     private static final String PREF_CAPTION_PREVIEW = "caption_preview";
     private static final String PREF_BACKGROUND_COLOR = "captioning_background_color";
     private static final String PREF_BACKGROUND_OPACITY = "captioning_background_opacity";
@@ -107,12 +109,11 @@
     }
 
     @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+        super.onCreatePreferences(savedInstanceState, rootKey);
 
         mCaptioningManager = (CaptioningManager) getSystemService(Context.CAPTIONING_SERVICE);
 
-        addPreferencesFromResource(R.xml.captioning_appearance);
         initializeAllPreferences();
         updateAllPreferences();
         refreshShowingCustom();
@@ -120,6 +121,16 @@
         refreshPreviewText();
     }
 
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.captioning_appearance;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
     private void refreshPreviewText() {
         final Context context = getActivity();
         if (context == null) {
diff --git a/src/com/android/settings/accessibility/CaptionFooterPreferenceController.java b/src/com/android/settings/accessibility/CaptionFooterPreferenceController.java
new file mode 100644
index 0000000..7ca1d82
--- /dev/null
+++ b/src/com/android/settings/accessibility/CaptionFooterPreferenceController.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+
+import com.android.settings.R;
+
+/**
+ * Preference controller for caption footer.
+ */
+public class CaptionFooterPreferenceController extends AccessibilityFooterPreferenceController {
+
+    public CaptionFooterPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    protected String getLabelName() {
+        return mContext.getString(R.string.accessibility_captioning_title);
+    }
+}
diff --git a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
index 8ac82e5..6aa69fa 100644
--- a/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
+++ b/src/com/android/settings/accessibility/CaptionMoreOptionsFragment.java
@@ -26,18 +26,19 @@
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
 
 /** Settings fragment containing more options of captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionMoreOptionsFragment extends SettingsPreferenceFragment
+public class CaptionMoreOptionsFragment extends DashboardFragment
         implements Preference.OnPreferenceChangeListener {
+
+    private static final String TAG = "CaptionMoreOptionsFragment";
     private static final String PREF_LOCALE = "captioning_locale";
 
     private CaptioningManager mCaptioningManager;
-
     private LocalePreference mLocale;
 
     @Override
@@ -46,17 +47,26 @@
     }
 
     @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+        super.onCreatePreferences(savedInstanceState, rootKey);
 
         mCaptioningManager = (CaptioningManager) getSystemService(Context.CAPTIONING_SERVICE);
 
-        addPreferencesFromResource(R.xml.captioning_more_options);
         initializeAllPreferences();
         updateAllPreferences();
         installUpdateListeners();
     }
 
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.captioning_more_options;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
     private void initializeAllPreferences() {
         mLocale = (LocalePreference) findPreference(PREF_LOCALE);
     }
diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
index 0145828..bcdba11 100644
--- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
+++ b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
@@ -28,7 +28,7 @@
 import androidx.preference.Preference.OnPreferenceChangeListener;
 
 import com.android.settings.R;
-import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.search.SearchIndexable;
@@ -41,8 +41,10 @@
 
 /** Settings fragment containing captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class CaptionPropertiesFragment extends SettingsPreferenceFragment
+public class CaptionPropertiesFragment extends DashboardFragment
         implements OnPreferenceChangeListener, OnMainSwitchChangeListener {
+
+    private static final String TAG = "CaptionPropertiesFragment";
     private static final String PREF_SWITCH = "captioning_preference_switch";
     private static final String PREF_TEXT = "captioning_caption_appearance";
     private static final String PREF_MORE = "captioning_more_options";
@@ -62,12 +64,11 @@
     }
 
     @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
+    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
+        super.onCreatePreferences(savedInstanceState, rootKey);
 
         mCaptioningManager = (CaptioningManager) getSystemService(Context.CAPTIONING_SERVICE);
 
-        addPreferencesFromResource(R.xml.captioning_settings);
         initializeAllPreferences();
         installUpdateListeners();
         initFontSizeValuesArray();
@@ -79,6 +80,16 @@
         updateAllPreferences();
     }
 
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.captioning_settings;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
     private void initializeAllPreferences() {
         mSwitch = (SettingsMainSwitchPreference) findPreference(PREF_SWITCH);
         mTextAppearance = (Preference) findPreference(PREF_TEXT);
diff --git a/src/com/android/settings/accessibility/MagnificationModePreferenceController.java b/src/com/android/settings/accessibility/MagnificationModePreferenceController.java
index 67b68cc..ef85834 100644
--- a/src/com/android/settings/accessibility/MagnificationModePreferenceController.java
+++ b/src/com/android/settings/accessibility/MagnificationModePreferenceController.java
@@ -47,6 +47,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnCreate;
+import com.android.settingslib.core.lifecycle.events.OnResume;
 import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
 import java.util.ArrayList;
@@ -55,8 +56,9 @@
 
 /** Controller that shows the magnification area mode summary and the preference click behavior. */
 public class MagnificationModePreferenceController extends BasePreferenceController implements
-        DialogCreatable, LifecycleObserver, OnCreate, OnSaveInstanceState {
+        DialogCreatable, LifecycleObserver, OnCreate, OnResume, OnSaveInstanceState {
 
+    static final String PREF_KEY = "screen_magnification_mode";
     private static final int DIALOG_ID_BASE = 10;
     @VisibleForTesting
     static final int DIALOG_MAGNIFICATION_MODE = DIALOG_ID_BASE + 1;
@@ -68,7 +70,7 @@
     private static final String TAG = "MagnificationModePreferenceController";
     private static final char COMPONENT_NAME_SEPARATOR = ':';
 
-    private MagnificationSettingsFragment mParentFragment;
+    private DialogHelper mDialogHelper;
     // The magnification mode in the dialog.
     private int mMode = MagnificationMode.NONE;
     private Preference mModePreference;
@@ -121,7 +123,7 @@
         mModePreference = screen.findPreference(getPreferenceKey());
         mModePreference.setOnPreferenceClickListener(preference -> {
             mMode = MagnificationCapabilities.getCapabilities(mContext);
-            mParentFragment.showDialog(DIALOG_MAGNIFICATION_MODE);
+            mDialogHelper.showDialog(DIALOG_MAGNIFICATION_MODE);
             return true;
         });
     }
@@ -131,8 +133,12 @@
         outState.putInt(EXTRA_MODE, mMode);
     }
 
-    public void setParentFragment(MagnificationSettingsFragment parentFragment) {
-        mParentFragment = parentFragment;
+    /**
+     * Sets {@link DialogHelper} used to show the dialog.
+     */
+    public void setDialogHelper(DialogHelper dialogHelper) {
+        mDialogHelper = dialogHelper;
+        mDialogHelper.setDialogDelegate(this);
     }
 
     @Override
@@ -207,7 +213,7 @@
         }
         mMode = modeInfo.mMagnificationMode;
         if (isTripleTapEnabled(mContext) && mMode != MagnificationMode.FULLSCREEN) {
-            mParentFragment.showDialog(DIALOG_MAGNIFICATION_SWITCH_SHORTCUT);
+            mDialogHelper.showDialog(DIALOG_MAGNIFICATION_SWITCH_SHORTCUT);
         }
     }
 
@@ -229,9 +235,7 @@
     }
 
     private Dialog createMagnificationShortCutConfirmDialog() {
-        final String title = mContext.getString(
-                R.string.accessibility_magnification_switch_shortcut_title);
-        return AccessibilityEditDialogUtils.createMagnificationSwitchShortcutDialog(mContext, title,
+        return AccessibilityEditDialogUtils.createMagnificationSwitchShortcutDialog(mContext,
                 this::onSwitchShortcutDialogButtonClicked);
     }
 
@@ -267,6 +271,21 @@
                 joiner.toString());
     }
 
+    // TODO(b/186731461): Remove it when this controller is used in DashBoardFragment only.
+    @Override
+    public void onResume() {
+        updateState(mModePreference);
+    }
+
+
+    /**
+     * An interface to help the delegate to show the dialog. It will be injected to the delegate.
+     */
+    interface DialogHelper extends DialogCreatable {
+        void showDialog(int dialogId);
+        void setDialogDelegate(DialogCreatable delegate);
+    }
+
     @VisibleForTesting
     static class MagnificationModeInfo extends ItemInfoArrayAdapter.ItemInfo {
         @MagnificationMode
diff --git a/src/com/android/settings/accessibility/MagnificationSettingsFragment.java b/src/com/android/settings/accessibility/MagnificationSettingsFragment.java
index 0af40fd..a898076 100644
--- a/src/com/android/settings/accessibility/MagnificationSettingsFragment.java
+++ b/src/com/android/settings/accessibility/MagnificationSettingsFragment.java
@@ -20,6 +20,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 
+import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
@@ -27,11 +28,13 @@
 
 /** Settings page for magnification. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
-public class MagnificationSettingsFragment extends DashboardFragment {
+public class MagnificationSettingsFragment extends DashboardFragment implements
+        MagnificationModePreferenceController.DialogHelper {
 
     private static final String TAG = "MagnificationSettingsFragment";
 
-    private MagnificationModePreferenceController mMagnificationModePreferenceController;
+    private DialogCreatable mDialogDelegate;
+
 
     @Override
     public int getMetricsCategory() {
@@ -41,19 +44,23 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        mMagnificationModePreferenceController = use(MagnificationModePreferenceController.class);
-        mMagnificationModePreferenceController.setParentFragment(this);
+        use(MagnificationModePreferenceController.class).setDialogHelper(this);
     }
 
     @Override
-    protected void showDialog(int dialogId) {
+    public void showDialog(int dialogId) {
         super.showDialog(dialogId);
     }
 
     @Override
+    public void setDialogDelegate(DialogCreatable delegate) {
+        mDialogDelegate = delegate;
+    }
+
+    @Override
     public int getDialogMetricsCategory(int dialogId) {
-        if (mMagnificationModePreferenceController != null) {
-            return mMagnificationModePreferenceController.getDialogMetricsCategory(dialogId);
+        if (mDialogDelegate != null) {
+            return mDialogDelegate.getDialogMetricsCategory(dialogId);
         }
         return 0;
     }
@@ -70,8 +77,8 @@
 
     @Override
     public Dialog onCreateDialog(int dialogId) {
-        if (mMagnificationModePreferenceController != null) {
-            final Dialog dialog = mMagnificationModePreferenceController.onCreateDialog(dialogId);
+        if (mDialogDelegate != null) {
+            final Dialog dialog = mDialogDelegate.onCreateDialog(dialogId);
             if (dialog != null) {
                 return dialog;
             }
diff --git a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
index a29567e..62051c1 100644
--- a/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
+++ b/src/com/android/settings/accessibility/ReduceBrightColorsPersistencePreferenceController.java
@@ -20,6 +20,8 @@
 import android.hardware.display.ColorDisplayManager;
 import android.provider.Settings;
 
+import androidx.preference.Preference;
+
 import com.android.settings.core.TogglePreferenceController;
 
 /** PreferenceController for persisting feature activation state after a restart. */
@@ -54,4 +56,10 @@
         return Settings.Secure.putInt(mContext.getContentResolver(),
                 Settings.Secure.REDUCE_BRIGHT_COLORS_PERSIST_ACROSS_REBOOTS, (isChecked ? 1 : 0));
     }
+
+    @Override
+    public final void updateState(Preference preference) {
+        super.updateState(preference);
+        preference.setEnabled(mColorDisplayManager.isReduceBrightColorsActivated());
+    }
 }
diff --git a/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceController.java b/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceController.java
new file mode 100644
index 0000000..014fc36
--- /dev/null
+++ b/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceController.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import android.content.Context;
+
+import com.android.settings.R;
+
+/**
+ * Preference controller for accessibility autoclick footer.
+ */
+public class ToggleAutoclickFooterPreferenceController extends
+        AccessibilityFooterPreferenceController {
+
+    public ToggleAutoclickFooterPreferenceController(Context context, String key) {
+        super(context, key);
+    }
+
+    @Override
+    protected String getLabelName() {
+        return mContext.getString(R.string.accessibility_autoclick_preference_title);
+    }
+}
diff --git a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
index c12884b..7ff5e9f 100644
--- a/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleDaltonizerPreferenceFragment.java
@@ -107,7 +107,7 @@
         lists.add(KEY_PREVIEW);
         lists.add(KEY_CATEGORY_MODE);
         lists.add(KEY_GENERAL_CATEGORY);
-        lists.add(KEY_INTRODUCTION_CATEGORY);
+        lists.add(KEY_HTML_DESCRIPTION_PREFERENCE);
         return lists;
     }
 
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index be6b141..062bb73 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -54,7 +54,6 @@
 import com.android.settings.widget.SettingsMainSwitchBar;
 import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.accessibility.AccessibilityUtils;
-import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import java.lang.annotation.Retention;
@@ -87,7 +86,7 @@
     private static final String DRAWABLE_FOLDER = "drawable";
     protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service";
     protected static final String KEY_GENERAL_CATEGORY = "general_categories";
-    protected static final String KEY_INTRODUCTION_CATEGORY = "introduction_categories";
+    protected static final String KEY_HTML_DESCRIPTION_PREFERENCE = "html_description";
     private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
     protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
     protected static final String KEY_ANIMATED_IMAGE = "animated_image";
@@ -383,7 +382,7 @@
         lists.add(KEY_USE_SERVICE_PREFERENCE);
         lists.add(KEY_ANIMATED_IMAGE);
         lists.add(KEY_GENERAL_CATEGORY);
-        lists.add(KEY_INTRODUCTION_CATEGORY);
+        lists.add(KEY_HTML_DESCRIPTION_PREFERENCE);
         return lists;
     }
 
@@ -495,44 +494,57 @@
         generalCategory.addPreference(mSettingsPreference);
     }
 
-    private void initIntroductionCategory() {
-        final PreferenceCategory introductionCategory = new PreferenceCategory(getPrefContext());
-        final CharSequence title =
-                getString(R.string.accessibility_introduction_title, mPackageName);
-        introductionCategory.setKey(KEY_INTRODUCTION_CATEGORY);
-        introductionCategory.setTitle(title);
-
-        getPreferenceScreen().addPreference(introductionCategory);
-    }
-
     private void initHtmlTextPreference() {
         if (TextUtils.isEmpty(mHtmlDescription)) {
             return;
         }
+        final PreferenceScreen screen = getPreferenceScreen();
+        final CharSequence htmlDescription = Html.fromHtml(mHtmlDescription.toString(),
+                Html.FROM_HTML_MODE_COMPACT, mImageGetter, /* tagHandler= */ null);
+        final String iconContentDescription =
+                getString(R.string.accessibility_introduction_title, mPackageName);
 
-        initIntroductionCategory();
-
-        final HtmlTextPreference htmlTextPreference = new HtmlTextPreference(getPrefContext());
-        htmlTextPreference.setSummary(mHtmlDescription);
-        htmlTextPreference.setImageGetter(mImageGetter);
-        htmlTextPreference.setSelectable(false);
-
-        final PreferenceCategory introductionCategory = findPreference(KEY_INTRODUCTION_CATEGORY);
-        introductionCategory.addPreference(htmlTextPreference);
+        final AccessibilityFooterPreference htmlFooterPreference =
+                new AccessibilityFooterPreference(screen.getContext());
+        htmlFooterPreference.setKey(KEY_HTML_DESCRIPTION_PREFERENCE);
+        htmlFooterPreference.setSummary(htmlDescription);
+        htmlFooterPreference.setLinkEnabled(false);
+        htmlFooterPreference.setIconContentDescription(iconContentDescription);
+        screen.addPreference(htmlFooterPreference);
     }
 
     private void initFooterPreference() {
         if (!TextUtils.isEmpty(mDescription)) {
-            createFooterPreference(mDescription);
+            createFooterPreference(getPreferenceScreen(), mDescription,
+                    getString(R.string.accessibility_introduction_title, mPackageName));
         }
 
         if (TextUtils.isEmpty(mHtmlDescription) && TextUtils.isEmpty(mDescription)) {
             final CharSequence defaultDescription =
                     getText(R.string.accessibility_service_default_description);
-            createFooterPreference(defaultDescription);
+            createFooterPreference(getPreferenceScreen(), defaultDescription,
+                    getString(R.string.accessibility_introduction_title, mPackageName));
         }
     }
 
+
+    /**
+     * Creates {@link AccessibilityFooterPreference} and append into {@link PreferenceScreen}
+     *
+     * @param screen The preference screen to add the footer preference
+     * @param summary The summary of the preference summary.
+     * @param iconContentDescription The content description of icon in the footer.
+     */
+    @VisibleForTesting
+    void createFooterPreference(PreferenceScreen screen, CharSequence summary,
+            String iconContentDescription) {
+        final AccessibilityFooterPreference footerPreference =
+                new AccessibilityFooterPreference(screen.getContext());
+        footerPreference.setSummary(summary);
+        footerPreference.setIconContentDescription(iconContentDescription);
+        screen.addPreference(footerPreference);
+    }
+
     @VisibleForTesting
     void setupEditShortcutDialog(Dialog dialog) {
         final View dialogSoftwareView = dialog.findViewById(R.id.software_shortcut);
@@ -707,12 +719,6 @@
         showDialog(DialogEnums.EDIT_SHORTCUT);
     }
 
-    private void createFooterPreference(CharSequence title) {
-        final PreferenceScreen preferenceScreen = getPreferenceScreen();
-        preferenceScreen.addPreference(new FooterPreference.Builder(getActivity()).setTitle(
-                title).build());
-    }
-
     /**
      * Setups a configurable default if the setting has never been set.
      */
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 738d284..7c03ba9 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -42,6 +42,7 @@
 import androidx.preference.PreferenceCategory;
 
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType;
 
@@ -55,7 +56,8 @@
  * and does not have toggle bar to turn on service to use.
  */
 public class ToggleScreenMagnificationPreferenceFragment extends
-        ToggleFeaturePreferenceFragment {
+        ToggleFeaturePreferenceFragment implements
+        MagnificationModePreferenceController.DialogHelper {
     // TODO(b/147021230): Move duplicated functions with android/internal/accessibility into util.
     private TouchExplorationStateChangeListener mTouchExplorationStateChangeListener;
 
@@ -67,6 +69,9 @@
     private static final TextUtils.SimpleStringSplitter sStringColonSplitter =
             new TextUtils.SimpleStringSplitter(COMPONENT_NAME_SEPARATOR);
 
+    private MagnificationModePreferenceController mModePreferenceController;
+    private DialogCreatable mDialogDelegate;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -108,6 +113,12 @@
 
     @Override
     public Dialog onCreateDialog(int dialogId) {
+        if (mDialogDelegate != null) {
+            final Dialog dialog = mDialogDelegate.onCreateDialog(dialogId);
+            if (dialog != null) {
+                return dialog;
+            }
+        }
         final AlertDialog dialog;
         switch (dialogId) {
             case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
@@ -128,20 +139,35 @@
 
     @Override
     protected void initSettingsPreference() {
+
         // If the device doesn't support magnification area, it should hide the settings preference.
         if (!getContext().getResources().getBoolean(
                 com.android.internal.R.bool.config_magnification_area)) {
             return;
         }
         mSettingsPreference = new Preference(getPrefContext());
-        mSettingsPreference.setTitle(R.string.accessibility_menu_item_settings);
-        // TODO(b/177371954): "magnification area" should be brought up to the highest level of the
-        // settings UI so that it appears below "shortcut" to replace "settings.
-        mSettingsPreference.setFragment(MagnificationSettingsFragment.class.getName());
+        mSettingsPreference.setTitle(R.string.accessibility_magnification_mode_title);
+        mSettingsPreference.setKey(MagnificationModePreferenceController.PREF_KEY);
         mSettingsPreference.setPersistent(false);
 
         final PreferenceCategory generalCategory = findPreference(KEY_GENERAL_CATEGORY);
         generalCategory.addPreference(mSettingsPreference);
+
+        mModePreferenceController = new MagnificationModePreferenceController(getContext(),
+                MagnificationModePreferenceController.PREF_KEY);
+        mModePreferenceController.setDialogHelper(this);
+        getSettingsLifecycle().addObserver(mModePreferenceController);
+        mModePreferenceController.displayPreference(getPreferenceScreen());
+    }
+
+    @Override
+    public void showDialog(int dialogId) {
+        super.showDialog(dialogId);
+    }
+
+    @Override
+    public void setDialogDelegate(DialogCreatable delegate) {
+        mDialogDelegate = delegate;
     }
 
     @Override
@@ -278,6 +304,13 @@
 
     @Override
     public int getDialogMetricsCategory(int dialogId) {
+        if (mDialogDelegate != null) {
+            final int category = mDialogDelegate.getDialogMetricsCategory(dialogId);
+            if (category != 0) {
+                return category;
+            }
+        }
+
         switch (dialogId) {
             case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
                 return SettingsEnums.DIALOG_TOGGLE_SCREEN_MAGNIFICATION_GESTURE_NAVIGATION;
diff --git a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
index a3ea478..f321d72 100644
--- a/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppDataUsagePreferenceController.java
@@ -139,7 +139,8 @@
             return NetworkTemplate.buildTemplateMobileWildcard();
         }
         if (DataUsageUtils.hasWifiRadio(context)) {
-            return NetworkTemplate.buildTemplateWifiWildcard();
+            return NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                    null /* subscriberId */);
         }
         return NetworkTemplate.buildTemplateEthernet();
     }
diff --git a/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProvider.java b/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProvider.java
index 20938d1..4de1c2c 100644
--- a/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProvider.java
+++ b/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProvider.java
@@ -34,4 +34,9 @@
      * Sets the package name
      */
     void setPackageName(String packageName);
+
+    /**
+     * gets the summary name
+     */
+    String getSummary(Context context);
 }
diff --git a/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProviderImpl.java b/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProviderImpl.java
index 3e5ef78..55b9bf0 100644
--- a/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProviderImpl.java
+++ b/src/com/android/settings/applications/appinfo/ExtraAppInfoFeatureProviderImpl.java
@@ -37,4 +37,9 @@
     public void setPackageName(String packageName) {
         return;
     }
+
+    @Override
+    public String getSummary(Context context) {
+        return "";
+    }
 }
diff --git a/src/com/android/settings/applications/appinfo/ExtraAppInfoPreferenceController.java b/src/com/android/settings/applications/appinfo/ExtraAppInfoPreferenceController.java
index 0c1b3e3..0d72b74 100644
--- a/src/com/android/settings/applications/appinfo/ExtraAppInfoPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/ExtraAppInfoPreferenceController.java
@@ -50,6 +50,11 @@
         return super.handlePreferenceTreeClick(preference);
     }
 
+    @Override
+    public CharSequence getSummary() {
+        return mExtraAppInfoFeatureProvider.getSummary(mContext);
+    }
+
     /**
      * Set the local package name
      */
diff --git a/src/com/android/settings/applications/manageapplications/FileViewHolderController.java b/src/com/android/settings/applications/manageapplications/FileViewHolderController.java
deleted file mode 100644
index ded0286..0000000
--- a/src/com/android/settings/applications/manageapplications/FileViewHolderController.java
+++ /dev/null
@@ -1,49 +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.applications.manageapplications;
-
-import androidx.fragment.app.Fragment;
-
-/**
- * FileViewHolderController handles adapting the AppViewHolder to work as a general purpose
- * storage categorization preference in the ManageApplications view.
- */
-public interface FileViewHolderController {
-    /**
-     * Begins a synchronous query for statistics for the files.
-     */
-    void queryStats();
-
-    /**
-     * Returns if the preference should be shown.
-     */
-    boolean shouldShow();
-
-    /**
-     * Initializes the view within an AppViewHolder.
-     *
-     * @param holder The holder to use to initialize.
-     */
-    void setupView(ApplicationViewHolder holder);
-
-    /**
-     * Handles the behavior when the view is clicked.
-     *
-     * @param fragment Fragment where the click originated.
-     */
-    void onClick(Fragment fragment);
-}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index a92f539..7469b71 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -83,7 +83,6 @@
 import com.android.settings.Settings.GamesStorageActivity;
 import com.android.settings.Settings.HighPowerApplicationsActivity;
 import com.android.settings.Settings.ManageExternalSourcesActivity;
-import com.android.settings.Settings.MoviesStorageActivity;
 import com.android.settings.Settings.OverlaySettingsActivity;
 import com.android.settings.Settings.StorageUseActivity;
 import com.android.settings.Settings.UsageAccessSettingsActivity;
@@ -130,7 +129,6 @@
 import com.android.settingslib.applications.ApplicationsState.AppFilter;
 import com.android.settingslib.applications.ApplicationsState.CompoundFilter;
 import com.android.settingslib.applications.ApplicationsState.VolumeFilter;
-import com.android.settingslib.applications.StorageStatsSource;
 import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
 import com.android.settingslib.utils.ThreadUtils;
 import com.android.settingslib.widget.settingsspinner.SettingsSpinnerAdapter;
@@ -182,9 +180,7 @@
 
     // Storage types. Used to determine what the extra item in the list of preferences is.
     public static final int STORAGE_TYPE_DEFAULT = 0; // Show all apps that are not categorized.
-    public static final int STORAGE_TYPE_MUSIC = 1;
-    public static final int STORAGE_TYPE_LEGACY = 2; // Show apps even if they can be categorized.
-    public static final int STORAGE_TYPE_PHOTOS_VIDEOS = 3;
+    public static final int STORAGE_TYPE_LEGACY = 1;  // Show apps even if they can be categorized.
 
     /**
      * Intents with action {@code android.settings.MANAGE_APP_OVERLAY_PERMISSION}
@@ -230,12 +226,10 @@
     public static final int LIST_TYPE_WRITE_SETTINGS = 7;
     public static final int LIST_TYPE_MANAGE_SOURCES = 8;
     public static final int LIST_TYPE_GAMES = 9;
-    public static final int LIST_TYPE_MOVIES = 10;
-    public static final int LIST_TYPE_PHOTOGRAPHY = 11;
-    public static final int LIST_TYPE_WIFI_ACCESS = 13;
-    public static final int LIST_MANAGE_EXTERNAL_STORAGE = 14;
-    public static final int LIST_TYPE_ALARMS_AND_REMINDERS = 15;
-    public static final int LIST_TYPE_MEDIA_MANAGEMENT_APPS = 16;
+    public static final int LIST_TYPE_WIFI_ACCESS = 10;
+    public static final int LIST_MANAGE_EXTERNAL_STORAGE = 11;
+    public static final int LIST_TYPE_ALARMS_AND_REMINDERS = 12;
+    public static final int LIST_TYPE_MEDIA_MANAGEMENT_APPS = 13;
 
     // List types that should show instant apps.
     public static final Set<Integer> LIST_TYPES_WITH_INSTANT = new ArraySet<>(Arrays.asList(
@@ -314,13 +308,6 @@
         } else if (className.equals(GamesStorageActivity.class.getName())) {
             mListType = LIST_TYPE_GAMES;
             mSortOrder = R.id.sort_order_size;
-        } else if (className.equals(MoviesStorageActivity.class.getName())) {
-            mListType = LIST_TYPE_MOVIES;
-            mSortOrder = R.id.sort_order_size;
-        } else if (className.equals(Settings.PhotosStorageActivity.class.getName())) {
-            mListType = LIST_TYPE_PHOTOGRAPHY;
-            mSortOrder = R.id.sort_order_size;
-            mStorageType = args.getInt(EXTRA_STORAGE_TYPE, STORAGE_TYPE_DEFAULT);
         } else if (className.equals(Settings.ChangeWifiStateActivity.class.getName())) {
             mListType = LIST_TYPE_WIFI_ACCESS;
             screenTitle = R.string.change_wifi_state_title;
@@ -429,24 +416,6 @@
                 mApplications.mHasReceivedBridgeCallback =
                         savedInstanceState.getBoolean(EXTRA_HAS_BRIDGE, false);
             }
-            int userId = mIsWorkOnly ? mWorkUserId : UserHandle.myUserId();
-            if (mStorageType == STORAGE_TYPE_MUSIC) {
-                Context context = getContext();
-                mApplications.setExtraViewController(
-                        new MusicViewHolderController(
-                                context,
-                                new StorageStatsSource(context),
-                                mVolumeUuid,
-                                UserHandle.of(userId)));
-            } else if (mStorageType == STORAGE_TYPE_PHOTOS_VIDEOS) {
-                Context context = getContext();
-                mApplications.setExtraViewController(
-                        new PhotosViewHolderController(
-                                context,
-                                new StorageStatsSource(context),
-                                mVolumeUuid,
-                                UserHandle.of(userId)));
-            }
             mRecyclerView = mListContainer.findViewById(R.id.apps_list);
             mRecyclerView.setItemAnimator(null);
             mRecyclerView.setLayoutManager(new LinearLayoutManager(
@@ -508,19 +477,13 @@
     static AppFilter getCompositeFilter(int listType, int storageType, String volumeUuid) {
         AppFilter filter = new VolumeFilter(volumeUuid);
         if (listType == LIST_TYPE_STORAGE) {
-            if (storageType == STORAGE_TYPE_MUSIC) {
-                filter = new CompoundFilter(ApplicationsState.FILTER_AUDIO, filter);
-            } else if (storageType == STORAGE_TYPE_DEFAULT) {
-                filter = new CompoundFilter(ApplicationsState.FILTER_OTHER_APPS, filter);
+            if (storageType == STORAGE_TYPE_DEFAULT) {
+                filter = new CompoundFilter(ApplicationsState.FILTER_APPS_EXCEPT_GAMES, filter);
             }
             return filter;
         }
         if (listType == LIST_TYPE_GAMES) {
             return new CompoundFilter(ApplicationsState.FILTER_GAMES, filter);
-        } else if (listType == LIST_TYPE_MOVIES) {
-            return new CompoundFilter(ApplicationsState.FILTER_MOVIES, filter);
-        } else if (listType == LIST_TYPE_PHOTOGRAPHY) {
-            return new CompoundFilter(ApplicationsState.FILTER_PHOTOS, filter);
         }
         return null;
     }
@@ -533,16 +496,9 @@
             case LIST_TYPE_NOTIFICATION:
                 return SettingsEnums.MANAGE_APPLICATIONS_NOTIFICATIONS;
             case LIST_TYPE_STORAGE:
-                if (mStorageType == STORAGE_TYPE_MUSIC) {
-                    return SettingsEnums.APPLICATIONS_STORAGE_MUSIC;
-                }
                 return SettingsEnums.APPLICATIONS_STORAGE_APPS;
             case LIST_TYPE_GAMES:
                 return SettingsEnums.APPLICATIONS_STORAGE_GAMES;
-            case LIST_TYPE_MOVIES:
-                return SettingsEnums.APPLICATIONS_STORAGE_MOVIES;
-            case LIST_TYPE_PHOTOGRAPHY:
-                return SettingsEnums.APPLICATIONS_STORAGE_PHOTOS;
             case LIST_TYPE_USAGE_ACCESS:
                 return SettingsEnums.USAGE_ACCESS;
             case LIST_TYPE_HIGH_POWER:
@@ -668,12 +624,6 @@
             case LIST_TYPE_GAMES:
                 startAppInfoFragment(AppStorageSettings.class, R.string.game_storage_settings);
                 break;
-            case LIST_TYPE_MOVIES:
-                startAppInfoFragment(AppStorageSettings.class, R.string.storage_movies_tv);
-                break;
-            case LIST_TYPE_PHOTOGRAPHY:
-                startAppInfoFragment(AppStorageSettings.class, R.string.storage_photos_videos);
-                break;
             case LIST_TYPE_WIFI_ACCESS:
                 startAppInfoFragment(ChangeWifiStateDetails.class,
                         R.string.change_wifi_state_title);
@@ -760,10 +710,6 @@
                 return R.string.help_uri_apps_manage_sources;
             case LIST_TYPE_GAMES:
                 return R.string.help_uri_apps_overlay;
-            case LIST_TYPE_MOVIES:
-                return R.string.help_uri_apps_movies;
-            case LIST_TYPE_PHOTOGRAPHY:
-                return R.string.help_uri_apps_photography;
             case LIST_TYPE_WIFI_ACCESS:
                 return R.string.help_uri_apps_wifi_access;
             case LIST_MANAGE_EXTERNAL_STORAGE:
@@ -856,8 +802,6 @@
             mCurrentPkgName = entry.info.packageName;
             mCurrentUid = entry.info.uid;
             startApplicationDetailsActivity();
-        } else {
-            mApplications.mExtraViewController.onClick(this);
         }
     }
 
@@ -1046,7 +990,6 @@
         private AppFilter mCompositeFilter;
         private boolean mHasReceivedLoadEntries;
         private boolean mHasReceivedBridgeCallback;
-        private FileViewHolderController mExtraViewController;
         private SearchFilter mSearchFilter;
         private PowerAllowlistBackend mBackend;
 
@@ -1146,18 +1089,6 @@
             }
         }
 
-        public void setExtraViewController(FileViewHolderController extraViewController) {
-            mExtraViewController = extraViewController;
-            // Start to query extra view's stats on background, and once done post result to main
-            // thread.
-            ThreadUtils.postOnBackgroundThread(() -> {
-                mExtraViewController.queryStats();
-                ThreadUtils.postOnMainThread(() -> {
-                    onExtraViewCompleted();
-                });
-            });
-        }
-
         public void resume(int sort) {
             if (DEBUG) Log.i(TAG, "Resume!  mResumed=" + mResumed);
             if (!mResumed) {
@@ -1219,10 +1150,7 @@
 
         @Override
         public int getItemViewType(int position) {
-            boolean isLastItem = (getItemCount() - 1) == position;
-            return hasExtraView() && isLastItem
-                    ? VIEW_TYPE_EXTRA_VIEW
-                    : VIEW_TYPE_APP;
+            return VIEW_TYPE_APP;
         }
 
         public void rebuild() {
@@ -1454,20 +1382,12 @@
             }
         }
 
-        public void onExtraViewCompleted() {
-            if (!hasExtraView()) {
-                return;
-            }
-            // Update last item - this is assumed to be the extra view.
-            notifyItemChanged(getItemCount() - 1);
-        }
-
         @Override
         public int getItemCount() {
             if (mEntries == null) {
                 return 0;
             }
-            return mEntries.size() + (hasExtraView() ? 1 : 0);
+            return mEntries.size();
         }
 
         public int getApplicationCount() {
@@ -1499,24 +1419,20 @@
 
         @Override
         public void onBindViewHolder(ApplicationViewHolder holder, int position) {
-            if (mEntries != null && mExtraViewController != null && position == mEntries.size()) {
-                // set up view for extra view controller
-                mExtraViewController.setupView(holder);
-            } else {
-                // Bind the data efficiently with the holder
-                ApplicationsState.AppEntry entry = mEntries.get(position);
-                synchronized (entry) {
-                    holder.setTitle(entry.label);
-                    mState.ensureLabelDescription(entry);
-                    holder.itemView.setContentDescription(entry.labelDescription);
-                    mState.ensureIcon(entry);
-                    holder.setIcon(entry.icon);
-                    updateSummary(holder, entry);
-                    updateSwitch(holder, entry);
-                    holder.updateDisableView(entry.info);
-                }
-                holder.setEnabled(isEnabled(position));
+            // Bind the data efficiently with the holder
+            final ApplicationsState.AppEntry entry = mEntries.get(position);
+            synchronized (entry) {
+                holder.setTitle(entry.label);
+                mState.ensureLabelDescription(entry);
+                holder.itemView.setContentDescription(entry.labelDescription);
+                mState.ensureIcon(entry);
+                holder.setIcon(entry.icon);
+                updateSummary(holder, entry);
+                updateSwitch(holder, entry);
+                holder.updateDisableView(entry.info);
             }
+            holder.setEnabled(isEnabled(position));
+
             holder.itemView.setOnClickListener(mManageApplications);
         }
 
@@ -1589,11 +1505,6 @@
             }
         }
 
-        private boolean hasExtraView() {
-            return mExtraViewController != null
-                    && mExtraViewController.shouldShow();
-        }
-
         public static class OnScrollListener extends RecyclerView.OnScrollListener {
             private int mScrollState = SCROLL_STATE_IDLE;
             private boolean mDelayNotifyDataChange;
diff --git a/src/com/android/settings/applications/manageapplications/MusicViewHolderController.java b/src/com/android/settings/applications/manageapplications/MusicViewHolderController.java
deleted file mode 100644
index 184fd1d..0000000
--- a/src/com/android/settings/applications/manageapplications/MusicViewHolderController.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.manageapplications;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserHandle;
-import android.provider.DocumentsContract;
-import android.text.format.Formatter;
-import android.util.Log;
-
-import androidx.annotation.WorkerThread;
-import androidx.fragment.app.Fragment;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settingslib.applications.StorageStatsSource;
-
-import java.io.IOException;
-
-/**
- * MusicViewHolderController controls an Audio/Music file view in the ManageApplications view.
- */
-public class MusicViewHolderController implements FileViewHolderController {
-    private static final String TAG = "MusicViewHolderCtrl";
-
-    private static final String AUTHORITY_MEDIA = "com.android.providers.media.documents";
-
-    private Context mContext;
-    private StorageStatsSource mSource;
-    private String mVolumeUuid;
-    private long mMusicSize;
-    private UserHandle mUser;
-
-    public MusicViewHolderController(
-            Context context, StorageStatsSource source, String volumeUuid, UserHandle user) {
-        mContext = context;
-        mSource = source;
-        mVolumeUuid = volumeUuid;
-        mUser = user;
-    }
-
-    @Override
-    @WorkerThread
-    public void queryStats() {
-        try {
-            mMusicSize = mSource.getExternalStorageStats(mVolumeUuid, mUser).audioBytes;
-        } catch (IOException e) {
-            mMusicSize = 0;
-            Log.w(TAG, e);
-        }
-    }
-
-    @Override
-    public boolean shouldShow() {
-        return true;
-    }
-
-    @Override
-    public void setupView(ApplicationViewHolder holder) {
-        holder.setIcon(R.drawable.ic_headset_24dp);
-        holder.setTitle(mContext.getText(R.string.audio_files_title));
-        holder.setSummary(Formatter.formatFileSize(mContext, mMusicSize));
-    }
-
-    @Override
-    public void onClick(Fragment fragment) {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setDataAndType(
-                DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "audio_root"),
-                DocumentsContract.Root.MIME_TYPE_ITEM);
-        intent.addCategory(Intent.CATEGORY_DEFAULT);
-        intent.putExtra(Intent.EXTRA_USER_ID, mUser.getIdentifier());
-        Utils.launchIntent(fragment, intent);
-    }
-}
diff --git a/src/com/android/settings/applications/manageapplications/PhotosViewHolderController.java b/src/com/android/settings/applications/manageapplications/PhotosViewHolderController.java
deleted file mode 100644
index 30166c9..0000000
--- a/src/com/android/settings/applications/manageapplications/PhotosViewHolderController.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2016 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.manageapplications;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserHandle;
-import android.text.format.Formatter;
-import android.util.Log;
-
-import androidx.annotation.WorkerThread;
-import androidx.fragment.app.Fragment;
-
-import com.android.settings.R;
-import com.android.settings.Utils;
-import com.android.settingslib.applications.StorageStatsSource;
-
-import java.io.IOException;
-
-/** PhotosViewHolderController controls an Audio/Music file view in the ManageApplications view. */
-public class PhotosViewHolderController implements FileViewHolderController {
-    private static final String TAG = "PhotosViewHolderCtrl";
-
-    private static final String IMAGE_MIME_TYPE = "image/*";
-
-    private Context mContext;
-    private StorageStatsSource mSource;
-    private String mVolumeUuid;
-    private long mFilesSize;
-    private UserHandle mUser;
-
-    public PhotosViewHolderController(
-            Context context, StorageStatsSource source, String volumeUuid, UserHandle user) {
-        mContext = context;
-        mSource = source;
-        mVolumeUuid = volumeUuid;
-        mUser = user;
-    }
-
-    @Override
-    @WorkerThread
-    public void queryStats() {
-        try {
-            StorageStatsSource.ExternalStorageStats stats =
-                    mSource.getExternalStorageStats(mVolumeUuid, mUser);
-            mFilesSize = stats.imageBytes + stats.videoBytes;
-        } catch (IOException e) {
-            mFilesSize = 0;
-            Log.w(TAG, e);
-        }
-    }
-
-    @Override
-    public boolean shouldShow() {
-        return true;
-    }
-
-    @Override
-    public void setupView(ApplicationViewHolder holder) {
-        holder.setIcon(R.drawable.ic_photo_library);
-        holder.setTitle(mContext.getText(R.string.storage_detail_images));
-        holder.setSummary(Formatter.formatFileSize(mContext, mFilesSize));
-    }
-
-    @Override
-    public void onClick(Fragment fragment) {
-        Intent intent = new Intent();
-        intent.setAction(android.content.Intent.ACTION_VIEW);
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT);
-        intent.setType(IMAGE_MIME_TYPE);
-        intent.putExtra(Intent.EXTRA_FROM_STORAGE, true);
-        intent.putExtra(Intent.EXTRA_USER_ID, mUser.getIdentifier());
-        Utils.launchIntent(fragment, intent);
-    }
-}
diff --git a/src/com/android/settings/backup/BackupSettingsHelper.java b/src/com/android/settings/backup/BackupSettingsHelper.java
index cc010f0..1483714 100644
--- a/src/com/android/settings/backup/BackupSettingsHelper.java
+++ b/src/com/android/settings/backup/BackupSettingsHelper.java
@@ -26,14 +26,12 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.text.TextUtils;
-import android.util.FeatureFlagUtils;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
 import com.android.settings.Settings.PrivacySettingsActivity;
-import com.android.settings.core.FeatureFlags;
 
 import java.net.URISyntaxException;
 
@@ -57,9 +55,6 @@
      * Otherwise, show nothing.
      */
     public String getSummary() {
-        if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.SILKY_HOME)) {
-            return null;
-        }
         UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
         if (userManager.getUserProfiles().size() == 1) {
             try {
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 0a2e5fe..eede22a 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -211,8 +211,7 @@
                 case REQUEST_CHOOSE_LOCK:
                     mConfirmingCredentials = false;
                     if (resultCode == ChooseLockPattern.RESULT_FINISHED) {
-                        mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(data);
-                        startMultiBiometricEnroll();
+                        startMultiBiometricEnroll(data);
                     } else {
                         Log.d(TAG, "Unknown result for chooseLock: " + resultCode);
                         setResult(resultCode);
@@ -222,8 +221,7 @@
                 case REQUEST_CONFIRM_LOCK:
                     mConfirmingCredentials = false;
                     if (resultCode == RESULT_OK) {
-                        mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(data);
-                        startMultiBiometricEnroll();
+                        startMultiBiometricEnroll(data);
                     } else {
                         Log.d(TAG, "Unknown result for confirmLock: " + resultCode);
                         finish();
@@ -283,7 +281,8 @@
         }
     }
 
-    private void startMultiBiometricEnroll() {
+    private void startMultiBiometricEnroll(Intent data) {
+        mGkPwHandle = BiometricUtils.getGatekeeperPasswordHandle(data);
         mMultiBiometricEnrollHelper = new MultiBiometricEnrollHelper(this, mUserId,
                 mIsFaceEnrollable, mIsFingerprintEnrollable, mGkPwHandle);
         mMultiBiometricEnrollHelper.startNextStep();
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index e12badf..9de8105 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -33,6 +33,7 @@
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.VerifyCredentialResponse;
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
 import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
@@ -72,8 +73,12 @@
     public static byte[] requestGatekeeperHat(@NonNull Context context, long gkPwHandle, int userId,
             long challenge) {
         final LockPatternUtils utils = new LockPatternUtils(context);
-        return utils.verifyGatekeeperPasswordHandle(gkPwHandle, challenge, userId)
-                .getGatekeeperHAT();
+        final VerifyCredentialResponse response = utils.verifyGatekeeperPasswordHandle(gkPwHandle,
+                challenge, userId);
+        if (!response.isMatched()) {
+            throw new IllegalStateException("Unable to request Gatekeeper HAT");
+        }
+        return response.getGatekeeperHAT();
     }
 
     public static boolean containsGatekeeperPasswordHandle(@Nullable Intent data) {
@@ -190,7 +195,7 @@
                     hardwareAuthToken);
         }
         if (gkPwHandle != null) {
-            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, gkPwHandle);
+            intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, (long) gkPwHandle);
         }
 
         if (activity instanceof BiometricEnrollActivity.InternalActivity) {
diff --git a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
index 0bfe56e..302c9e1 100644
--- a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
@@ -89,6 +89,17 @@
 
     @Override
     public void onBackPressed() {
+        cancelEnrollment();
+        super.onBackPressed();
+    }
+
+    protected void onSkipButtonClick(View view) {
+        cancelEnrollment();
+        setResult(RESULT_SKIP);
+        finish();
+    }
+
+    public void cancelEnrollment() {
         if (mSidecar != null) {
             mSidecar.setListener(null);
             mSidecar.cancelEnrollment();
@@ -96,12 +107,6 @@
                     .beginTransaction().remove(mSidecar).commitAllowingStateLoss();
             mSidecar = null;
         }
-        super.onBackPressed();
-    }
-
-    protected void onSkipButtonClick(View view) {
-        setResult(RESULT_SKIP);
-        finish();
     }
 
     public void startEnrollment() {
diff --git a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
index 7d3be87..018c815 100644
--- a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
+++ b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
@@ -77,12 +77,14 @@
 
             if (mRequestEnrollFingerprint) {
                 // Give FaceEnroll a pendingIntent pointing to fingerprint enrollment, so that it
-                // can be started when user skips or finishes face enrollment.
+                // can be started when user skips or finishes face enrollment. FLAG_UPDATE_CURRENT
+                // ensures it is launched with the most recent values.
                 final Intent fpIntent = BiometricUtils.getFingerprintIntroIntent(mActivity,
                         mActivity.getIntent());
                 fpIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, mGkPwHandle);
                 final PendingIntent fpAfterFaceIntent = PendingIntent.getActivity(mActivity,
-                        0 /* requestCode */, fpIntent, PendingIntent.FLAG_IMMUTABLE);
+                        0 /* requestCode */, fpIntent,
+                        PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
                 faceIntent.putExtra(EXTRA_ENROLL_AFTER_FACE, fpAfterFaceIntent);
             }
 
diff --git a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java
index c3db174..6e989d8 100644
--- a/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/combination/CombinedBiometricStatusPreferenceController.java
@@ -16,6 +16,10 @@
 package com.android.settings.biometrics.combination;
 
 import android.content.Context;
+import android.hardware.face.FaceManager;
+import android.hardware.fingerprint.FingerprintManager;
+
+import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 import com.android.settings.Settings;
@@ -30,6 +34,10 @@
         BiometricStatusPreferenceController {
     private static final String KEY_BIOMETRIC_SETTINGS = "biometric_settings";
 
+    @Nullable
+    FingerprintManager mFingerprintManager;
+    @Nullable
+    FaceManager mFaceManager;
 
     public CombinedBiometricStatusPreferenceController(Context context) {
         this(context, KEY_BIOMETRIC_SETTINGS);
@@ -37,6 +45,8 @@
 
     public CombinedBiometricStatusPreferenceController(Context context, String key) {
         super(context, key);
+        mFingerprintManager = Utils.getFingerprintManagerOrNull(context);
+        mFaceManager = Utils.getFaceManagerOrNull(context);
     }
 
     @Override
@@ -51,12 +61,34 @@
 
     @Override
     protected String getSummaryTextEnrolled() {
-        return mContext.getString(R.string.security_settings_biometric_preference_summary);
+        // Note that this is currently never called (see the super class)
+        return mContext.getString(
+                R.string.security_settings_biometric_preference_summary_none_enrolled);
     }
 
     @Override
     protected String getSummaryTextNoneEnrolled() {
-        return mContext.getString(R.string.security_settings_biometric_preference_summary);
+        final int numFingerprintsEnrolled = mFingerprintManager != null ?
+                mFingerprintManager.getEnrolledFingerprints(getUserId()).size() : 0;
+        final boolean faceEnrolled = mFaceManager != null
+                && mFaceManager.hasEnrolledTemplates(getUserId());
+
+        if (faceEnrolled && numFingerprintsEnrolled > 1) {
+            return mContext.getString(
+                    R.string.security_settings_biometric_preference_summary_both_fp_multiple);
+        } else if (faceEnrolled && numFingerprintsEnrolled == 1) {
+            return mContext.getString(
+                    R.string.security_settings_biometric_preference_summary_both_fp_single);
+        } else if (faceEnrolled) {
+            return mContext.getString(R.string.security_settings_face_preference_summary);
+        } else if (numFingerprintsEnrolled > 0) {
+            return mContext.getResources().getQuantityString(
+                    R.plurals.security_settings_fingerprint_preference_summary,
+                    numFingerprintsEnrolled, numFingerprintsEnrolled);
+        } else {
+            return mContext.getString(
+                    R.string.security_settings_biometric_preference_summary_none_enrolled);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index 9110292..4129fa5 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -114,9 +114,6 @@
                 mToken = BiometricUtils.requestGatekeeperHat(this, getIntent(), mUserId, challenge);
                 mSensorId = sensorId;
                 mChallenge = challenge;
-                if (BiometricUtils.isMultiBiometricEnrollmentFlow(this)) {
-                    BiometricUtils.removeGatekeeperPasswordHandle(this, getIntent());
-                }
                 mFooterBarMixin.getPrimaryButton().setEnabled(true);
             });
         }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index faa0c84..db03a3d 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -85,7 +85,6 @@
                 mChallenge = challenge;
                 mSensorId = sensorId;
                 mToken = BiometricUtils.requestGatekeeperHat(this, getIntent(), mUserId, challenge);
-                BiometricUtils.removeGatekeeperPasswordHandle(this, getIntent());
 
                 // Put this into the intent. This is really just to work around the fact that the
                 // enrollment sidecar gets the HAT from the activity's intent, rather than having
@@ -111,6 +110,12 @@
         }
     }
 
+    @Override
+    public void onBackPressed() {
+        stopLookingForFingerprint();
+        super.onBackPressed();
+    }
+
     protected int getContentView() {
         if (mCanAssumeUdfps) {
             if (BiometricUtils.isReverseLandscape(getApplicationContext())) {
@@ -130,6 +135,16 @@
         }
     }
 
+    private void stopLookingForFingerprint() {
+        if (mSidecar != null) {
+            mSidecar.setListener(null);
+            mSidecar.cancelEnrollment();
+            getSupportFragmentManager()
+                    .beginTransaction().remove(mSidecar).commitAllowingStateLoss();
+            mSidecar = null;
+        }
+    }
+
     private void startLookingForFingerprint() {
         mSidecar = (FingerprintEnrollSidecar) getSupportFragmentManager().findFragmentByTag(
                 FingerprintEnrollEnrolling.TAG_SIDECAR);
@@ -185,6 +200,7 @@
     }
 
     protected void onSkipButtonClick(View view) {
+        stopLookingForFingerprint();
         setResult(RESULT_SKIP);
         finish();
     }
diff --git a/src/com/android/settings/bluetooth/DevicePickerFragment.java b/src/com/android/settings/bluetooth/DevicePickerFragment.java
index f60183b..02b5d5c 100644
--- a/src/com/android/settings/bluetooth/DevicePickerFragment.java
+++ b/src/com/android/settings/bluetooth/DevicePickerFragment.java
@@ -27,12 +27,15 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserManager;
+import android.util.Log;
+import android.text.TextUtils;
 import android.view.Menu;
 import android.view.MenuInflater;
 
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
+import com.android.settings.password.PasswordUtils;
 import com.android.settingslib.bluetooth.CachedBluetoothDevice;
 import com.android.settingslib.core.AbstractPreferenceController;
 
@@ -50,6 +53,12 @@
     BluetoothProgressCategory mAvailableDevicesCategory;
     @VisibleForTesting
     Context mContext;
+    @VisibleForTesting
+    String mLaunchPackage;
+    @VisibleForTesting
+    String mLaunchClass;
+    @VisibleForTesting
+    String mCallingAppPackageName;
 
     private boolean mNeedAuth;
     private boolean mScanAllowed;
@@ -64,6 +73,8 @@
         mNeedAuth = intent.getBooleanExtra(BluetoothDevicePicker.EXTRA_NEED_AUTH, false);
         setFilter(intent.getIntExtra(BluetoothDevicePicker.EXTRA_FILTER_TYPE,
                 BluetoothDevicePicker.FILTER_TYPE_ALL));
+        mLaunchPackage = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_PACKAGE);
+        mLaunchClass = intent.getStringExtra(BluetoothDevicePicker.EXTRA_LAUNCH_CLASS);
         mAvailableDevicesCategory = (BluetoothProgressCategory) findPreference(KEY_BT_DEVICE_LIST);
     }
 
@@ -83,6 +94,12 @@
         getActivity().setTitle(getString(R.string.device_picker));
         UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
         mScanAllowed = !um.hasUserRestriction(DISALLOW_CONFIG_BLUETOOTH);
+        mCallingAppPackageName = PasswordUtils.getCallingAppPackageName(
+                getActivity().getActivityToken());
+        if (!TextUtils.equals(mCallingAppPackageName, mLaunchPackage)) {
+            Log.w(TAG, "sendDevicePickedIntent() launch package name is not equivalent to"
+                    + " calling package name!");
+        }
         mContext = getContext();
         setHasOptionsMenu(true);
     }
@@ -189,6 +206,11 @@
     private void sendDevicePickedIntent(BluetoothDevice device) {
         Intent intent = new Intent(BluetoothDevicePicker.ACTION_DEVICE_SELECTED);
         intent.putExtra(BluetoothDevice.EXTRA_DEVICE, device);
+        if (mLaunchPackage != null && mLaunchClass != null) {
+            if (TextUtils.equals(mCallingAppPackageName, mLaunchPackage)) {
+                intent.setClassName(mLaunchPackage, mLaunchClass);
+            }
+        }
 
         mContext.sendBroadcast(intent, Manifest.permission.BLUETOOTH_ADMIN);
     }
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
index 390faa4..502c7d2 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDefaultFragment.java
@@ -61,9 +61,10 @@
     long mCurrentFunctions;
     @VisibleForTesting
     boolean mIsStartTethering = false;
+    @VisibleForTesting
+    Handler mHandler;
 
     private UsbConnectionBroadcastReceiver mUsbReceiver;
-    private Handler mHandler;
     private boolean mIsConnected = false;
 
     @VisibleForTesting
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index b11935f..a4396a2 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -183,7 +183,9 @@
     void addWifiSection() {
         TemplatePreferenceCategory category = (TemplatePreferenceCategory)
                 inflatePreferences(R.xml.data_usage_wifi);
-        category.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(), 0, services);
+        category.setTemplate(
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */), 0, services);
     }
 
     private void addEthernetSection() {
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreference.java b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
index f1728b6..260a6da 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreference.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreference.java
@@ -225,7 +225,8 @@
     static void launchWifiDataUsage(Context context) {
         final Bundle args = new Bundle(1);
         args.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
-                NetworkTemplate.buildTemplateWifiWildcard());
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
         args.putInt(DataUsageList.EXTRA_NETWORK_TYPE, ConnectivityManager.TYPE_WIFI);
         final SubSettingLauncher launcher = new SubSettingLauncher(context)
                 .setArguments(args)
@@ -367,7 +368,9 @@
     @VisibleForTesting
     protected long getHistoricalUsageLevel() {
         final DataUsageController controller = new DataUsageController(getContext());
-        return controller.getHistoricalUsageLevel(NetworkTemplate.buildTemplateWifiWildcard());
+        return controller.getHistoricalUsageLevel(
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index 73f8f45..bc47e5e 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -138,7 +138,8 @@
             mDefaultTemplate = DataUsageLib.getMobileTemplate(context, subscriptionId);
         } else if (DataUsageUtils.hasWifiRadio(context)) {
             mDataUsageTemplate = R.string.wifi_data_template;
-            mDefaultTemplate = NetworkTemplate.buildTemplateWifiWildcard();
+            mDefaultTemplate = NetworkTemplate.buildTemplateWifi(
+                    NetworkTemplate.WIFI_NETWORKID_ALL, null /* subscriberId */);
         } else {
             mDataUsageTemplate = R.string.ethernet_data_template;
             mDefaultTemplate = DataUsageUtils.getDefaultTemplate(context, subscriptionId);
diff --git a/src/com/android/settings/datausage/DataUsageUtils.java b/src/com/android/settings/datausage/DataUsageUtils.java
index 7da69cb..fae53ec 100644
--- a/src/com/android/settings/datausage/DataUsageUtils.java
+++ b/src/com/android/settings/datausage/DataUsageUtils.java
@@ -184,7 +184,8 @@
         if (SubscriptionManager.isValidSubscriptionId(defaultSubId) && hasMobileData(context)) {
             return DataUsageLib.getMobileTemplate(context, defaultSubId);
         } else if (hasWifiRadio(context)) {
-            return NetworkTemplate.buildTemplateWifiWildcard();
+            return NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                    null /* subscriberId */);
         } else {
             return NetworkTemplate.buildTemplateEthernet();
         }
diff --git a/src/com/android/settings/datausage/lib/DataUsageLib.java b/src/com/android/settings/datausage/lib/DataUsageLib.java
index cf2ce1f..786f0ec 100644
--- a/src/com/android/settings/datausage/lib/DataUsageLib.java
+++ b/src/com/android/settings/datausage/lib/DataUsageLib.java
@@ -73,6 +73,7 @@
 
     private static NetworkTemplate getMobileTemplateForSubId(
             TelephonyManager telephonyManager, int subId) {
-        return NetworkTemplate.buildTemplateMobileAll(telephonyManager.getSubscriberId(subId));
+        return NetworkTemplate.buildTemplateMobileAll(
+                telephonyManager.getSubscriberId(subId));
     }
 }
diff --git a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
index dcc581c..89d349f 100644
--- a/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
+++ b/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceController.java
@@ -21,6 +21,7 @@
 import android.text.format.Formatter;
 import android.util.FeatureFlagUtils;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
@@ -31,6 +32,7 @@
 import com.android.settingslib.utils.ThreadUtils;
 
 import java.text.NumberFormat;
+import java.util.concurrent.Future;
 
 public class TopLevelStoragePreferenceController extends BasePreferenceController {
 
@@ -59,10 +61,15 @@
             return;
         }
 
-        ThreadUtils.postOnBackgroundThread(() -> {
+        refreshSummaryThread(preference);
+    }
+
+    @VisibleForTesting
+    protected Future refreshSummaryThread(Preference preference) {
+        return ThreadUtils.postOnBackgroundThread(() -> {
             final NumberFormat percentageFormat = NumberFormat.getPercentInstance();
             final PrivateStorageInfo info = PrivateStorageInfo.getPrivateStorageInfo(
-                    mStorageManagerVolumeProvider);
+                    getStorageManagerVolumeProvider());
             final double privateUsedBytes = info.totalBytes - info.freeBytes;
 
             ThreadUtils.postOnMainThread(() -> {
@@ -72,4 +79,10 @@
             });
         });
     }
+
+
+    @VisibleForTesting
+    protected StorageManagerVolumeProvider getStorageManagerVolumeProvider() {
+        return mStorageManagerVolumeProvider;
+    }
 }
diff --git a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
index 9d10a1d..f53b68f 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageAsyncLoader.java
@@ -120,7 +120,9 @@
 
             // This isn't quite right because it slams the first user by user id with the whole code
             // size, but this ensures that we count all apps seen once.
+            boolean isAddCodeBytesForFirstUserId = false;
             if (!mSeenPackages.contains(app.packageName)) {
+                isAddCodeBytesForFirstUserId = true;
                 blamedSize += stats.getCodeBytes();
                 mSeenPackages.add(app.packageName);
             }
@@ -130,13 +132,34 @@
                     result.gamesSize += blamedSize;
                     break;
                 case CATEGORY_AUDIO:
+                    // TODO(b/170918505): Should revamp audio size calculation with the data
+                    // from media provider.
                     result.musicAppsSize += blamedSize;
+                    if (isAddCodeBytesForFirstUserId) {
+                        result.musicAppsSize -= stats.getCodeBytes();
+                    }
+
+                    result.otherAppsSize += blamedSize;
                     break;
                 case CATEGORY_VIDEO:
+                    // TODO(b/170918505): Should revamp video size calculation with the data
+                    // from media provider.
                     result.videoAppsSize += blamedSize;
+                    if (isAddCodeBytesForFirstUserId) {
+                        result.videoAppsSize -= stats.getCodeBytes();
+                    }
+
+                    result.otherAppsSize += blamedSize;
                     break;
                 case CATEGORY_IMAGE:
+                    // TODO(b/170918505): Should revamp image size calculation with the data
+                    // from media provider.
                     result.photosAppsSize += blamedSize;
+                    if (isAddCodeBytesForFirstUserId) {
+                        result.photosAppsSize -= stats.getCodeBytes();
+                    }
+
+                    result.otherAppsSize += blamedSize;
                     break;
                 default:
                     // The deprecated game flag does not set the category.
diff --git a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
index 4817485..bc46110 100644
--- a/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceController.java
@@ -88,10 +88,14 @@
     @VisibleForTesting
     static final String TRASH_KEY = "pref_trash";
 
-    private final Uri mImagesUri;
-    private final Uri mVideosUri;
-    private final Uri mAudiosUri;
-    private final Uri mDocumentsAndOtherUri;
+    @VisibleForTesting
+    final Uri mImagesUri;
+    @VisibleForTesting
+    final Uri mVideosUri;
+    @VisibleForTesting
+    final Uri mAudiosUri;
+    @VisibleForTesting
+    final Uri mDocumentsAndOtherUri;
 
     // This value should align with the design of storage_dashboard_fragment.xml
     private static final int LAST_STORAGE_CATEGORY_PREFERENCE_ORDER = 200;
@@ -175,13 +179,13 @@
                 launchPublicStorageIntent();
                 return true;
             case IMAGES_KEY:
-                launchImagesIntent();
+                launchActivityWithUri(mImagesUri);
                 return true;
             case VIDEOS_KEY:
-                launchVideosIntent();
+                launchActivityWithUri(mVideosUri);
                 return true;
             case AUDIOS_KEY:
-                launchAudiosIntent();
+                launchActivityWithUri(mAudiosUri);
                 return true;
             case APPS_KEY:
                 launchAppsIntent();
@@ -190,7 +194,7 @@
                 launchGamesIntent();
                 return true;
             case DOCUMENTS_AND_OTHER_KEY:
-                launchDocumentsAndOtherIntent();
+                launchActivityWithUri(mDocumentsAndOtherUri);
                 return true;
             case SYSTEM_KEY:
                 final SystemInfoFragment dialog = new SystemInfoFragment();
@@ -405,29 +409,10 @@
         }
     }
 
-    // TODO(b/183078080): To simplify StorageItemPreferenceController, move launchxxxIntent to a
-    //                    utility object.
-    private void launchImagesIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setData(mImagesUri);
-
-        if (intent.resolveActivity(mPackageManager) == null) {
-            final Bundle args = getWorkAnnotatedBundle(2);
-            args.putString(ManageApplications.EXTRA_CLASSNAME,
-                    Settings.PhotosStorageActivity.class.getName());
-            args.putInt(ManageApplications.EXTRA_STORAGE_TYPE,
-                    ManageApplications.STORAGE_TYPE_PHOTOS_VIDEOS);
-            intent = new SubSettingLauncher(mContext)
-                    .setDestination(ManageApplications.class.getName())
-                    .setTitleRes(R.string.storage_photos_videos)
-                    .setArguments(args)
-                    .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
-                    .toIntent();
-            intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
-            Utils.launchIntent(mFragment, intent);
-        } else {
-            mContext.startActivity(intent);
-        }
+    private void launchActivityWithUri(Uri dataUri) {
+        final Intent intent = new Intent(Intent.ACTION_VIEW);
+        intent.setData(dataUri);
+        mContext.startActivity(intent);
     }
 
     private long getImagesSize(StorageAsyncLoader.AppsStorageResult data,
@@ -443,27 +428,6 @@
         }
     }
 
-    private void launchVideosIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setData(mVideosUri);
-
-        if (intent.resolveActivity(mPackageManager) == null) {
-            final Bundle args = getWorkAnnotatedBundle(1);
-            args.putString(ManageApplications.EXTRA_CLASSNAME,
-                    Settings.MoviesStorageActivity.class.getName());
-            intent = new SubSettingLauncher(mContext)
-                    .setDestination(ManageApplications.class.getName())
-                    .setTitleRes(R.string.storage_movies_tv)
-                    .setArguments(args)
-                    .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
-                    .toIntent();
-            intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
-            Utils.launchIntent(mFragment, intent);
-        } else {
-            mContext.startActivity(intent);
-        }
-    }
-
     private long getVideosSize(StorageAsyncLoader.AppsStorageResult data,
             StorageAsyncLoader.AppsStorageResult profileData) {
         if (profileData != null) {
@@ -473,31 +437,6 @@
         }
     }
 
-    private void launchAudiosIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setData(mAudiosUri);
-
-        if (intent.resolveActivity(mPackageManager) == null) {
-            final Bundle args = getWorkAnnotatedBundle(4);
-            args.putString(ManageApplications.EXTRA_CLASSNAME,
-                    Settings.StorageUseActivity.class.getName());
-            args.putString(ManageApplications.EXTRA_VOLUME_UUID, mVolume.getFsUuid());
-            args.putString(ManageApplications.EXTRA_VOLUME_NAME, mVolume.getDescription());
-            args.putInt(ManageApplications.EXTRA_STORAGE_TYPE,
-                    ManageApplications.STORAGE_TYPE_MUSIC);
-            intent = new SubSettingLauncher(mContext)
-                    .setDestination(ManageApplications.class.getName())
-                    .setTitleRes(R.string.storage_music_audio)
-                    .setArguments(args)
-                    .setSourceMetricsCategory(mMetricsFeatureProvider.getMetricsCategory(mFragment))
-                    .toIntent();
-            intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
-            Utils.launchIntent(mFragment, intent);
-        } else {
-            mContext.startActivity(intent);
-        }
-    }
-
     private long getAudiosSize(StorageAsyncLoader.AppsStorageResult data,
             StorageAsyncLoader.AppsStorageResult profileData) {
         if (profileData != null) {
@@ -563,19 +502,6 @@
         return args;
     }
 
-    private void launchDocumentsAndOtherIntent() {
-        Intent intent = new Intent(Intent.ACTION_VIEW);
-        intent.setData(mDocumentsAndOtherUri);
-
-        if (intent.resolveActivity(mPackageManager) == null) {
-            intent = mSvp.findEmulatedForPrivate(mVolume).buildBrowseIntent();
-            intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
-            Utils.launchIntent(mFragment, intent);
-        } else {
-            mContext.startActivity(intent);
-        }
-    }
-
     private long getDocumentsAndOtherSize(StorageAsyncLoader.AppsStorageResult data,
             StorageAsyncLoader.AppsStorageResult profileData) {
         if (profileData != null) {
diff --git a/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceController.java
index 8e4db0d..c3db6f7 100644
--- a/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceController.java
@@ -58,21 +58,25 @@
      * Refreshes the visibility of the preference.
      */
     public void updateVisibility() {
+        initializePreference();
         mPreference.setVisible(!hasSufficientPermission(mPackageManager));
     }
 
     private void initializePreference() {
-        final String packageName = mContext.getPackageManager().getAttentionServicePackageName();
-        final Intent intent = new Intent(
-                android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
-        intent.setData(Uri.parse("package:" + packageName));
-        mPreference = new BannerMessagePreference(mContext);
-        mPreference.setTitle(R.string.adaptive_sleep_title_no_permission);
-        mPreference.setSummary(R.string.adaptive_sleep_summary_no_permission);
-        mPreference.setPositiveButtonText(R.string.adaptive_sleep_manage_permission_button);
-        mPreference.setPositiveButtonOnClickListener(p -> {
-            mContext.startActivity(intent);
-        });
+        if (mPreference == null) {
+            final String packageName =
+                    mContext.getPackageManager().getAttentionServicePackageName();
+            final Intent intent = new Intent(
+                    android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
+            intent.setData(Uri.parse("package:" + packageName));
+            mPreference = new BannerMessagePreference(mContext);
+            mPreference.setTitle(R.string.adaptive_sleep_title_no_permission);
+            mPreference.setSummary(R.string.adaptive_sleep_summary_no_permission);
+            mPreference.setPositiveButtonText(R.string.adaptive_sleep_manage_permission_button);
+            mPreference.setPositiveButtonOnClickListener(p -> {
+                mContext.startActivity(intent);
+            });
+        }
     }
 
 }
diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
index aa02ce5..7fbb01e 100644
--- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
+++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java
@@ -79,7 +79,7 @@
     }
 
     /**
-     *  Updates the appearance of the preference.
+     * Updates the appearance of the preference.
      */
     public void updatePreference() {
         final EnforcedAdmin enforcedAdmin = mRestrictionUtils.checkIfRestrictionEnforced(mContext,
@@ -151,4 +151,4 @@
         return attentionPackage != null && packageManager.checkPermission(
                 Manifest.permission.CAMERA, attentionPackage) == PackageManager.PERMISSION_GRANTED;
     }
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index 36e085a..9b654dc 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -107,7 +107,7 @@
                         mContext.getContentResolver(),
                         Settings.System.PEAK_REFRESH_RATE,
                         getDefaultPeakRefreshRate());
-        return peakRefreshRate == mPeakRefreshRate;
+        return Math.round(peakRefreshRate) == Math.round(mPeakRefreshRate);
     }
 
     @Override
@@ -190,6 +190,7 @@
                     com.android.internal.R.integer.config_defaultPeakRefreshRate);
         }
 
+        Log.d(TAG, "DeviceConfig getDefaultPeakRefreshRate : " + defaultPeakRefreshRate);
         return defaultPeakRefreshRate;
     }
 }
diff --git a/src/com/android/settings/display/SmartAutoRotateCameraStateController.java b/src/com/android/settings/display/SmartAutoRotateCameraStateController.java
index 9e2a784..a17a903 100644
--- a/src/com/android/settings/display/SmartAutoRotateCameraStateController.java
+++ b/src/com/android/settings/display/SmartAutoRotateCameraStateController.java
@@ -44,7 +44,9 @@
         super(context, key);
         mPrivacyManager = SensorPrivacyManager.getInstance(context);
         mPrivacyManager.addSensorPrivacyListener(CAMERA, (sensor, enabled) -> {
-            mPreference.setVisible(enabled);
+            if (mPreference != null) {
+                mPreference.setVisible(enabled);
+            }
             updateState(mPreference);
         });
     }
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index a40cf88..83979e5 100644
--- a/src/com/android/settings/dream/DreamSettings.java
+++ b/src/com/android/settings/dream/DreamSettings.java
@@ -129,9 +129,8 @@
     }
 
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
-        List<AbstractPreferenceController> controllers = new ArrayList<>();
+        final List<AbstractPreferenceController> controllers = new ArrayList<>();
         controllers.add(new WhenToDreamPreferenceController(context));
-        controllers.add(new StartNowPreferenceController(context));
         return controllers;
     }
 
diff --git a/src/com/android/settings/dream/StartNowPreferenceController.java b/src/com/android/settings/dream/StartNowPreferenceController.java
index fb0581f..ed0a4db 100644
--- a/src/com/android/settings/dream/StartNowPreferenceController.java
+++ b/src/com/android/settings/dream/StartNowPreferenceController.java
@@ -17,63 +17,52 @@
 package com.android.settings.dream;
 
 import android.content.Context;
-import android.widget.Button;
 
 import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.overlay.FeatureFactory;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.widget.SettingsMainSwitchPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.dream.DreamBackend;
-import com.android.settingslib.widget.LayoutPreference;
 
-public class StartNowPreferenceController extends AbstractPreferenceController implements
-        PreferenceControllerMixin {
+/**
+ * Controller that used to enable screen saver
+ */
+public class StartNowPreferenceController extends SettingsMainSwitchPreferenceController {
 
-    private static final String PREF_KEY = "dream_start_now_button_container";
     private final DreamBackend mBackend;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
 
-    public StartNowPreferenceController(Context context) {
-        super(context);
-
+    public StartNowPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
         mBackend = DreamBackend.getInstance(context);
         mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
     }
 
     @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return PREF_KEY;
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-
-        LayoutPreference pref = screen.findPreference(getPreferenceKey());
-        Button startButton = pref.findViewById(R.id.dream_start_now_button);
-        startButton.setOnClickListener(v -> {
-            mMetricsFeatureProvider.logClickedPreference(pref,
-                    pref.getExtras().getInt(DashboardFragment.CATEGORY));
-            mBackend.startDreaming();
-        });
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
     }
 
     @Override
     public void updateState(Preference preference) {
-        super.updateState(preference);
+        mSwitchPreference.setChecked(false);
+        mSwitchPreference.setEnabled(mBackend.getWhenToDreamSetting() != DreamBackend.NEVER);
+    }
 
-        Button startButton = ((LayoutPreference) preference)
-                .findViewById(R.id.dream_start_now_button);
-        startButton.setEnabled(mBackend.getWhenToDreamSetting() != DreamBackend.NEVER);
+    @Override
+    public boolean isChecked() {
+        return false;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (isChecked) {
+            mMetricsFeatureProvider.logClickedPreference(mSwitchPreference,
+                    mSwitchPreference.getExtras().getInt(DashboardFragment.CATEGORY));
+            mBackend.startDreaming();
+        }
+        return true;
     }
 }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 21160d7..7c2f052 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -297,7 +297,6 @@
             final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
             final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
             final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
-            //TODO(b/178197718) Update layout to support multiple lines
             controller.setSummary(getAppActiveTime(foregroundTimeMs, backgroundTimeMs, slotTime));
         }
 
@@ -329,15 +328,15 @@
     void initPreferenceForTriState(Context context) {
         final String stateString;
         final String footerString;
-        //TODO(b/178197718) Update strings
+
         if (!mBatteryOptimizeUtils.isValidPackageName()) {
             //Present optimized only string when the package name is invalid.
-            stateString = context.getString(R.string.manager_battery_usage_optimized_title);
+            stateString = context.getString(R.string.manager_battery_usage_optimized_only);
             footerString = context.getString(
                     R.string.manager_battery_usage_footer_limited, stateString);
         } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
             //Present unrestricted only string when the package is system or default active app.
-            stateString = context.getString(R.string.manager_battery_usage_unrestricted_title);
+            stateString = context.getString(R.string.manager_battery_usage_unrestricted_only);
             footerString = context.getString(
                     R.string.manager_battery_usage_footer_limited, stateString);
         } else {
diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
index b09dfd5..707a04b 100644
--- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java
@@ -21,13 +21,13 @@
 import android.content.Context;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
+import android.os.AggregateBatteryConsumer;
 import android.os.BatteryConsumer;
 import android.os.BatteryUsageStats;
 import android.os.Handler;
 import android.os.Looper;
 import android.os.Message;
 import android.os.Process;
-import android.os.SystemBatteryConsumer;
 import android.os.UidBatteryConsumer;
 import android.os.UserBatteryConsumer;
 import android.os.UserHandle;
@@ -344,16 +344,38 @@
             }
         }
 
-        final List<SystemBatteryConsumer> systemBatteryConsumers =
-                mBatteryUsageStats.getSystemBatteryConsumers();
-        for (int i = 0, size = systemBatteryConsumers.size(); i < size; i++) {
-            final SystemBatteryConsumer consumer = systemBatteryConsumers.get(i);
-            if (!showAllApps && mBatteryUtils.shouldHideSystemBatteryConsumer(consumer)) {
+        final BatteryConsumer deviceConsumer = mBatteryUsageStats.getAggregateBatteryConsumer(
+                BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
+        final BatteryConsumer appsConsumer = mBatteryUsageStats.getAggregateBatteryConsumer(
+                BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_ALL_APPS);
+
+        for (int componentId = 0; componentId < BatteryConsumer.POWER_COMPONENT_COUNT;
+                componentId++) {
+            if (!showAllApps
+                    && mBatteryUtils.shouldHideDevicePowerComponent(deviceConsumer, componentId)) {
                 continue;
             }
 
-            results.add(new BatteryEntry(mContext, mHandler, mUserManager,
-                    consumer, /* isHidden */ true, null, null, loadDataInBackground));
+            results.add(new BatteryEntry(mContext, componentId,
+                    deviceConsumer.getConsumedPower(componentId),
+                    appsConsumer.getConsumedPower(componentId),
+                    deviceConsumer.getUsageDurationMillis(componentId)));
+        }
+
+        for (int componentId = BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID;
+                componentId < BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
+                        + deviceConsumer.getCustomPowerComponentCount();
+                componentId++) {
+            if (!showAllApps
+                    && mBatteryUtils.shouldHideCustomDevicePowerComponent(deviceConsumer,
+                    componentId)) {
+                continue;
+            }
+
+            results.add(new BatteryEntry(mContext, componentId,
+                    deviceConsumer.getCustomPowerComponentName(componentId),
+                    deviceConsumer.getConsumedPowerForCustomComponent(componentId),
+                    appsConsumer.getConsumedPowerForCustomComponent(componentId)));
         }
 
         if (showAllApps) {
@@ -431,20 +453,26 @@
                 .setDischargePercentage(100);
 
         float use = 500;
-        for (@SystemBatteryConsumer.DrainType int drainType : new int[]{
-                SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY,
-                SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH,
-                SystemBatteryConsumer.DRAIN_TYPE_CAMERA,
-                SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT,
-                SystemBatteryConsumer.DRAIN_TYPE_IDLE,
-                SystemBatteryConsumer.DRAIN_TYPE_MEMORY,
-                SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO,
-                SystemBatteryConsumer.DRAIN_TYPE_PHONE,
-                SystemBatteryConsumer.DRAIN_TYPE_SCREEN,
-                SystemBatteryConsumer.DRAIN_TYPE_WIFI,
+        final AggregateBatteryConsumer.Builder appsBatteryConsumerBuilder =
+                builder.getAggregateBatteryConsumerBuilder(
+                        BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_ALL_APPS);
+        final AggregateBatteryConsumer.Builder deviceBatteryConsumerBuilder =
+                builder.getAggregateBatteryConsumerBuilder(
+                        BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
+        for (@BatteryConsumer.PowerComponent int componentId : new int[]{
+                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+                BatteryConsumer.POWER_COMPONENT_CAMERA,
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT,
+                BatteryConsumer.POWER_COMPONENT_IDLE,
+                BatteryConsumer.POWER_COMPONENT_MEMORY,
+                BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO,
+                BatteryConsumer.POWER_COMPONENT_PHONE,
+                BatteryConsumer.POWER_COMPONENT_SCREEN,
+                BatteryConsumer.POWER_COMPONENT_WIFI,
         }) {
-            builder.getOrCreateSystemBatteryConsumerBuilder(drainType)
-                    .setConsumedPower(BatteryConsumer.POWER_COMPONENT_CPU, use);
+            appsBatteryConsumerBuilder.setConsumedPower(componentId, use);
+            deviceBatteryConsumerBuilder.setConsumedPower(componentId, use * 2);
             use += 5;
         }
 
diff --git a/src/com/android/settings/fuelgauge/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
index 9a199bf..7b73638 100644
--- a/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
@@ -15,8 +15,6 @@
 
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.IPackageManager;
-import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.graphics.drawable.Drawable;
@@ -29,7 +27,6 @@
 
 import com.android.settingslib.utils.StringUtil;
 
-import java.time.Duration;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.Locale;
@@ -158,7 +155,7 @@
                 break;
             case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
                 final BatteryEntry.NameAndIcon nameAndIconForSystem =
-                    BatteryEntry.getNameAndIconFromDrainType(
+                    BatteryEntry.getNameAndIconFromPowerComponent(
                         mContext, mBatteryHistEntry.mDrainType);
                 if (nameAndIconForSystem != null) {
                     mAppLabel = nameAndIconForSystem.name;
diff --git a/src/com/android/settings/fuelgauge/BatteryEntry.java b/src/com/android/settings/fuelgauge/BatteryEntry.java
index f9c4b28..25a66b6 100644
--- a/src/com/android/settings/fuelgauge/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryEntry.java
@@ -29,11 +29,11 @@
 import android.os.Handler;
 import android.os.Process;
 import android.os.RemoteException;
-import android.os.SystemBatteryConsumer;
 import android.os.UidBatteryConsumer;
 import android.os.UserBatteryConsumer;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.DebugUtils;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -160,6 +160,11 @@
     private final Context mContext;
     private final BatteryConsumer mBatteryConsumer;
     private final boolean mIsHidden;
+    @ConvertUtils.ConsumerType
+    private final int mConsumerType;
+    @BatteryConsumer.PowerComponent
+    private final int mPowerComponentId;
+    private long mUsageDurationMs;
 
     public String name;
     public Drawable icon;
@@ -188,8 +193,10 @@
         mBatteryConsumer = batteryConsumer;
         mIsHidden = isHidden;
         mDefaultPackageName = packageName;
+        mPowerComponentId = -1;
 
         if (batteryConsumer instanceof UidBatteryConsumer) {
+            mConsumerType = ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
             mConsumedPower = batteryConsumer.getConsumedPower();
 
             UidBatteryConsumer uidBatteryConsumer = (UidBatteryConsumer) batteryConsumer;
@@ -215,27 +222,54 @@
                 }
             }
             getQuickNameIconForUid(uid, packages, loadDataInBackground);
-            return;
-        } else if (batteryConsumer instanceof SystemBatteryConsumer) {
-            mConsumedPower = batteryConsumer.getConsumedPower()
-                    - ((SystemBatteryConsumer) batteryConsumer).getPowerConsumedByApps();
-            final NameAndIcon nameAndIcon = getNameAndIconFromDrainType(
-                    context, ((SystemBatteryConsumer) batteryConsumer).getDrainType());
-            iconId = nameAndIcon.iconId;
-            name = nameAndIcon.name;
         } else if (batteryConsumer instanceof UserBatteryConsumer) {
+            mConsumerType = ConvertUtils.CONSUMER_TYPE_USER_BATTERY;
             mConsumedPower = batteryConsumer.getConsumedPower();
             final NameAndIcon nameAndIcon = getNameAndIconFromUserId(
                     context, ((UserBatteryConsumer) batteryConsumer).getUserId());
             icon = nameAndIcon.icon;
             name = nameAndIcon.name;
+        } else {
+            throw new IllegalArgumentException("Unsupported battery consumer: " + batteryConsumer);
         }
+    }
 
+    /** Battery entry for a power component of AggregateBatteryConsumer */
+    public BatteryEntry(Context context, int powerComponentId, double devicePowerMah,
+            double appsPowerMah, long usageDurationMs) {
+        mContext = context;
+        mBatteryConsumer = null;
+        mIsHidden = false;
+        mPowerComponentId = powerComponentId;
+        mConsumedPower = devicePowerMah - appsPowerMah;
+        mUsageDurationMs = usageDurationMs;
+        mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
+
+        final NameAndIcon nameAndIcon = getNameAndIconFromPowerComponent(context, powerComponentId);
+        iconId = nameAndIcon.iconId;
+        name = nameAndIcon.name;
         if (iconId != 0) {
             icon = context.getDrawable(iconId);
         }
     }
 
+    /** Battery entry for a custom power component of AggregateBatteryConsumer */
+    public BatteryEntry(Context context, int powerComponentId, String powerComponentName,
+            double devicePowerMah, double appsPowerMah) {
+        mContext = context;
+        mBatteryConsumer = null;
+        mIsHidden = false;
+        mPowerComponentId = powerComponentId;
+
+        iconId = R.drawable.ic_power_system;
+        icon = context.getDrawable(iconId);
+        name = powerComponentName;
+
+        mConsumedPower = devicePowerMah - appsPowerMah;
+        mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
+    }
+
+
     public Drawable getIcon() {
         return icon;
     }
@@ -247,6 +281,16 @@
         return name;
     }
 
+    @ConvertUtils.ConsumerType
+    public int getConsumerType() {
+        return mConsumerType;
+    }
+
+    @BatteryConsumer.PowerComponent
+    public int getPowerComponentId() {
+        return mPowerComponentId;
+    }
+
     void getQuickNameIconForUid(
             final int uid, final String[] packages, final boolean loadDataInBackground) {
         // Locale sync to system config in Settings
@@ -395,13 +439,10 @@
     public String getKey() {
         if (mBatteryConsumer instanceof UidBatteryConsumer) {
             return Integer.toString(((UidBatteryConsumer) mBatteryConsumer).getUid());
-        } else if (mBatteryConsumer instanceof SystemBatteryConsumer) {
-            return "S|" + ((SystemBatteryConsumer) mBatteryConsumer).getDrainType();
         } else if (mBatteryConsumer instanceof UserBatteryConsumer) {
             return "U|" + ((UserBatteryConsumer) mBatteryConsumer).getUserId();
         } else {
-            Log.w(TAG, "Unsupported BatteryConsumer: " + mBatteryConsumer);
-            return "";
+            return "S|" + mPowerComponentId;
         }
     }
 
@@ -449,23 +490,14 @@
     }
 
     /**
-     * Returns the BatteryConsumer of the app described by this entry.
-     */
-    public BatteryConsumer getBatteryConsumer() {
-        return mBatteryConsumer;
-    }
-
-    /**
      * Returns foreground foreground time (in milliseconds) that is attributed to this entry.
      */
     public long getTimeInForegroundMs() {
         if (mBatteryConsumer instanceof UidBatteryConsumer) {
             return ((UidBatteryConsumer) mBatteryConsumer).getTimeInStateMs(
                     UidBatteryConsumer.STATE_FOREGROUND);
-        } else if (mBatteryConsumer instanceof SystemBatteryConsumer) {
-            return ((SystemBatteryConsumer) mBatteryConsumer).getUsageDurationMillis();
         } else {
-            return 0;
+            return mUsageDurationMs;
         }
     }
 
@@ -537,52 +569,53 @@
     }
 
     /**
-     * Gets name annd icon resource from SystemBatteryConsumer drain type.
+     * Gets name and icon resource from BatteryConsumer power component ID.
      */
-    public static NameAndIcon getNameAndIconFromDrainType(
-            Context context, final int drainType) {
-        String name = null;
-        int iconId = 0;
-        switch (drainType) {
-            case SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY:
+    public static NameAndIcon getNameAndIconFromPowerComponent(
+            Context context, @BatteryConsumer.PowerComponent int powerComponentId) {
+        String name;
+        int iconId;
+        switch (powerComponentId) {
+            case BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY:
                 name = context.getResources().getString(R.string.ambient_display_screen_title);
                 iconId = R.drawable.ic_settings_aod;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH:
+            case BatteryConsumer.POWER_COMPONENT_BLUETOOTH:
                 name = context.getResources().getString(R.string.power_bluetooth);
                 iconId = com.android.internal.R.drawable.ic_settings_bluetooth;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_CAMERA:
+            case BatteryConsumer.POWER_COMPONENT_CAMERA:
                 name = context.getResources().getString(R.string.power_camera);
                 iconId = R.drawable.ic_settings_camera;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO:
+            case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO:
                 name = context.getResources().getString(R.string.power_cell);
                 iconId = R.drawable.ic_cellular_1_bar;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT:
+            case BatteryConsumer.POWER_COMPONENT_FLASHLIGHT:
                 name = context.getResources().getString(R.string.power_flashlight);
                 iconId = R.drawable.ic_settings_display;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_PHONE:
+            case BatteryConsumer.POWER_COMPONENT_PHONE:
                 name = context.getResources().getString(R.string.power_phone);
                 iconId = R.drawable.ic_settings_voice_calls;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_SCREEN:
+            case BatteryConsumer.POWER_COMPONENT_SCREEN:
                 name = context.getResources().getString(R.string.power_screen);
                 iconId = R.drawable.ic_settings_display;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_WIFI:
+            case BatteryConsumer.POWER_COMPONENT_WIFI:
                 name = context.getResources().getString(R.string.power_wifi);
                 iconId = R.drawable.ic_settings_wireless;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_IDLE:
-            case SystemBatteryConsumer.DRAIN_TYPE_MEMORY:
+            case BatteryConsumer.POWER_COMPONENT_IDLE:
+            case BatteryConsumer.POWER_COMPONENT_MEMORY:
                 name = context.getResources().getString(R.string.power_idle);
                 iconId = R.drawable.ic_settings_phone_idle;
                 break;
-            case SystemBatteryConsumer.DRAIN_TYPE_CUSTOM:
-                name = null;
+            default:
+                name = DebugUtils.constantToString(BatteryConsumer.class, "POWER_COMPONENT_",
+                        powerComponentId);
                 iconId = R.drawable.ic_power_system;
                 break;
         }
diff --git a/src/com/android/settings/fuelgauge/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/BatteryHistEntry.java
index be8a845..6130fff 100644
--- a/src/com/android/settings/fuelgauge/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryHistEntry.java
@@ -15,10 +15,9 @@
 
 import android.content.ContentValues;
 import android.database.Cursor;
-import android.util.Log;
+import android.os.BatteryConsumer;
 
 import java.time.Duration;
-import java.util.TimeZone;
 
 /** A container class to carry data from {@link ContentValues}. */
 public class BatteryHistEntry {
@@ -30,6 +29,8 @@
     public static final String KEY_APP_LABEL = "appLabel";
     public static final String KEY_PACKAGE_NAME = "packageName";
     public static final String KEY_IS_HIDDEN = "isHidden";
+    // Device booting elapsed time from SystemClock.elapsedRealtime().
+    public static final String KEY_BOOT_TIMESTAMP = "bootTimestamp";
     public static final String KEY_TIMESTAMP = "timestamp";
     public static final String KEY_ZONE_ID = "zoneId";
     public static final String KEY_TOTAL_POWER = "totalPower";
@@ -50,6 +51,7 @@
     // Whether the data is represented as system component or not?
     public final boolean mIsHidden;
     // Records the timestamp relative information.
+    public final long mBootTimestamp;
     public final long mTimestamp;
     public final String mZoneId;
     // Records the battery usage relative information.
@@ -58,7 +60,9 @@
     public final double mPercentOfTotal;
     public final long mForegroundUsageTimeInMs;
     public final long mBackgroundUsageTimeInMs;
+    @BatteryConsumer.PowerComponent
     public final int mDrainType;
+    @ConvertUtils.ConsumerType
     public final int mConsumerType;
     // Records the battery intent relative information.
     public final int mBatteryLevel;
@@ -74,6 +78,7 @@
         mAppLabel = getString(values, KEY_APP_LABEL);
         mPackageName = getString(values, KEY_PACKAGE_NAME);
         mIsHidden = getBoolean(values, KEY_IS_HIDDEN);
+        mBootTimestamp = getLong(values, KEY_BOOT_TIMESTAMP);
         mTimestamp = getLong(values, KEY_TIMESTAMP);
         mZoneId = getString(values, KEY_ZONE_ID);
         mTotalPower = getDouble(values, KEY_TOTAL_POWER);
@@ -94,6 +99,7 @@
         mAppLabel = getString(cursor, KEY_APP_LABEL);
         mPackageName = getString(cursor, KEY_PACKAGE_NAME);
         mIsHidden = getBoolean(cursor, KEY_IS_HIDDEN);
+        mBootTimestamp = getLong(cursor, KEY_BOOT_TIMESTAMP);
         mTimestamp = getLong(cursor, KEY_TIMESTAMP);
         mZoneId = getString(cursor, KEY_ZONE_ID);
         mTotalPower = getDouble(cursor, KEY_TOTAL_POWER);
@@ -108,6 +114,35 @@
         mBatteryHealth = getInteger(cursor, KEY_BATTERY_HEALTH);
     }
 
+    private BatteryHistEntry(
+          BatteryHistEntry fromEntry,
+          long bootTimestamp,
+          long timestamp,
+          double totalPower,
+          double consumePower,
+          long foregroundUsageTimeInMs,
+          long backgroundUsageTimeInMs,
+          int batteryLevel) {
+        mUid = fromEntry.mUid;
+        mUserId = fromEntry.mUserId;
+        mAppLabel = fromEntry.mAppLabel;
+        mPackageName = fromEntry.mPackageName;
+        mIsHidden = fromEntry.mIsHidden;
+        mBootTimestamp = bootTimestamp;
+        mTimestamp = timestamp;
+        mZoneId = fromEntry.mZoneId;
+        mTotalPower = totalPower;
+        mConsumePower = consumePower;
+        mPercentOfTotal = fromEntry.mPercentOfTotal;
+        mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
+        mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
+        mDrainType = fromEntry.mDrainType;
+        mConsumerType = fromEntry.mConsumerType;
+        mBatteryLevel = batteryLevel;
+        mBatteryStatus = fromEntry.mBatteryStatus;
+        mBatteryHealth = fromEntry.mBatteryHealth;
+    }
+
     /** Whether this {@link BatteryHistEntry} is valid or not? */
     public boolean isValidEntry() {
         return mIsValidEntry;
@@ -153,12 +188,14 @@
             .append("\nBatteryHistEntry{")
             .append(String.format("\n\tpackage=%s|label=%s|uid=%d|userId=%d|isHidden=%b",
                   mPackageName, mAppLabel, mUid, mUserId, mIsHidden))
-            .append(String.format("\n\ttimestamp=%s|zoneId=%s", recordAtDateTime, mZoneId))
+            .append(String.format("\n\ttimestamp=%s|zoneId=%s|bootTimestamp=%d",
+                  recordAtDateTime, mZoneId, Duration.ofMillis(mBootTimestamp).getSeconds()))
             .append(String.format("\n\tusage=%f|total=%f|consume=%f|elapsedTime=%d|%d",
                   mPercentOfTotal, mTotalPower, mConsumePower,
                   Duration.ofMillis(mForegroundUsageTimeInMs).getSeconds(),
                   Duration.ofMillis(mBackgroundUsageTimeInMs).getSeconds()))
-            .append(String.format("\n\tdrain=%d|consumer=%d", mDrainType, mConsumerType))
+            .append(String.format("\n\tdrainType=%d|consumerType=%d",
+                  mDrainType, mConsumerType))
             .append(String.format("\n\tbattery=%d|status=%d|health=%d\n}",
                   mBatteryLevel, mBatteryStatus, mBatteryHealth));
         return builder.toString();
@@ -250,4 +287,49 @@
         return false;
     }
 
+    /** Creates new {@link BatteryHistEntry} from interpolation. */
+    public static BatteryHistEntry interpolate(
+            long slotTimestamp,
+            long upperTimestamp,
+            double ratio,
+            BatteryHistEntry lowerHistEntry,
+            BatteryHistEntry upperHistEntry) {
+        final double totalPower = interpolate(
+            lowerHistEntry == null ? 0 : lowerHistEntry.mTotalPower,
+            upperHistEntry.mTotalPower,
+            ratio);
+        final double consumePower = interpolate(
+            lowerHistEntry == null ? 0 : lowerHistEntry.mConsumePower,
+            upperHistEntry.mConsumePower,
+            ratio);
+        final double foregroundUsageTimeInMs = interpolate(
+            lowerHistEntry == null ? 0 : lowerHistEntry.mForegroundUsageTimeInMs,
+            upperHistEntry.mForegroundUsageTimeInMs,
+            ratio);
+        final double backgroundUsageTimeInMs = interpolate(
+            lowerHistEntry == null ? 0 : lowerHistEntry.mBackgroundUsageTimeInMs,
+            upperHistEntry.mBackgroundUsageTimeInMs,
+            ratio);
+        final double batteryLevel =
+            lowerHistEntry == null
+                ? upperHistEntry.mBatteryLevel
+                : interpolate(
+                    lowerHistEntry.mBatteryLevel,
+                    upperHistEntry.mBatteryLevel,
+                    ratio);
+        return new BatteryHistEntry(
+            upperHistEntry,
+            /*bootTimestamp=*/ upperHistEntry.mBootTimestamp
+                - (upperTimestamp - slotTimestamp),
+            /*timestamp=*/ slotTimestamp,
+            totalPower,
+            consumePower,
+            Math.round(foregroundUsageTimeInMs),
+            Math.round(backgroundUsageTimeInMs),
+            (int) Math.round(batteryLevel));
+    }
+
+    private static double interpolate(double v1, double v2, double ratio) {
+        return v1 + ratio * (v2 - v1);
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryUtils.java b/src/com/android/settings/fuelgauge/BatteryUtils.java
index 68a0b03..df11ae1 100644
--- a/src/com/android/settings/fuelgauge/BatteryUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryUtils.java
@@ -23,13 +23,13 @@
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.os.BatteryConsumer;
 import android.os.BatteryStats;
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.BatteryUsageStatsQuery;
 import android.os.Build;
 import android.os.Process;
-import android.os.SystemBatteryConsumer;
 import android.os.SystemClock;
 import android.os.UidBatteryConsumer;
 import android.os.UserHandle;
@@ -195,23 +195,35 @@
     }
 
     /**
-     * Returns true if the specified battery consumer should be excluded from the summary
+     * Returns true if the specified device power component should be excluded from the summary
      * battery consumption list.
      */
-    public boolean shouldHideSystemBatteryConsumer(SystemBatteryConsumer consumer) {
-        switch (consumer.getDrainType()) {
-            case SystemBatteryConsumer.DRAIN_TYPE_IDLE:
-            case SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO:
-            case SystemBatteryConsumer.DRAIN_TYPE_SCREEN:
-            case SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH:
-            case SystemBatteryConsumer.DRAIN_TYPE_WIFI:
+    public boolean shouldHideDevicePowerComponent(BatteryConsumer consumer,
+            @BatteryConsumer.PowerComponent int powerComponentId) {
+        switch (powerComponentId) {
+            case BatteryConsumer.POWER_COMPONENT_IDLE:
+            case BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO:
+            case BatteryConsumer.POWER_COMPONENT_SCREEN:
+            case BatteryConsumer.POWER_COMPONENT_BLUETOOTH:
+            case BatteryConsumer.POWER_COMPONENT_WIFI:
                 return true;
             default:
-                return consumer.getConsumedPower() < MIN_POWER_THRESHOLD_MILLI_AMP_HOURS;
+                return consumer.getConsumedPower(powerComponentId)
+                        < MIN_POWER_THRESHOLD_MILLI_AMP_HOURS;
         }
     }
 
     /**
+     * Returns true if the specified device custom power component should be excluded from the
+     * summary battery consumption list.
+     */
+    public boolean shouldHideCustomDevicePowerComponent(BatteryConsumer consumer,
+            int customPowerComponentId) {
+        return consumer.getConsumedPowerForCustomComponent(customPowerComponentId)
+                < MIN_POWER_THRESHOLD_MILLI_AMP_HOURS;
+    }
+
+    /**
      * Returns true if one the specified packages belongs to a hidden system module.
      */
     public boolean isHiddenSystemModule(String[] packages) {
diff --git a/src/com/android/settings/fuelgauge/ConvertUtils.java b/src/com/android/settings/fuelgauge/ConvertUtils.java
index 7c3ebef..f2c86f5 100644
--- a/src/com/android/settings/fuelgauge/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/ConvertUtils.java
@@ -15,14 +15,9 @@
 
 import android.annotation.IntDef;
 import android.content.ContentValues;
-import android.os.BatteryConsumer;
-import android.os.BatteryUsageStats;
 import android.content.Context;
-import android.os.SystemBatteryConsumer;
-import android.os.UidBatteryConsumer;
-import android.os.UserBatteryConsumer;
+import android.os.BatteryUsageStats;
 import android.os.UserHandle;
-import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -79,61 +74,46 @@
 
     private ConvertUtils() {}
 
-    /** Gets consumer type from {@link BatteryConsumer}. */
-    @ConsumerType
-    public static int getConsumerType(BatteryConsumer consumer) {
-        if (consumer instanceof UidBatteryConsumer) {
-            return CONSUMER_TYPE_UID_BATTERY;
-        } else if (consumer instanceof UserBatteryConsumer) {
-            return CONSUMER_TYPE_USER_BATTERY;
-        } else if (consumer instanceof SystemBatteryConsumer) {
-            return CONSUMER_TYPE_SYSTEM_BATTERY;
-        } else {
-          return CONSUMER_TYPE_UNKNOWN;
-        }
-    }
-
-    /** Gets battery drain type for {@link SystemBatteryConsumer}. */
-    public static int getDrainType(BatteryConsumer consumer) {
-        if (consumer instanceof SystemBatteryConsumer) {
-            return ((SystemBatteryConsumer) consumer).getDrainType();
-        }
-        return INVALID_DRAIN_TYPE;
-    }
-
     public static ContentValues convert(
             BatteryEntry entry,
             BatteryUsageStats batteryUsageStats,
             int batteryLevel,
             int batteryStatus,
             int batteryHealth,
+            long bootTimestamp,
             long timestamp) {
         final ContentValues values = new ContentValues();
         if (entry != null && batteryUsageStats != null) {
-            values.put("uid", Long.valueOf(entry.getUid()));
-            values.put("userId",
+            values.put(BatteryHistEntry.KEY_UID, Long.valueOf(entry.getUid()));
+            values.put(BatteryHistEntry.KEY_USER_ID,
                 Long.valueOf(UserHandle.getUserId(entry.getUid())));
-            values.put("appLabel", entry.getLabel());
-            values.put("packageName", entry.getDefaultPackageName());
-            values.put("isHidden", Boolean.valueOf(entry.isHidden()));
-            values.put("totalPower",
+            values.put(BatteryHistEntry.KEY_APP_LABEL, entry.getLabel());
+            values.put(BatteryHistEntry.KEY_PACKAGE_NAME,
+                entry.getDefaultPackageName());
+            values.put(BatteryHistEntry.KEY_IS_HIDDEN, Boolean.valueOf(entry.isHidden()));
+            values.put(BatteryHistEntry.KEY_TOTAL_POWER,
                 Double.valueOf(batteryUsageStats.getConsumedPower()));
-            values.put("consumePower", Double.valueOf(entry.getConsumedPower()));
-            values.put("percentOfTotal", Double.valueOf(entry.percent));
-            values.put("foregroundUsageTimeInMs",
+            values.put(BatteryHistEntry.KEY_CONSUME_POWER,
+                Double.valueOf(entry.getConsumedPower()));
+            values.put(BatteryHistEntry.KEY_PERCENT_OF_TOTAL,
+                Double.valueOf(entry.percent));
+            values.put(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
                 Long.valueOf(entry.getTimeInForegroundMs()));
-            values.put("backgroundUsageTimeInMs",
+            values.put(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
                 Long.valueOf(entry.getTimeInBackgroundMs()));
-            values.put("drainType", getDrainType(entry.getBatteryConsumer()));
-            values.put("consumerType", getConsumerType(entry.getBatteryConsumer()));
+            values.put(BatteryHistEntry.KEY_DRAIN_TYPE,
+                Integer.valueOf(entry.getPowerComponentId()));
+            values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
+                Integer.valueOf(entry.getConsumerType()));
         } else {
-            values.put("packageName", FAKE_PACKAGE_NAME);
+            values.put(BatteryHistEntry.KEY_PACKAGE_NAME, FAKE_PACKAGE_NAME);
         }
-        values.put("timestamp", Long.valueOf(timestamp));
-        values.put("zoneId", TimeZone.getDefault().getID());
-        values.put("batteryLevel", Integer.valueOf(batteryLevel));
-        values.put("batteryStatus", Integer.valueOf(batteryStatus));
-        values.put("batteryHealth", Integer.valueOf(batteryHealth));
+        values.put(BatteryHistEntry.KEY_BOOT_TIMESTAMP, Long.valueOf(bootTimestamp));
+        values.put(BatteryHistEntry.KEY_TIMESTAMP, Long.valueOf(timestamp));
+        values.put(BatteryHistEntry.KEY_ZONE_ID, TimeZone.getDefault().getID());
+        values.put(BatteryHistEntry.KEY_BATTERY_LEVEL, Integer.valueOf(batteryLevel));
+        values.put(BatteryHistEntry.KEY_BATTERY_STATUS, Integer.valueOf(batteryStatus));
+        values.put(BatteryHistEntry.KEY_BATTERY_HEALTH, Integer.valueOf(batteryHealth));
         return values;
     }
 
diff --git a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
index adfa137..7501897 100644
--- a/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
+++ b/src/com/android/settings/gestures/OneHandedEnablePreferenceController.java
@@ -20,12 +20,12 @@
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
-import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.widget.SettingsMainSwitchPreferenceController;
 
 /**
  * The controller to handle one-handed mode enable or disable state.
  **/
-public class OneHandedEnablePreferenceController extends TogglePreferenceController {
+public class OneHandedEnablePreferenceController extends SettingsMainSwitchPreferenceController {
 
     public OneHandedEnablePreferenceController(Context context, String key) {
         super(context, key);
diff --git a/src/com/android/settings/network/InternetUpdater.java b/src/com/android/settings/network/InternetUpdater.java
index dd70cef..cb8d32c 100644
--- a/src/com/android/settings/network/InternetUpdater.java
+++ b/src/com/android/settings/network/InternetUpdater.java
@@ -20,6 +20,7 @@
 import static android.net.NetworkCapabilities.TRANSPORT_ETHERNET;
 import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
 
+import static androidx.lifecycle.Lifecycle.Event.ON_DESTROY;
 import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE;
 import static androidx.lifecycle.Lifecycle.Event.ON_RESUME;
 
@@ -191,6 +192,12 @@
         mContext.unregisterReceiver(mWifiStateReceiver);
     }
 
+    /** @OnLifecycleEvent(ON_DESTROY) */
+    @OnLifecycleEvent(ON_DESTROY)
+    public void onDestroy() {
+        mAirplaneModeEnabler.close();
+    }
+
     @Override
     public void onAirplaneModeChanged(boolean isAirplaneModeOn) {
         fetchActiveNetwork();
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index c368fa3..3b65221 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -279,9 +279,9 @@
         mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
         mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
         mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
-        mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(),
-                0 /*subId*/,
-                null /*service*/);
+        mDataUsagePreference.setTemplate(
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */), 0 /*subId*/, null /*service*/);
         mResetInternetPreference = findPreference(PREF_KEY_RESET_INTERNET);
         if (mResetInternetPreference != null) {
             mResetInternetPreference.setVisible(false);
diff --git a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
index c4bf6b4..d1c9f7b 100644
--- a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
@@ -42,7 +42,6 @@
 
     private static final String LOG_TAG = "BackupCallingPrefCtrl";
 
-    private int mSubId;
     private Preference mPreference;
 
     /**
diff --git a/src/com/android/settings/network/telephony/Enable2gPreferenceController.java b/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
index d336cb4..5c7d224 100644
--- a/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
+++ b/src/com/android/settings/network/telephony/Enable2gPreferenceController.java
@@ -71,6 +71,10 @@
     @Override
     public int getAvailabilityStatus(int subId) {
         final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
+        if (mTelephonyManager == null) {
+            Log.w(LOG_TAG, "Telephony manager not yet initialized");
+            mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
+        }
         boolean visible =
                 SubscriptionManager.isUsableSubscriptionId(subId)
                 && carrierConfig != null
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index 6952e72..d39f6a4 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -63,6 +63,7 @@
     public EnabledNetworkModePreferenceController(Context context, String key) {
         super(context, key);
         mSubscriptionsListener = new SubscriptionsChangeListener(context, this);
+        mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
     }
 
     @Override
@@ -145,7 +146,6 @@
         mSubId = subId;
         mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(mSubId);
-        mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
         mBuilder = new PreferenceEntriesBuilder(mContext, mSubId);
 
         if (mAllowedNetworkTypesListener == null) {
diff --git a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
index b3421f4..46e1385 100644
--- a/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/VideoCallingPreferenceController.java
@@ -19,7 +19,6 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
-import android.telephony.PhoneStateListener;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
 import android.telephony.TelephonyManager;
@@ -143,6 +142,16 @@
             return false;
         }
 
+        // When called within Settings Search, this variable may still be null.
+        if (mCarrierConfigManager == null) {
+            Log.e(TAG, "CarrierConfigManager set to null.");
+            mCarrierConfigManager = mContext.getSystemService(CarrierConfigManager.class);
+            if (mCarrierConfigManager == null) {
+                Log.e(TAG, "Unable to reinitialize CarrierConfigManager.");
+                return false;
+            }
+        }
+
         final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
         if (carrierConfig == null) {
             return false;
diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
index 67f0c7b..37723b1 100644
--- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
@@ -30,8 +30,7 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.widget.SettingsMainSwitchPreferenceController;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnPause;
 import com.android.settingslib.core.lifecycle.events.OnResume;
@@ -40,9 +39,8 @@
  * Feature level screen for bubbles, available through notification menu.
  * Allows user to turn bubbles on or off for the device.
  */
-public class BubbleNotificationPreferenceController extends TogglePreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
-        LifecycleObserver, OnResume, OnPause {
+public class BubbleNotificationPreferenceController extends
+        SettingsMainSwitchPreferenceController implements LifecycleObserver, OnResume, OnPause {
 
     private static final String TAG = "BubbleNotifPrefContr";
 
@@ -60,9 +58,8 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        Preference preference = screen.findPreference(getPreferenceKey());
-        if (preference != null) {
-            mSettingObserver = new SettingObserver(preference);
+        if (mSwitchPreference != null) {
+            mSettingObserver = new SettingObserver(mSwitchPreference);
         }
     }
 
@@ -87,20 +84,21 @@
     }
 
     @Override
+    public boolean isSliceable() {
+        return false;
+    }
+
+    @Override
     public boolean isChecked() {
-        return Settings.Secure.getInt(mContext.getContentResolver(),
+        return Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        return Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
-                isChecked ? ON : OFF);
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return false;
+        Settings.Global.putInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, isChecked ? ON : OFF);
+        return true;
     }
 
     class SettingObserver extends ContentObserver {
diff --git a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
index 87d25dd..bd45884 100644
--- a/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
+++ b/src/com/android/settings/notification/RecentNotifyingAppsPreferenceController.java
@@ -236,7 +236,7 @@
             final String pkgName = app.getPackage();
             final ApplicationsState.AppEntry appEntry =
                     mApplicationsState.getEntry(app.getPackage(), app.getUserId());
-            if (appEntry == null) {
+            if (appEntry == null || appEntry.label == null) {
                 continue;
             }
 
diff --git a/src/com/android/settings/password/ChooseLockGeneric.java b/src/com/android/settings/password/ChooseLockGeneric.java
index b8e1165..67fc7ef 100644
--- a/src/com/android/settings/password/ChooseLockGeneric.java
+++ b/src/com/android/settings/password/ChooseLockGeneric.java
@@ -975,31 +975,38 @@
 
         private int getResIdForFactoryResetProtectionWarningMessage() {
             final boolean hasFingerprints;
+            final boolean hasFace;
             if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
                 hasFingerprints = mFingerprintManager.hasEnrolledFingerprints(mUserId);
             } else {
                 hasFingerprints = false;
             }
+
+            if (mFaceManager != null && mFaceManager.isHardwareDetected()) {
+                hasFace = mFaceManager.hasEnrolledTemplates(mUserId);
+            } else {
+                hasFace = false;
+            }
+
             switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
                 case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
-                    if (hasFingerprints && mIsManagedProfile) {
-                        return R.string
-                                .unlock_disable_frp_warning_content_pattern_fingerprint_profile;
-                    } else if (hasFingerprints && !mIsManagedProfile) {
+                    if (hasFingerprints && hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_pattern_face_fingerprint;
+                    } else if (hasFingerprints) {
                         return R.string.unlock_disable_frp_warning_content_pattern_fingerprint;
-                    } else if (mIsManagedProfile) {
-                        return R.string.unlock_disable_frp_warning_content_pattern_profile;
+                    } else if (hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_pattern_face;
                     } else {
                         return R.string.unlock_disable_frp_warning_content_pattern;
                     }
                 case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
                 case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX:
-                    if (hasFingerprints && mIsManagedProfile) {
-                        return R.string.unlock_disable_frp_warning_content_pin_fingerprint_profile;
-                    } else if (hasFingerprints && !mIsManagedProfile) {
+                    if (hasFingerprints && hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_pin_face_fingerprint;
+                    } else if (hasFingerprints) {
                         return R.string.unlock_disable_frp_warning_content_pin_fingerprint;
-                    } else if (mIsManagedProfile) {
-                        return R.string.unlock_disable_frp_warning_content_pin_profile;
+                    } else if (hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_pin_face;
                     } else {
                         return R.string.unlock_disable_frp_warning_content_pin;
                     }
@@ -1007,24 +1014,23 @@
                 case DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC:
                 case DevicePolicyManager.PASSWORD_QUALITY_COMPLEX:
                 case DevicePolicyManager.PASSWORD_QUALITY_MANAGED:
-                    if (hasFingerprints && mIsManagedProfile) {
+                    if (hasFingerprints && hasFace) {
                         return R.string
-                                .unlock_disable_frp_warning_content_password_fingerprint_profile;
-                    } else if (hasFingerprints && !mIsManagedProfile) {
+                                .unlock_disable_frp_warning_content_password_face_fingerprint;
+                    } else if (hasFingerprints) {
                         return R.string.unlock_disable_frp_warning_content_password_fingerprint;
-                    } else if (mIsManagedProfile) {
-                        return R.string.unlock_disable_frp_warning_content_password_profile;
+                    } else if (hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_password_face;
                     } else {
                         return R.string.unlock_disable_frp_warning_content_password;
                     }
                 default:
-                    if (hasFingerprints && mIsManagedProfile) {
-                        return R.string
-                                .unlock_disable_frp_warning_content_unknown_fingerprint_profile;
-                    } else if (hasFingerprints && !mIsManagedProfile) {
+                    if (hasFingerprints && hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_unknown_face_fingerprint;
+                    } else if (hasFingerprints) {
                         return R.string.unlock_disable_frp_warning_content_unknown_fingerprint;
-                    } else if (mIsManagedProfile) {
-                        return R.string.unlock_disable_frp_warning_content_unknown_profile;
+                    } else if (hasFace) {
+                        return R.string.unlock_disable_frp_warning_content_unknown_face;
                     } else {
                         return R.string.unlock_disable_frp_warning_content_unknown;
                     }
diff --git a/src/com/android/settings/sound/ResumableMediaAppsController.java b/src/com/android/settings/sound/ResumableMediaAppsController.java
index 383cd41..3c6f8dd 100644
--- a/src/com/android/settings/sound/ResumableMediaAppsController.java
+++ b/src/com/android/settings/sound/ResumableMediaAppsController.java
@@ -29,9 +29,9 @@
 
 import androidx.preference.PreferenceGroup;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
 
 import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.widget.AppSwitchPreference;
 
 import java.util.Collections;
 import java.util.List;
@@ -100,7 +100,7 @@
         }
     }
 
-    class MediaSwitchPreference extends SwitchPreference {
+    class MediaSwitchPreference extends AppSwitchPreference {
         private String mPackageName;
 
         MediaSwitchPreference(Context context, String packageName) {
diff --git a/src/com/android/settings/vpn2/ManageablePreference.java b/src/com/android/settings/vpn2/ManageablePreference.java
index b785186..1aea947 100644
--- a/src/com/android/settings/vpn2/ManageablePreference.java
+++ b/src/com/android/settings/vpn2/ManageablePreference.java
@@ -121,6 +121,7 @@
             final String alwaysOnString = res.getString(R.string.vpn_always_on_summary_active);
             summary = TextUtils.isEmpty(summary) ? alwaysOnString : summary + " / "
                     + alwaysOnString;
+            setSummary(summary);
         } else {
             setSummary(summary);
         }
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java
new file mode 100644
index 0000000..5fa9259
--- /dev/null
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreferenceController.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.widget;
+
+import android.content.Context;
+import android.widget.Switch;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.OnMainSwitchChangeListener;
+
+/**
+ * Preference controller for MainSwitchPreference.
+ */
+public abstract class SettingsMainSwitchPreferenceController extends
+        TogglePreferenceController implements OnMainSwitchChangeListener {
+
+    protected MainSwitchPreference mSwitchPreference;
+
+    public SettingsMainSwitchPreferenceController(Context context, String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        final Preference pref = screen.findPreference(getPreferenceKey());
+        if (pref != null && pref instanceof MainSwitchPreference) {
+            mSwitchPreference = (MainSwitchPreference) pref;
+            mSwitchPreference.addOnSwitchChangeListener(this);
+        }
+    }
+
+    @Override
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        mSwitchPreference.setChecked(isChecked);
+        setChecked(isChecked);
+    }
+}
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index 1e06707..1967371 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -923,7 +923,6 @@
                     return R.string.wifi_ip_settings_invalid_dns;
                 }
                 dnsServers.add(dnsAddr);
-                staticIpConfiguration.getDnsServers().add(dnsAddr);
             }
 
             if (mDns2View.length() > 0) {
@@ -933,14 +932,13 @@
                     return R.string.wifi_ip_settings_invalid_dns;
                 }
                 dnsServers.add(dnsAddr);
-                staticIpConfiguration.getDnsServers().add(dnsAddr);
             }
             staticIPBuilder.setDnsServers(dnsServers);
             return 0;
         } finally {
             // Caller of this method may rely on staticIpConfiguration, so build the final result
             // at the end of the method.
-            staticIpConfiguration = staticIPBuilder.build();
+            mStaticIpConfiguration = staticIPBuilder.build();
         }
     }
 
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index ceacefe..dac65c6 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -261,9 +261,9 @@
         mStatusMessagePreference = findPreference(PREF_KEY_STATUS_MESSAGE);
         mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
         mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
-        mDataUsagePreference.setTemplate(NetworkTemplate.buildTemplateWifiWildcard(),
-                0 /*subId*/,
-                null /*service*/);
+        mDataUsagePreference.setTemplate(
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */), 0 /*subId*/, null /*service*/);
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
index 3c312b8..b66633e 100644
--- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
+++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java
@@ -958,9 +958,11 @@
             mWifiEntry.forget(this);
         }
 
-        mMetricsFeatureProvider.action(
-                mFragment.getActivity(), SettingsEnums.ACTION_WIFI_FORGET);
-        mFragment.getActivity().finish();
+        final Activity activity = mFragment.getActivity();
+        if (activity != null) {
+            mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_WIFI_FORGET);
+            activity.finish();
+        }
     }
 
     @VisibleForTesting
@@ -1135,8 +1137,11 @@
             Log.e(TAG, "Forget Wi-Fi network failed");
         }
 
-        mMetricsFeatureProvider.action(mFragment.getActivity(), SettingsEnums.ACTION_WIFI_FORGET);
-        mFragment.getActivity().finish();
+        final Activity activity = mFragment.getActivity();
+        if (activity != null) {
+            mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_WIFI_FORGET);
+            activity.finish();
+        }
     }
 
     /**
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..47914d8
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonFooterPreferenceControllerTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link AccessibilityButtonFooterPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class AccessibilityButtonFooterPreferenceControllerTest {
+
+    private static final String TEST_KEY = "test_key";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private PreferenceScreen mScreen;
+    private AccessibilityButtonFooterPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
+        final AccessibilityFooterPreference footerPreference =
+                new AccessibilityFooterPreference(mContext);
+        footerPreference.setKey(TEST_KEY);
+        mScreen.addPreference(footerPreference);
+        mController = new AccessibilityButtonFooterPreferenceController(mContext, TEST_KEY);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
+        mController.displayPreference(mScreen);
+
+        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
+        final String packageName = mContext.getString(R.string.accessibility_button_title);
+        final String iconContentDescription = mContext.getString(
+                R.string.accessibility_introduction_title,
+                packageName);
+        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceControllerTest.java
index a67038a..4510d84 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonLocationPreferenceControllerTest.java
@@ -22,7 +22,7 @@
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
-import static com.android.settings.core.BasePreferenceController.DISABLED_DEPENDENT_SETTING;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -69,11 +69,11 @@
     }
 
     @Test
-    public void getAvailabilityStatus_navigationGestureEnabled_returnDisabledDependentSetting() {
+    public void getAvailabilityStatus_navigationGestureEnabled_returnConditionallyUnavailable() {
         when(mResources.getInteger(com.android.internal.R.integer.config_navBarInteractionMode))
                 .thenReturn(NAV_BAR_MODE_GESTURAL);
 
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_DEPENDENT_SETTING);
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java
index eb88175..3065030 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityButtonPreviewPreferenceControllerTest.java
@@ -33,6 +33,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.testutils.ImageTestUtils;
 
 import org.junit.Before;
 import org.junit.Rule;
@@ -73,8 +74,8 @@
 
         final Drawable navigationBarDrawable = mContext.getDrawable(
                 R.drawable.accessibility_button_navigation);
-        assertThat(mController.mPreview.getDrawable().getConstantState()).isEqualTo(
-                navigationBarDrawable.getConstantState());
+        assertThat(ImageTestUtils.drawableToBitmap(mController.mPreview.getDrawable()).sameAs(
+                ImageTestUtils.drawableToBitmap(navigationBarDrawable))).isTrue();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..2f7a16f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityControlTimeoutFooterPreferenceControllerTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link AccessibilityControlTimeoutFooterPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class AccessibilityControlTimeoutFooterPreferenceControllerTest {
+
+    private static final String TEST_KEY = "test_key";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private PreferenceScreen mScreen;
+    private AccessibilityControlTimeoutFooterPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
+        final AccessibilityFooterPreference footerPreference =
+                new AccessibilityFooterPreference(mContext);
+        footerPreference.setKey(TEST_KEY);
+        mScreen.addPreference(footerPreference);
+        mController = new AccessibilityControlTimeoutFooterPreferenceController(mContext, TEST_KEY);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
+        mController.displayPreference(mScreen);
+
+        final AccessibilityFooterPreference footerPreference =
+                mScreen.findPreference(TEST_KEY);
+        final String packageName =
+                mContext.getString(R.string.accessibility_setting_item_control_timeout_title);
+        final String iconContentDescription = mContext.getString(
+                R.string.accessibility_introduction_title,
+                packageName);
+        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
new file mode 100644
index 0000000..1d7ee40
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilityFooterPreferenceTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2019 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settingslib.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+/** Tests for {@link AccessibilityFooterPreference} */
+@RunWith(RobolectricTestRunner.class)
+public final class AccessibilityFooterPreferenceTest {
+
+    private static final String DEFAULT_SUMMARY = "default summary";
+    private static final String DEFAULT_DESCRIPTION = "default description";
+
+    private AccessibilityFooterPreference mAccessibilityFooterPreference;
+    private PreferenceViewHolder mPreferenceViewHolder;
+
+    @Before
+    public void setUp() {
+        final Context context = RuntimeEnvironment.application;
+        mAccessibilityFooterPreference = new AccessibilityFooterPreference(context);
+
+        final LayoutInflater inflater = LayoutInflater.from(context);
+        final View view =
+                inflater.inflate(R.layout.preference_footer, null);
+        mPreferenceViewHolder = PreferenceViewHolder.createInstanceForTests(view);
+    }
+
+    @Test
+    public void onBindViewHolder_initTextConfig_parseTextAndFocusable() {
+        mAccessibilityFooterPreference.setSummary(DEFAULT_SUMMARY);
+
+        mAccessibilityFooterPreference.onBindViewHolder(mPreferenceViewHolder);
+
+        final TextView summaryView = (TextView) mPreferenceViewHolder.findViewById(
+                android.R.id.title);
+        assertThat(summaryView.getText().toString()).isEqualTo(DEFAULT_SUMMARY);
+        assertThat(summaryView.isFocusable()).isEqualTo(true);
+    }
+
+    @Test
+    public void onBindViewHolder_initTextConfigAndAccessibleIcon_groupContentForAccessible() {
+        mAccessibilityFooterPreference.setSummary(DEFAULT_SUMMARY);
+        mAccessibilityFooterPreference.setIconContentDescription(DEFAULT_DESCRIPTION);
+
+        mAccessibilityFooterPreference.onBindViewHolder(mPreferenceViewHolder);
+
+        final TextView summaryView = (TextView) mPreferenceViewHolder.findViewById(
+                android.R.id.title);
+        assertThat(summaryView.getText().toString()).isEqualTo(DEFAULT_SUMMARY);
+        assertThat(summaryView.isFocusable()).isEqualTo(false);
+        final LinearLayout infoFrame = (LinearLayout) mPreferenceViewHolder.findViewById(
+                R.id.icon_frame);
+        assertThat(infoFrame.getContentDescription()).isEqualTo(DEFAULT_DESCRIPTION);
+        assertThat(infoFrame.isFocusable()).isEqualTo(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..b17dfc6
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/CaptionFooterPreferenceControllerTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link CaptionFooterPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class CaptionFooterPreferenceControllerTest {
+
+    private static final String TEST_KEY = "test_key";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private PreferenceScreen mScreen;
+    private CaptionFooterPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
+        final AccessibilityFooterPreference footerPreference =
+                new AccessibilityFooterPreference(mContext);
+        footerPreference.setKey(TEST_KEY);
+        mScreen.addPreference(footerPreference);
+        mController = new CaptionFooterPreferenceController(mContext, TEST_KEY);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
+        mController.displayPreference(mScreen);
+
+        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
+        final String packageName = mContext.getString(R.string.accessibility_captioning_title);
+        final String iconContentDescription = mContext.getString(
+                R.string.accessibility_introduction_title,
+                packageName);
+        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java b/tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java
index ec449d2..45cefe4 100644
--- a/tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/FloatingMenuLayerDrawableTest.java
@@ -24,6 +24,7 @@
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
+import com.android.settings.testutils.ImageTestUtils;
 
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -51,11 +52,10 @@
 
         final Drawable actual1stDrawable = actualDrawable.getDrawable(0);
         final Drawable actual2ndDrawable = actualDrawable.getDrawable(1);
-        // These are VectorDrawables, so it can use getConstantState() to compare.
-        assertThat(actual1stDrawable.getConstantState()).isEqualTo(
-                expected1stDrawable.getConstantState());
-        assertThat(actual2ndDrawable.getConstantState()).isEqualTo(
-                expected2ndDrawable.getConstantState());
+        assertThat(ImageTestUtils.drawableToBitmap(actual1stDrawable).sameAs(
+                ImageTestUtils.drawableToBitmap(expected1stDrawable))).isTrue();
+        assertThat(ImageTestUtils.drawableToBitmap(actual2ndDrawable).sameAs(
+                ImageTestUtils.drawableToBitmap(expected2ndDrawable))).isTrue();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
index 4b053ab..d4b7ea0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationModePreferenceControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.accessibility;
 
-import static androidx.lifecycle.Lifecycle.Event.ON_CREATE;
-
 import static com.android.settings.accessibility.AccessibilityEditDialogUtils.CustomButton;
 import static com.android.settings.accessibility.MagnificationCapabilities.MagnificationMode;
 import static com.android.settings.accessibility.MagnificationModePreferenceController.MagnificationModeInfo;
@@ -25,41 +23,35 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
+import android.app.Dialog;
 import android.content.Context;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.widget.AdapterView;
 import android.widget.ListView;
 
-import androidx.fragment.app.FragmentManager;
 import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 
+import com.android.settings.DialogCreatable;
 import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowDashboardFragment;
-import com.android.settingslib.core.AbstractPreferenceController;
 
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.Mock;
+import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
 
-
+/** Tests for {@link MagnificationModePreferenceController}. */
 @RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowDashboardFragment.class)
 public class MagnificationModePreferenceControllerTest {
     private static final String PREF_KEY = "screen_magnification_mode";
     private static final int MAGNIFICATION_MODE_DEFAULT = MagnificationMode.ALL;
@@ -67,39 +59,38 @@
     @Rule
     public MockitoRule mocks = MockitoJUnit.rule();
 
-    @Mock
     private PreferenceScreen mScreen;
     private Context mContext;
-    private TestMagnificationSettingsFragment mFragment;
     private MagnificationModePreferenceController mController;
     private Preference mModePreference;
+    @Spy
+    private TestDialogHelper mDialogHelper = new TestDialogHelper();
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        mController = new MagnificationModePreferenceController(mContext, PREF_KEY);
-        mScreen = spy(new PreferenceScreen(mContext, null));
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
         mModePreference = new Preference(mContext);
-        mFragment = spy(new TestMagnificationSettingsFragment(mController));
-
-        doReturn(mScreen).when(mFragment).getPreferenceScreen();
-        doReturn(mock(FragmentManager.class, Answers.RETURNS_DEEP_STUBS)).when(
-                mFragment).getChildFragmentManager();
-        mContext.setTheme(R.style.Theme_AppCompat);
-        doReturn(mModePreference).when(mScreen).findPreference(PREF_KEY);
+        mModePreference.setKey(PREF_KEY);
+        mScreen.addPreference(mModePreference);
         MagnificationCapabilities.setCapabilities(mContext, MAGNIFICATION_MODE_DEFAULT);
+        mController = new MagnificationModePreferenceController(mContext, PREF_KEY);
         showPreferenceOnTheScreen(null);
-        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
     }
 
     @Test
-    public void settingsModeIsDefault_checkedModeInDialogIsDefault() {
+    public void clickPreference_settingsModeIsDefault_checkedModeInDialogIsDefault() {
+        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
+
         assertThat(getCheckedModeFromDialog()).isEqualTo(
                 MAGNIFICATION_MODE_DEFAULT);
     }
 
     @Test
     public void choseModeIsDifferentFromInSettings_checkedModeInDialogIsExpected() {
+        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
+
         performItemClickWith(MagnificationMode.WINDOW);
 
         assertThat(getCheckedModeFromDialog()).isEqualTo(MagnificationMode.WINDOW);
@@ -107,11 +98,11 @@
 
     @Test
     public void dialogIsReCreated_settingsModeIsAllAndChoseWindowMode_checkedModeIsWindow() {
-        showPreferenceOnTheScreen(null);
+        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
         performItemClickWith(MagnificationMode.WINDOW);
 
         reshowPreferenceOnTheScreen();
-        mFragment.showDialog(MagnificationModePreferenceController.DIALOG_MAGNIFICATION_MODE);
+        mDialogHelper.showDialog(MagnificationModePreferenceController.DIALOG_MAGNIFICATION_MODE);
 
         assertThat(getCheckedModeFromDialog()).isEqualTo(
                 MagnificationMode.WINDOW);
@@ -120,24 +111,22 @@
     @Test
     public void chooseWindowMode_tripleTapEnabled_showSwitchShortcutDialog() {
         enableTripleTap();
+        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
 
         performItemClickWith(MagnificationMode.WINDOW);
 
-        verify(mFragment).showDialog(
+        verify(mDialogHelper).showDialog(
                 MagnificationModePreferenceController.DIALOG_MAGNIFICATION_SWITCH_SHORTCUT);
     }
 
     @Test
     public void chooseModeAll_modeAllInSettingsAndTripleTapEnabled_notShowShortcutDialog() {
         enableTripleTap();
-        MagnificationCapabilities.setCapabilities(mContext,
-                Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL);
-        mFragment.onCreate(Bundle.EMPTY);
-        mFragment.onCreateDialog(MagnificationModePreferenceController.DIALOG_MAGNIFICATION_MODE);
+        mModePreference.getOnPreferenceClickListener().onPreferenceClick(mModePreference);
 
         performItemClickWith(MagnificationMode.ALL);
 
-        verify(mFragment, never()).showDialog(
+        verify(mDialogHelper, never()).showDialog(
                 MagnificationModePreferenceController.DIALOG_MAGNIFICATION_SWITCH_SHORTCUT);
     }
 
@@ -206,48 +195,38 @@
 
     private void reshowPreferenceOnTheScreen() {
         final Bundle bundle = new Bundle();
-        mFragment.onSaveInstanceState(bundle);
-        mFragment.onDetach();
+        mController.onSaveInstanceState(bundle);
         showPreferenceOnTheScreen(bundle);
-
     }
 
     private void showPreferenceOnTheScreen(Bundle savedInstanceState) {
-        mFragment.onAttach(mContext);
-        mFragment.onCreate(savedInstanceState);
+        mController.setDialogHelper(mDialogHelper);
+        mController.onCreate(savedInstanceState);
         mController.displayPreference(mScreen);
     }
 
-    private static class TestMagnificationSettingsFragment extends MagnificationSettingsFragment {
-
-        TestMagnificationSettingsFragment(AbstractPreferenceController... controllers) {
-            // Add given controllers for injection. Although controllers will be added in
-            // onAttach(). use(AbstractPreferenceController.class) returns the first added one.
-            for (int i = 0; i < controllers.length; i++) {
-                addPreferenceController(controllers[i]);
-            }
-        }
+    private static class TestDialogHelper implements DialogCreatable,
+            MagnificationModePreferenceController.DialogHelper {
+        private DialogCreatable mDialogDelegate;
 
         @Override
-        public void onCreate(Bundle icicle) {
-            super.onCreate(icicle);
-            // Simulate the observable behaviour because ShadowDashFragment doesn't call
-            // super.create.
-
-            getSettingsLifecycle().onCreate(icicle);
-            getSettingsLifecycle().handleLifecycleEvent(ON_CREATE);
-        }
-
-        @Override
-        protected void showDialog(int dialogId) {
-            super.showDialog(dialogId);
-            // In current fragment architecture, we could assume onCreateDialog is called directly.
+        public void showDialog(int dialogId) {
             onCreateDialog(dialogId);
         }
 
         @Override
-        protected void addPreferenceController(AbstractPreferenceController controller) {
-            super.addPreferenceController(controller);
+        public void setDialogDelegate(DialogCreatable delegate) {
+            mDialogDelegate = delegate;
+        }
+
+        @Override
+        public Dialog onCreateDialog(int dialogId) {
+            return mDialogDelegate.onCreateDialog(dialogId);
+        }
+
+        @Override
+        public int getDialogMetricsCategory(int dialogId) {
+            return mDialogDelegate.getDialogMetricsCategory(dialogId);
         }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java
index 789362b..73d29cf 100644
--- a/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/MagnificationSettingsFragmentTest.java
@@ -18,23 +18,78 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.content.Context;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.os.Bundle;
+
+import androidx.fragment.app.FragmentManager;
+import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.testutils.XmlTestUtils;
+import com.android.settings.testutils.shadow.ShadowDashboardFragment;
 
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Answers;
 import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
 
 import java.util.List;
 
 /** Tests for {@link MagnificationSettingsFragment} */
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowDashboardFragment.class)
 public class MagnificationSettingsFragmentTest {
+
     private final Context mContext = ApplicationProvider.getApplicationContext();
+    private MagnificationSettingsFragment mFragment;
+    private PreferenceScreen mScreen;
+
+    @Before
+    public void setup() {
+        mContext.setTheme(R.style.Theme_AppCompat);
+        mFragment = spy(new MagnificationSettingsFragment());
+        mScreen = new PreferenceScreen(mContext, null);
+
+        doReturn(mContext).when(mFragment).getContext();
+        doReturn(mScreen).when(mFragment).getPreferenceScreen();
+        doReturn(mock(FragmentManager.class, Answers.RETURNS_DEEP_STUBS)).when(
+                mFragment).getChildFragmentManager();
+
+    }
+
+    @Test
+    public void showPreferenceOnTheScreen_setDialogHelper() {
+        showPreferenceOnTheScreen(null);
+
+        verify(mFragment).setDialogDelegate(any(MagnificationModePreferenceController.class));
+    }
+
+    @Test
+    public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
+        final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
+        when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
+
+        mFragment.setDialogDelegate(dialogDelegate);
+
+        mFragment.onCreateDialog(1);
+        mFragment.getDialogMetricsCategory(1);
+
+        verify(dialogDelegate).onCreateDialog(1);
+        verify(dialogDelegate).getDialogMetricsCategory(1);
+    }
 
     @Test
     public void getNonIndexableKeys_existInXmlLayout() {
@@ -46,4 +101,10 @@
                         R.xml.accessibility_magnification_service_settings);
         assertThat(keys).containsAtLeastElementsIn(niks);
     }
+
+    private void showPreferenceOnTheScreen(Bundle savedInstanceState) {
+        mFragment.onAttach(mContext);
+        mFragment.onCreate(savedInstanceState);
+        mFragment.onResume();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java
new file mode 100644
index 0000000..c94d62b
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleAutoclickFooterPreferenceControllerTest.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2021 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.accessibility;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link ToggleAutoclickFooterPreferenceController}. */
+@RunWith(RobolectricTestRunner.class)
+public class ToggleAutoclickFooterPreferenceControllerTest {
+
+    private static final String TEST_KEY = "test_key";
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    private PreferenceScreen mScreen;
+    private ToggleAutoclickFooterPreferenceController mController;
+
+    @Before
+    public void setUp() {
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
+        final AccessibilityFooterPreference footerPreference =
+                new AccessibilityFooterPreference(mContext);
+        footerPreference.setKey(TEST_KEY);
+        mScreen.addPreference(footerPreference);
+        mController = new ToggleAutoclickFooterPreferenceController(mContext, TEST_KEY);
+    }
+
+    @Test
+    public void onPreferenceChange_shouldSetCorrectIconContentDescription() {
+        mController.displayPreference(mScreen);
+
+        final AccessibilityFooterPreference footerPreference = mScreen.findPreference(TEST_KEY);
+        final String packageName = mContext.getString(
+                R.string.accessibility_autoclick_preference_title);
+        final String iconContentDescription = mContext.getString(
+                R.string.accessibility_introduction_title,
+                packageName);
+        assertThat(footerPreference.getIconContentDescription()).isEqualTo(iconContentDescription);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
index 6c62f19..4b378c0 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java
@@ -39,6 +39,7 @@
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
 import com.android.settings.R;
@@ -48,6 +49,7 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -63,6 +65,8 @@
     private static final ComponentName PLACEHOLDER_COMPONENT_NAME = new ComponentName(
             PLACEHOLDER_PACKAGE_NAME, PLACEHOLDER_CLASS_NAME);
     private static final String PLACEHOLDER_DIALOG_TITLE = "title";
+    private static final String DEFAULT_SUMMARY = "default summary";
+    private static final String DEFAULT_DESCRIPTION = "default description";
 
     private static final String SOFTWARE_SHORTCUT_KEY =
             Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS;
@@ -70,9 +74,10 @@
             Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE;
 
     private TestToggleFeaturePreferenceFragment mFragment;
+    private PreferenceScreen mScreen;
     private Context mContext = ApplicationProvider.getApplicationContext();
 
-    @Mock
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private PreferenceManager mPreferenceManager;
 
     @Before
@@ -83,7 +88,9 @@
         when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
         when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
         when(mFragment.getContext()).thenReturn(mContext);
-        doReturn(null).when(mFragment).getPreferenceScreen();
+        mScreen = spy(new PreferenceScreen(mContext, null));
+        when(mScreen.getPreferenceManager()).thenReturn(mPreferenceManager);
+        doReturn(mScreen).when(mFragment).getPreferenceScreen();
     }
 
     @Test
@@ -195,6 +202,21 @@
         assertThat(expectedType).isEqualTo(UserShortcutType.SOFTWARE | UserShortcutType.HARDWARE);
     }
 
+    @Test
+    public void createFooterPreference_shouldSetAsExpectedValue() {
+        mFragment.createFooterPreference(mFragment.getPreferenceScreen(),
+                DEFAULT_SUMMARY, DEFAULT_DESCRIPTION);
+
+        AccessibilityFooterPreference accessibilityFooterPreference =
+                (AccessibilityFooterPreference) mFragment.getPreferenceScreen().getPreference(
+                        mFragment.getPreferenceScreen().getPreferenceCount() - 1);
+        assertThat(accessibilityFooterPreference.getSummary()).isEqualTo(DEFAULT_SUMMARY);
+        assertThat(accessibilityFooterPreference.getIconContentDescription()).isEqualTo(
+                DEFAULT_DESCRIPTION);
+        assertThat(accessibilityFooterPreference.isSelectable()).isEqualTo(true);
+        assertThat(accessibilityFooterPreference.getOrder()).isEqualTo(Integer.MAX_VALUE - 1);
+    }
+
     private void putStringIntoSettings(String key, String componentName) {
         Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
     }
diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
index 0ed6747..c8ad94f 100644
--- a/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentTest.java
@@ -23,9 +23,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.ComponentName;
@@ -34,6 +38,7 @@
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.provider.Settings;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -41,21 +46,28 @@
 import androidx.annotation.XmlRes;
 import androidx.appcompat.app.AlertDialog;
 import androidx.fragment.app.FragmentActivity;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.DialogCreatable;
 import com.android.settings.R;
 import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settings.testutils.shadow.ShadowSettingsPreferenceFragment;
+import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.robolectric.Robolectric;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.annotation.Config;
 
 @RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowSettingsPreferenceFragment.class})
 public class ToggleScreenMagnificationPreferenceFragmentTest {
 
     private static final String PLACEHOLDER_PACKAGE_NAME = "com.mock.example";
@@ -79,9 +91,6 @@
     private Context mContext;
     private Resources mResources;
 
-    @Mock
-    private PreferenceManager mPreferenceManager;
-    @Mock
     private FragmentActivity mActivity;
 
     @Before
@@ -89,14 +98,11 @@
         MockitoAnnotations.initMocks(this);
 
         mContext = spy(ApplicationProvider.getApplicationContext());
-        mFragment = spy(new TestToggleScreenMagnificationPreferenceFragment());
-        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
-        when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
-        when(mFragment.getContext()).thenReturn(mContext);
+        mActivity = Robolectric.setupActivity(FragmentActivity.class);
+        mFragment = spy(new TestToggleScreenMagnificationPreferenceFragment(mContext));
         mResources = spy(mContext.getResources());
         when(mContext.getResources()).thenReturn(mResources);
         when(mFragment.getContext().getResources()).thenReturn(mResources);
-        doReturn(null).when(mFragment).getPreferenceScreen();
         doReturn(mActivity).when(mFragment).getActivity();
     }
 
@@ -257,15 +263,38 @@
     }
 
     @Test
-    public void initSettingsPreference_notSupportsMagnificationArea_settingsPreferenceIsNull() {
+    public void onCreateView_notSupportsMagnificationArea_settingsPreferenceIsNull() {
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_magnification_area))
                 .thenReturn(false);
-        mFragment.initSettingsPreference();
+
+        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
 
         assertThat(mFragment.mSettingsPreference).isNull();
     }
 
+    @Test
+    public void onCreateView_setDialogDelegateAndAddTheControllerToLifeCycleObserver() {
+        mFragment.onCreateView(LayoutInflater.from(mContext), mock(ViewGroup.class), Bundle.EMPTY);
+
+        verify(mFragment).setDialogDelegate(any(MagnificationModePreferenceController.class));
+        verify(mFragment.mSpyLifeyCycle).addObserver(
+                any(MagnificationModePreferenceController.class));
+    }
+
+    @Test
+    public void onCreateDialog_setDialogDelegate_invokeDialogDelegate() {
+        final DialogCreatable dialogDelegate = mock(DialogCreatable.class, RETURNS_DEEP_STUBS);
+        when(dialogDelegate.getDialogMetricsCategory(anyInt())).thenReturn(1);
+        mFragment.setDialogDelegate(dialogDelegate);
+
+        mFragment.onCreateDialog(1);
+        mFragment.getDialogMetricsCategory(1);
+
+        verify(dialogDelegate).onCreateDialog(1);
+        verify(dialogDelegate).getDialogMetricsCategory(1);
+    }
+
     private void putStringIntoSettings(String key, String componentName) {
         Settings.Secure.putString(mContext.getContentResolver(), key, componentName);
     }
@@ -291,8 +320,25 @@
 
     private void callEmptyOnClicked(DialogInterface dialog, int which) {}
 
-    public static class TestToggleScreenMagnificationPreferenceFragment
+    /**
+     * a test fragment that initializes PreferenceScreen for testing.
+     */
+    static class TestToggleScreenMagnificationPreferenceFragment
             extends ToggleScreenMagnificationPreferenceFragment {
+
+        private final Lifecycle mSpyLifeyCycle = Mockito.mock(Lifecycle.class);
+
+        private final Context mContext;
+        private final PreferenceManager mPreferenceManager;
+
+        TestToggleScreenMagnificationPreferenceFragment(Context context) {
+            super();
+            mContext = context;
+            mPreferenceManager = new PreferenceManager(context);
+            mPreferenceManager.setPreferences(mPreferenceManager.createPreferenceScreen(context));
+            setArguments(new Bundle());
+        }
+
         @Override
         protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
         }
@@ -313,9 +359,21 @@
         }
 
         @Override
-        public View onCreateView(LayoutInflater inflater, ViewGroup container,
-                Bundle savedInstanceState) {
-            return mock(View.class);
+        public PreferenceScreen getPreferenceScreen() {
+            return mPreferenceManager.getPreferenceScreen();
+        }
+
+        @Override
+        public <T extends Preference> T findPreference(CharSequence key) {
+            if (TextUtils.isEmpty(key)) {
+                return null;
+            }
+            return getPreferenceScreen().findPreference(key);
+        }
+
+        @Override
+        public PreferenceManager getPreferenceManager() {
+            return mPreferenceManager;
         }
 
         @Override
@@ -337,5 +395,15 @@
         protected void updateShortcutPreference() {
             // UI related function, do nothing in tests
         }
+
+        @Override
+        public Lifecycle getSettingsLifecycle() {
+            return mSpyLifeyCycle;
+        }
+
+        @Override
+        public Context getContext() {
+            return mContext;
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/MusicViewHolderControllerTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/MusicViewHolderControllerTest.java
deleted file mode 100644
index fa1b7a2..0000000
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/MusicViewHolderControllerTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.applications.manageapplications;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserHandle;
-import android.os.storage.VolumeInfo;
-import android.provider.DocumentsContract;
-import android.text.format.Formatter;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import androidx.fragment.app.Fragment;
-
-import com.android.settingslib.applications.StorageStatsSource;
-
-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.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class MusicViewHolderControllerTest {
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Fragment mFragment;
-    @Mock
-    private StorageStatsSource mSource;
-
-    private Context mContext;
-    private MusicViewHolderController mController;
-    private ApplicationViewHolder mHolder;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        final String fsUuid = new VolumeInfo("id", 0, null, "id").fsUuid;
-        mController = new MusicViewHolderController(mContext, mSource, fsUuid, UserHandle.of(-1));
-
-        View view = ApplicationViewHolder.newView(new FrameLayout(mContext));
-        mHolder = new ApplicationViewHolder(view);
-    }
-
-    @Test
-    public void storageShouldBeZeroBytesIfQueriedBeforeStorageQueryFinishes() {
-        mController.setupView(mHolder);
-
-        assertThat(mHolder.mSummary.getText().toString()).isEqualTo(
-                Formatter.formatFileSize(mContext, 0));
-    }
-
-    @Test
-    public void storageShouldRepresentStorageStatsQuery() throws Exception {
-        when(mSource.getExternalStorageStats(nullable(String.class), nullable(UserHandle.class)))
-                .thenReturn(new StorageStatsSource.ExternalStorageStats(1, 1, 0, 0, 0));
-
-        mController.queryStats();
-        mController.setupView(mHolder);
-
-        assertThat(mHolder.mSummary.getText().toString()).isEqualTo(
-                Formatter.formatFileSize(mContext, 1));
-    }
-
-    @Test
-    public void clickingShouldIntentIntoFilesApp() {
-        mController.onClick(mFragment);
-
-        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mFragment).startActivity(argumentCaptor.capture());
-        Intent intent = argumentCaptor.getValue();
-
-        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
-        assertThat(intent.getData()).isEqualTo(DocumentsContract.buildRootUri(
-                "com.android.providers.media.documents",
-                "audio_root"));
-        assertThat(intent.getType()).isEqualTo(DocumentsContract.Root.MIME_TYPE_ITEM);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/applications/manageapplications/PhotosViewHolderControllerTest.java b/tests/robotests/src/com/android/settings/applications/manageapplications/PhotosViewHolderControllerTest.java
deleted file mode 100644
index f3c699c..0000000
--- a/tests/robotests/src/com/android/settings/applications/manageapplications/PhotosViewHolderControllerTest.java
+++ /dev/null
@@ -1,101 +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.applications.manageapplications;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserHandle;
-import android.os.storage.VolumeInfo;
-import android.text.format.Formatter;
-import android.view.View;
-import android.widget.FrameLayout;
-
-import androidx.fragment.app.Fragment;
-
-import com.android.settingslib.applications.StorageStatsSource;
-
-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.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(RobolectricTestRunner.class)
-public class PhotosViewHolderControllerTest {
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
-    private Fragment mFragment;
-    @Mock
-    private StorageStatsSource mSource;
-
-    private Context mContext;
-    private PhotosViewHolderController mController;
-    private ApplicationViewHolder mHolder;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-        mContext = RuntimeEnvironment.application;
-        final String fsUuid = new VolumeInfo("id", 0, null, "id").fsUuid;
-        mController = new PhotosViewHolderController(mContext, mSource, fsUuid, UserHandle.of(-1));
-
-        final View view = ApplicationViewHolder.newView(new FrameLayout(mContext));
-        mHolder = new ApplicationViewHolder(view);
-    }
-
-    @Test
-    public void storageShouldBeZeroBytesIfQueriedBeforeStorageQueryFinishes() {
-        mController.setupView(mHolder);
-
-        assertThat(mHolder.mSummary.getText().toString())
-                .isEqualTo(Formatter.formatFileSize(mContext, 0));
-    }
-
-    @Test
-    public void storageShouldRepresentStorageStatsQuery() throws Exception {
-        when(mSource.getExternalStorageStats(nullable(String.class), nullable(UserHandle.class)))
-                .thenReturn(new StorageStatsSource.ExternalStorageStats(1, 0, 1, 10, 0));
-
-        mController.queryStats();
-        mController.setupView(mHolder);
-
-        assertThat(mHolder.mSummary.getText().toString())
-                .isEqualTo(Formatter.formatFileSize(mContext, 11));
-    }
-
-    @Test
-    public void clickingShouldIntentIntoFilesApp() {
-        mController.onClick(mFragment);
-
-        final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mFragment).startActivity(argumentCaptor.capture());
-        Intent intent = argumentCaptor.getValue();
-
-        assertThat(intent.getType()).isEqualTo("image/*");
-        assertThat(intent.getAction()).isEqualTo(android.content.Intent.ACTION_VIEW);
-        assertThat(intent.getBooleanExtra(Intent.EXTRA_FROM_STORAGE, false)).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
index 4348e1b..924e246 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/AvailableMediaBluetoothDeviceUpdaterTest.java
@@ -26,7 +26,9 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
+import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
@@ -62,6 +64,8 @@
     private CachedBluetoothDevice mCachedBluetoothDevice;
     @Mock
     private BluetoothDevice mBluetoothDevice;
+    @Mock
+    private Drawable mDrawable;
 
     private Context mContext;
     private AvailableMediaBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -83,10 +87,12 @@
                 Utils.getLocalBtManager(mContext).getCachedDeviceManager());
         mCachedDevices = new ArrayList<>();
         mShadowCachedBluetoothDeviceManager.setCachedDevicesCopy(mCachedDevices);
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
 
         doReturn(mContext).when(mDashboardFragment).getContext();
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
+        when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
 
         mBluetoothDeviceUpdater = spy(new AvailableMediaBluetoothDeviceUpdater(mContext,
                 mDashboardFragment, mDevicePreferenceCallback));
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
index e0a61fe..6afa56c 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothDeviceUpdaterTest.java
@@ -27,6 +27,8 @@
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
 
 import androidx.preference.Preference;
 
@@ -78,6 +80,8 @@
     private LocalBluetoothManager mLocalManager;
     @Mock
     private CachedBluetoothDeviceManager mCachedDeviceManager;
+    @Mock
+    private Drawable mDrawable;
 
     private Context mContext;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -89,6 +93,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = RuntimeEnvironment.application;
         mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
         mCachedDevices.add(mCachedBluetoothDevice);
@@ -99,6 +104,7 @@
         when(mCachedDeviceManager.getCachedDevicesCopy()).thenReturn(mCachedDevices);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
         when(mSubBluetoothDevice.getAddress()).thenReturn(SUB_MAC_ADDRESS);
+        when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
 
         mPreference = new BluetoothDevicePreference(mContext, mCachedBluetoothDevice,
                 false, BluetoothDevicePreference.SortType.TYPE_DEFAULT);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java
index 34bb069..ea841fa 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/BluetoothPairingDetailTest.java
@@ -35,6 +35,8 @@
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
 import android.content.res.Resources;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
 
 import androidx.preference.PreferenceGroup;
 
@@ -70,6 +72,9 @@
     private PreferenceGroup mPreferenceGroup;
     @Mock
     private CachedBluetoothDevice mCachedBluetoothDevice;
+    @Mock
+    private Drawable mDrawable;
+
     private BluetoothPairingDetail mFragment;
     private Context mContext;
     private BluetoothProgressCategory mAvailableDevicesCategory;
@@ -82,11 +87,13 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = RuntimeEnvironment.application;
         mFragment = spy(new BluetoothPairingDetail());
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mResource).when(mFragment).getResources();
         when(mCachedBluetoothDevice.getAddress()).thenReturn(TEST_DEVICE_ADDRESS);
+        when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
 
         mAvailableDevicesCategory = spy(new BluetoothProgressCategory(mContext));
         mFooterPreference = new FooterPreference(mContext);
diff --git a/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
index 13e138c..ea91fed 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/ConnectedBluetoothDeviceUpdaterTest.java
@@ -28,7 +28,9 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
 import android.media.AudioManager;
+import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
@@ -65,6 +67,8 @@
     private CachedBluetoothDevice mCachedBluetoothDevice;
     @Mock
     private BluetoothDevice mBluetoothDevice;
+    @Mock
+    private Drawable mDrawable;
 
     private Context mContext;
     private ConnectedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -77,6 +81,7 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = RuntimeEnvironment.application;
         mAudioManager = mContext.getSystemService(AudioManager.class);
         mShadowBluetoothAdapter = Shadow.extract(BluetoothAdapter.getDefaultAdapter());
@@ -88,6 +93,7 @@
 
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
+        when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
         mShadowCachedBluetoothDeviceManager.setCachedDevicesCopy(mCachedDevices);
         mBluetoothDeviceUpdater = spy(new ConnectedBluetoothDeviceUpdater(mContext,
                 mDashboardFragment, mDevicePreferenceCallback));
diff --git a/tests/robotests/src/com/android/settings/bluetooth/DevicePickerFragmentTest.java b/tests/robotests/src/com/android/settings/bluetooth/DevicePickerFragmentTest.java
index d9e054d..a05ec87 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/DevicePickerFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/DevicePickerFragmentTest.java
@@ -16,8 +16,11 @@
 
 package com.android.settings.bluetooth;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -66,16 +69,37 @@
     }
 
     @Test
-    public void sendBroadcastWithPermission() {
+    public void callingPackageIsEqualToLaunchPackage_sendBroadcastToLaunchPackage() {
         final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
         final BluetoothDevice bluetoothDevice = mock(BluetoothDevice.class);
         final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
         when(cachedDevice.getDevice()).thenReturn(bluetoothDevice);
         mFragment.mSelectedDevice = bluetoothDevice;
+        mFragment.mLaunchPackage = "com.android.settings";
+        mFragment.mLaunchClass = "com.android.settings.bluetooth.BluetoothPermissionActivity";
+        mFragment.mCallingAppPackageName = "com.android.settings";
 
         mFragment.onDeviceBondStateChanged(cachedDevice, BluetoothDevice.BOND_BONDED);
 
         verify(mContext).sendBroadcast(intentCaptor.capture(),
                 eq("android.permission.BLUETOOTH_ADMIN"));
+        assertThat(intentCaptor.getValue().getComponent().getPackageName())
+                .isEqualTo(mFragment.mLaunchPackage);
+    }
+
+    @Test
+    public void callingPackageIsNotEqualToLaunchPackage_broadcastNotSend() {
+        final CachedBluetoothDevice cachedDevice = mock(CachedBluetoothDevice.class);
+        final BluetoothDevice bluetoothDevice = mock(BluetoothDevice.class);
+        final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
+        when(cachedDevice.getDevice()).thenReturn(bluetoothDevice);
+        mFragment.mSelectedDevice = bluetoothDevice;
+        mFragment.mLaunchPackage = "com.fake.settings";
+        mFragment.mLaunchClass = "com.android.settings.bluetooth.BluetoothPermissionActivity";
+        mFragment.mCallingAppPackageName = "com.android.settings";
+
+        mFragment.onDeviceBondStateChanged(cachedDevice, BluetoothDevice.BOND_BONDED);
+
+        verify(mContext, never()).sendBroadcast(intentCaptor.capture());
     }
 }
diff --git a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
index 20cc59d..78a7a69 100644
--- a/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
+++ b/tests/robotests/src/com/android/settings/bluetooth/SavedBluetoothDeviceUpdaterTest.java
@@ -28,6 +28,8 @@
 import android.bluetooth.BluetoothDevice;
 import android.bluetooth.BluetoothProfile;
 import android.content.Context;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
 
 import com.android.settings.connecteddevice.DevicePreferenceCallback;
 import com.android.settings.dashboard.DashboardFragment;
@@ -69,6 +71,8 @@
     private CachedBluetoothDeviceManager mDeviceManager;
     @Mock
     private LocalBluetoothManager mBluetoothManager;
+    @Mock
+    private Drawable mDrawable;
 
     private Context mContext;
     private SavedBluetoothDeviceUpdater mBluetoothDeviceUpdater;
@@ -78,11 +82,13 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = RuntimeEnvironment.application;
         doReturn(mContext).when(mDashboardFragment).getContext();
         when(mCachedBluetoothDevice.getDevice()).thenReturn(mBluetoothDevice);
         when(mCachedBluetoothDevice.getAddress()).thenReturn(MAC_ADDRESS);
         when(mBluetoothDevice.getBondState()).thenReturn(BluetoothDevice.BOND_BONDED);
+        when(mCachedBluetoothDevice.getDrawableWithDescription()).thenReturn(pairs);
 
         mBluetoothDeviceUpdater = spy(new SavedBluetoothDeviceUpdater(mContext, mDashboardFragment,
                 mDevicePreferenceCallback));
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
index 0e03365..3d8c49a 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
@@ -29,6 +29,8 @@
 import android.bluetooth.BluetoothDevice;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
+import android.util.Pair;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
@@ -100,6 +102,8 @@
     private BluetoothDevice mBluetoothDevice4;
     @Mock
     private BluetoothDevice mBluetoothDevice5;
+    @Mock
+    private Drawable mDrawable;
 
     private Context mContext;
     private PreviouslyConnectedDevicePreferenceController mPreConnectedDeviceController;
@@ -109,6 +113,7 @@
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        Pair<Drawable, String> pairs = new Pair<>(mDrawable, "fake_device");
         mContext = spy(RuntimeEnvironment.application);
         doReturn(mContext).when(mDashboardFragment).getContext();
         doReturn(mPackageManager).when(mContext).getPackageManager();
@@ -120,14 +125,19 @@
 
         when(mCachedDevice1.getDevice()).thenReturn(mBluetoothDevice1);
         when(mCachedDevice1.getAddress()).thenReturn(FAKE_ADDRESS_1);
+        when(mCachedDevice1.getDrawableWithDescription()).thenReturn(pairs);
         when(mCachedDevice2.getDevice()).thenReturn(mBluetoothDevice2);
         when(mCachedDevice2.getAddress()).thenReturn(FAKE_ADDRESS_2);
+        when(mCachedDevice2.getDrawableWithDescription()).thenReturn(pairs);
         when(mCachedDevice3.getDevice()).thenReturn(mBluetoothDevice3);
         when(mCachedDevice3.getAddress()).thenReturn(FAKE_ADDRESS_3);
+        when(mCachedDevice3.getDrawableWithDescription()).thenReturn(pairs);
         when(mCachedDevice4.getDevice()).thenReturn(mBluetoothDevice4);
         when(mCachedDevice4.getAddress()).thenReturn(FAKE_ADDRESS_4);
+        when(mCachedDevice4.getDrawableWithDescription()).thenReturn(pairs);
         when(mCachedDevice5.getDevice()).thenReturn(mBluetoothDevice5);
         when(mCachedDevice5.getAddress()).thenReturn(FAKE_ADDRESS_5);
+        when(mCachedDevice5.getDrawableWithDescription()).thenReturn(pairs);
 
         final List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
         mMostRecentlyConnectedDevices.add(mBluetoothDevice1);
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
index 77d4731..f3e1bce 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDefaultFragmentTest.java
@@ -33,6 +33,7 @@
 
 import android.hardware.usb.UsbManager;
 import android.net.TetheringManager;
+import android.os.Handler;
 
 import androidx.preference.PreferenceScreen;
 
@@ -53,6 +54,8 @@
     private UsbBackend mUsbBackend;
     @Mock
     private TetheringManager mTetheringManager;
+    @Mock
+    private Handler mHandler;
 
     private UsbDefaultFragment mFragment;
 
@@ -62,6 +65,7 @@
         mFragment = new TestFragment();
         mFragment.mUsbBackend = mUsbBackend;
         mFragment.mTetheringManager = mTetheringManager;
+        mFragment.mHandler = mHandler;
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
index ded7d10..f75b7f0 100644
--- a/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/AppDataUsageTest.java
@@ -18,6 +18,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assert.assertNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -309,7 +310,8 @@
         ReflectionHelpers.setField(mFragment, "mContext", context);
         ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
         ReflectionHelpers.setField(mFragment, "mTemplate",
-                NetworkTemplate.buildTemplateWifiWildcard());
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
         final long end = System.currentTimeMillis();
         final long start = end - (DateUtils.WEEK_IN_MILLIS * 4);
 
@@ -334,7 +336,8 @@
         ReflectionHelpers.setField(mFragment, "mContext", context);
         ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
         ReflectionHelpers.setField(mFragment, "mTemplate",
-                NetworkTemplate.buildTemplateWifiWildcard());
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
         final long end = System.currentTimeMillis();
         final long start = end - (DateUtils.WEEK_IN_MILLIS * 4);
 
@@ -365,7 +368,8 @@
         ReflectionHelpers.setField(mFragment, "mCycles", testCycles);
         ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
         ReflectionHelpers.setField(mFragment, "mTemplate",
-                NetworkTemplate.buildTemplateWifiWildcard());
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
 
         final NetworkCycleDataForUidLoader loader = (NetworkCycleDataForUidLoader)
                 mFragment.mUidDataCallbacks.onCreateLoader(0 /* id */, Bundle.EMPTY /* args */);
@@ -436,6 +440,9 @@
         mFragment.onCreate(Bundle.EMPTY);
 
         assertThat(mFragment.mTemplate.getMatchRule())
-                .isEqualTo(NetworkTemplate.MATCH_WIFI_WILDCARD);
+                .isEqualTo(NetworkTemplate.MATCH_WIFI);
+        assertNull(mFragment.mTemplate.getSubscriberId());
+        assertThat(mFragment.mTemplate.getNetworkId())
+                .isEqualTo(NetworkTemplate.WIFI_NETWORKID_ALL);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
index 4a1ea40..1882741 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/storage/StorageItemPreferenceControllerTest.java
@@ -20,6 +20,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.mock;
@@ -30,6 +31,7 @@
 
 import android.content.Context;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
 import android.os.UserHandle;
 import android.os.storage.VolumeInfo;
@@ -172,38 +174,33 @@
     @Test
     public void launchImagesIntent_resolveActionViewNull_settingsIntent() {
         mPreference.setKey(StorageItemPreferenceController.IMAGES_KEY);
+        final Context mockContext = getMockContext();
+        mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
+                mSvp);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mActivity).startActivityAsUser(argumentCaptor.capture(),
-                nullable(UserHandle.class));
+        verify(mockContext).startActivity(argumentCaptor.capture());
 
         final Intent intent = argumentCaptor.getValue();
-        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
-        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
-        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
-                .isEqualTo(ManageApplications.class.getName());
-        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
-                .isEqualTo(R.string.storage_photos_videos);
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
+        assertThat(intent.getData()).isEqualTo(mController.mImagesUri);
     }
 
     @Test
     public void launchAudiosIntent_resolveActionViewNull_settingsIntent() {
         mPreference.setKey(StorageItemPreferenceController.AUDIOS_KEY);
+        final Context mockContext = getMockContext();
+        mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
+                mSvp);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mFragment.getActivity()).startActivityAsUser(argumentCaptor.capture(),
-                nullable(UserHandle.class));
+        verify(mockContext).startActivity(argumentCaptor.capture());
         final Intent intent = argumentCaptor.getValue();
 
-        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
-        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
-        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
-            .isEqualTo(ManageApplications.class.getName());
-        assertThat(intent.getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS).getInt(
-                ManageApplications.EXTRA_STORAGE_TYPE, 0))
-            .isEqualTo(ManageApplications.STORAGE_TYPE_MUSIC);
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
+        assertThat(intent.getData()).isEqualTo(mController.mAudiosUri);
     }
 
     @Test
@@ -270,20 +267,18 @@
 
     @Test
     public void launchDocumentsAndOtherIntent_resolveActionViewNull_settingsIntent() {
-        when(mSvp.findEmulatedForPrivate(nullable(VolumeInfo.class))).thenReturn(mVolume);
-        when(mVolume.buildBrowseIntent()).thenReturn(new Intent());
         mPreference.setKey(StorageItemPreferenceController.DOCUMENTS_AND_OTHER_KEY);
-        assertThat(mController.handlePreferenceTreeClick(mPreference))
-            .isTrue();
+        final Context mockContext = getMockContext();
+        mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
+                mSvp);
+        mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mFragment.getActivity()).startActivityAsUser(argumentCaptor.capture(),
-                nullable(UserHandle.class));
+        verify(mockContext).startActivity(argumentCaptor.capture());
 
         Intent intent = argumentCaptor.getValue();
-        Intent browseIntent = mVolume.buildBrowseIntent();
-        assertThat(intent.getAction()).isEqualTo(browseIntent.getAction());
-        assertThat(intent.getData()).isEqualTo(browseIntent.getData());
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
+        assertThat(intent.getData()).isEqualTo(mController.mDocumentsAndOtherUri);
     }
 
     @Test
@@ -307,19 +302,17 @@
     @Test
     public void launchVideosIntent_resolveActionViewNull_settingsIntent() {
         mPreference.setKey(StorageItemPreferenceController.VIDEOS_KEY);
+        final Context mockContext = getMockContext();
+        mController = new StorageItemPreferenceController(mockContext, mFragment, mVolume,
+                mSvp);
         mController.handlePreferenceTreeClick(mPreference);
 
         final ArgumentCaptor<Intent> argumentCaptor = ArgumentCaptor.forClass(Intent.class);
-        verify(mFragment.getActivity()).startActivityAsUser(argumentCaptor.capture(),
-                nullable(UserHandle.class));
+        verify(mockContext).startActivity(argumentCaptor.capture());
 
         Intent intent = argumentCaptor.getValue();
-        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_MAIN);
-        assertThat(intent.getComponent().getClassName()).isEqualTo(SubSettings.class.getName());
-        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
-            .isEqualTo(ManageApplications.class.getName());
-        assertThat(intent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
-            .isEqualTo(R.string.storage_movies_tv);
+        assertThat(intent.getAction()).isEqualTo(Intent.ACTION_VIEW);
+        assertThat(intent.getData()).isEqualTo(mController.mVideosUri);
     }
 
     @Test
@@ -463,4 +456,16 @@
         assertThat(mController.mSystemPreference.isVisible()).isFalse();
         assertThat(mController.mTrashPreference.isVisible()).isFalse();
     }
+
+    /**
+     * To verify startActivity, these test cases use mock Context because mContext is not an
+     * activity context and AndroidRuntimeException throws for no FLAG_ACTIVITY_NEW_TASK.
+     */
+    private Context getMockContext() {
+        final Resources resources = mock(Resources.class);
+        final Context context = mock(Context.class);
+        when(context.getResources()).thenReturn(resources);
+        when(resources.getString(anyInt())).thenReturn("");
+        return context;
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
index d58d7e8..6c8a8f6 100644
--- a/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/dream/StartNowPreferenceControllerTest.java
@@ -16,43 +16,37 @@
 
 package com.android.settings.dream;
 
-import static com.google.common.truth.Truth.assertThat;
-
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.view.View.OnClickListener;
-import android.widget.Button;
 
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.R;
 import com.android.settingslib.dream.DreamBackend;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
 
 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.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
 import org.robolectric.util.ReflectionHelpers;
 
 @RunWith(RobolectricTestRunner.class)
 public class StartNowPreferenceControllerTest {
 
     private StartNowPreferenceController mController;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
+
     @Mock
     private PreferenceScreen mScreen;
     @Mock
-    private LayoutPreference mLayoutPref;
-    @Mock
-    private Button mButton;
+    private MainSwitchPreference mPref;
     @Mock
     private DreamBackend mBackend;
 
@@ -60,36 +54,38 @@
     public void setup() {
         MockitoAnnotations.initMocks(this);
 
-        mController = new StartNowPreferenceController(mContext);
-        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mLayoutPref);
-        when(mLayoutPref.findViewById(R.id.dream_start_now_button)).thenReturn(mButton);
+        mContext = spy(RuntimeEnvironment.application);
+        mController = new StartNowPreferenceController(mContext, "key");
+        mPref = mock(MainSwitchPreference.class);
+        when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPref);
 
         ReflectionHelpers.setField(mController, "mBackend", mBackend);
     }
 
     @Test
-    public void setsOnClickListenerForStartNow() {
-        ArgumentCaptor<OnClickListener> captor =
-                ArgumentCaptor.forClass(Button.OnClickListener.class);
-
+    public void displayPreference_shouldAddOnSwitchChangeListener() {
         mController.displayPreference(mScreen);
-        verify(mButton).setOnClickListener(captor.capture());
-        assertThat(captor.getValue()).isNotNull();
+
+        verify(mPref).addOnSwitchChangeListener(mController);
     }
 
     @Test
-    public void buttonIsDisabledWhenNeverDreaming() {
+    public void updateState_neverDreaming_preferenceShouldDidabled() {
         when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.NEVER);
+        mController.displayPreference(mScreen);
 
-        mController.updateState(mLayoutPref);
-        verify(mButton).setEnabled(false);
+        mController.updateState(mPref);
+
+        verify(mPref).setEnabled(false);
     }
 
     @Test
-    public void buttonIsEnabledWhenDreamIsAvailable() {
+    public void updateState_dreamIsAvailable_preferenceShouldEnabled() {
         when(mBackend.getWhenToDreamSetting()).thenReturn(DreamBackend.EITHER);
+        mController.displayPreference(mScreen);
 
-        mController.updateState(mLayoutPref);
-        verify(mButton).setEnabled(true);
+        mController.updateState(mPref);
+
+        verify(mPref).setEnabled(true);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryDiffEntryTest.java
index c536b06..58e2b4e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryDiffEntryTest.java
@@ -17,18 +17,17 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 
-import android.content.Context;
 import android.content.ContentValues;
+import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.graphics.drawable.Drawable;
-import android.os.SystemBatteryConsumer;
-import android.os.UserManager;
+import android.os.BatteryConsumer;
 import android.os.UserHandle;
+import android.os.UserManager;
 
 import com.android.settings.R;
 
@@ -114,7 +113,7 @@
         final ContentValues values = getContentValuesWithType(
             ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         values.put("drainType",
-            Integer.valueOf(SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY));
+            Integer.valueOf(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
index 87d4c74..e0f8ba7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryEntryTest.java
@@ -28,9 +28,9 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.os.BatteryConsumer;
 import android.os.Handler;
 import android.os.Process;
-import android.os.SystemBatteryConsumer;
 import android.os.UidBatteryConsumer;
 import android.os.UserBatteryConsumer;
 import android.os.UserManager;
@@ -68,7 +68,6 @@
     @Mock private PackageManager mockPackageManager;
     @Mock private UserManager mockUserManager;
     @Mock private UidBatteryConsumer mUidBatteryConsumer;
-    @Mock private SystemBatteryConsumer mSystemBatteryConsumer;
 
     @Before
     public void stubContextToReturnMockPackageManager() {
@@ -97,11 +96,12 @@
                 consumer, false, packages, packageName);
     }
 
-    private BatteryEntry createSystemBatteryEntry(int drainType) {
-        SystemBatteryConsumer consumer = mock(SystemBatteryConsumer.class);
-        when(consumer.getDrainType()).thenReturn(drainType);
-        return new BatteryEntry(mMockContext, mockHandler, mockUserManager,
-                consumer, false, null, null);
+    private BatteryEntry createAggregateBatteryEntry(int powerComponentId) {
+        return new BatteryEntry(mMockContext, powerComponentId, 200, 100, 1000);
+    }
+
+    private BatteryEntry createCustomAggregateBatteryEntry(int powerComponentId) {
+        return new BatteryEntry(mMockContext, powerComponentId, "CUSTOM", 200, 100);
     }
 
     private BatteryEntry createUserBatteryConsumer(int userId) {
@@ -151,17 +151,23 @@
 
     @Test
     public void batteryEntryForAOD_containCorrectInfo() {
-        final SystemBatteryConsumer systemBatteryConsumer = mock(SystemBatteryConsumer.class);
-        when(systemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_AMBIENT_DISPLAY);
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, mockHandler,
-                mockUserManager, systemBatteryConsumer, false, null, null);
+        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
+                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY, 200, 100, 1000);
 
         assertThat(entry.iconId).isEqualTo(R.drawable.ic_settings_aod);
         assertThat(entry.name).isEqualTo("Ambient display");
     }
 
     @Test
+    public void batteryEntryForCustomComponent_containCorrectInfo() {
+        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
+                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42, "ABC", 200, 100);
+
+        assertThat(entry.iconId).isEqualTo(R.drawable.ic_power_system);
+        assertThat(entry.name).isEqualTo("ABC");
+    }
+
+    @Test
     public void getTimeInForegroundMs_app() {
         final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, mockHandler,
                 mockUserManager, mUidBatteryConsumer, false, null, null);
@@ -173,11 +179,9 @@
     }
 
     @Test
-    public void getTimeInForegroundMs_systemConsumer() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, mockHandler,
-                mockUserManager, mSystemBatteryConsumer, false, null, null);
-
-        when(mSystemBatteryConsumer.getUsageDurationMillis()).thenReturn(100L);
+    public void getTimeInForegroundMs_aggregateBatteryConsumer() {
+        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 10, 20, 100);
 
         assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L);
     }
@@ -195,11 +199,8 @@
 
     @Test
     public void getTimeInBackgroundMs_systemConsumer() {
-        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application, mockHandler,
-                mockUserManager, mSystemBatteryConsumer, false, null, null);
-
-        when(mSystemBatteryConsumer.getUsageDurationMillis())
-                .thenReturn(100L);
+        final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 100, 200, 1000);
 
         assertThat(entry.getTimeInBackgroundMs()).isEqualTo(0);
     }
@@ -225,14 +226,22 @@
     }
 
     @Test
-    public void getKey_SystemBatteryConsumer_returnDrainType() {
-        final BatteryEntry entry =
-                createSystemBatteryEntry(SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH);
+    public void getKey_AggregateBatteryConsumer_returnComponentId() {
+        final BatteryEntry entry = createAggregateBatteryEntry(
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH);
         final String key = entry.getKey();
         assertThat(key).isEqualTo("S|2");
     }
 
     @Test
+    public void getKey_CustomAggregateBatteryConsumer_returnComponentId() {
+        final BatteryEntry entry = createCustomAggregateBatteryEntry(
+                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42);
+        final String key = entry.getKey();
+        assertThat(key).isEqualTo("S|1042");
+    }
+
+    @Test
     public void getKey_UserBatteryConsumer_returnUserId() {
         doReturn(mockUserManager).when(mMockContext).getSystemService(UserManager.class);
         final BatteryEntry entry = createUserBatteryConsumer(2);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
index e4a86b1..ca3109c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
@@ -17,15 +17,12 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 
-import android.database.MatrixCursor;
 import android.content.ContentValues;
-import android.os.BatteryConsumer;
+import android.database.MatrixCursor;
 import android.os.BatteryManager;
 import android.os.BatteryUsageStats;
-import android.os.SystemBatteryConsumer;
 import android.os.UserHandle;
 
 import org.junit.Before;
@@ -44,8 +41,6 @@
     private BatteryEntry mockBatteryEntry;
     @Mock
     private BatteryUsageStats mBatteryUsageStats;
-    @Mock
-    private SystemBatteryConsumer mockSystemBatteryConsumer;
 
     @Before
     public void setUp() {
@@ -65,9 +60,9 @@
         mockBatteryEntry.percent = 0.3;
         when(mockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
         when(mockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
-        when(mockBatteryEntry.getBatteryConsumer())
-            .thenReturn(mockSystemBatteryConsumer);
-        when(mockSystemBatteryConsumer.getDrainType()).thenReturn(expectedType);
+        when(mockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
+        when(mockBatteryEntry.getConsumerType())
+            .thenReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
         final ContentValues values =
             ConvertUtils.convert(
                 mockBatteryEntry,
@@ -75,6 +70,7 @@
                 /*batteryLevel=*/ 12,
                 /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
                 /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
+                /*bootTimestamp=*/ 101L,
                 /*timestamp=*/ 10001L);
 
         assertBatteryHistEntry(
@@ -91,48 +87,15 @@
 
     @Test
     public void testConstructor_cursor_returnsExpectedResult() {
-        final MatrixCursor cursor = new MatrixCursor(
-            new String[] {
-                BatteryHistEntry.KEY_UID,
-                BatteryHistEntry.KEY_USER_ID,
-                BatteryHistEntry.KEY_APP_LABEL,
-                BatteryHistEntry.KEY_PACKAGE_NAME,
-                BatteryHistEntry.KEY_IS_HIDDEN,
-                BatteryHistEntry.KEY_TIMESTAMP,
-                BatteryHistEntry.KEY_ZONE_ID,
-                BatteryHistEntry.KEY_TOTAL_POWER,
-                BatteryHistEntry.KEY_CONSUME_POWER,
-                BatteryHistEntry.KEY_PERCENT_OF_TOTAL,
-                BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
-                BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
-                BatteryHistEntry.KEY_DRAIN_TYPE,
-                BatteryHistEntry.KEY_CONSUMER_TYPE,
-                BatteryHistEntry.KEY_BATTERY_LEVEL,
-                BatteryHistEntry.KEY_BATTERY_STATUS,
-                BatteryHistEntry.KEY_BATTERY_HEALTH});
-        cursor.addRow(
-            new Object[] {
-                Long.valueOf(1001),
-                Long.valueOf(UserHandle.getUserId(1001)),
-                "Settings",
-                "com.google.android.settings.battery",
-                Integer.valueOf(1),
-                Long.valueOf(10001L),
-                TimeZone.getDefault().getID(),
-                Double.valueOf(5.1),
-                Double.valueOf(1.1),
-                Double.valueOf(0.3),
-                Long.valueOf(1234L),
-                Long.valueOf(5689L),
-                Integer.valueOf(3),
-                Integer.valueOf(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY),
-                Integer.valueOf(12),
-                Integer.valueOf(BatteryManager.BATTERY_STATUS_FULL),
-                Integer.valueOf(BatteryManager.BATTERY_HEALTH_COLD)});
-        cursor.moveToFirst();
-
         assertBatteryHistEntry(
-            new BatteryHistEntry(cursor),
+            createBatteryHistEntry(
+                /*bootTimestamp=*/ 101L,
+                /*timestamp=*/ 10001L,
+                /*totalPower=*/ 5.1,
+                /*consumePower=*/ 1.1,
+                /*foregroundUsageTimeInMs=*/ 1234L,
+                /*backgroundUsageTimeInMs=*/ 5689L,
+                /*batteryLevel=*/ 12),
             /*drainType=*/ 3,
             /*percentOfTotal=*/ 0.3);
     }
@@ -141,7 +104,7 @@
     public void testGetKey_consumerUidType_returnExpectedString() {
         final ContentValues values = getContentValuesWithType(
             ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
-        values.put("uid", 3);
+        values.put(BatteryHistEntry.KEY_UID, 3);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         assertThat(batteryHistEntry.getKey()).isEqualTo("3");
@@ -151,7 +114,7 @@
     public void testGetKey_consumerUserType_returnExpectedString() {
         final ContentValues values = getContentValuesWithType(
             ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
-        values.put("userId", 2);
+        values.put(BatteryHistEntry.KEY_USER_ID, 2);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         assertThat(batteryHistEntry.getKey()).isEqualTo("U|2");
@@ -161,7 +124,7 @@
     public void testGetKey_consumerSystemType_returnExpectedString() {
         final ContentValues values = getContentValuesWithType(
             ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
-        values.put("drainType", 1);
+        values.put(BatteryHistEntry.KEY_DRAIN_TYPE, 1);
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
 
         assertThat(batteryHistEntry.getKey()).isEqualTo("S|1");
@@ -197,18 +160,117 @@
             .isFalse();
     }
 
+    @Test
+    public void testInterpolate_returnExpectedResult() {
+        final long slotTimestamp = 200L;
+        final long upperTimestamp = 300L;
+        final long lowerTimestamp = 100L;
+        final double ratio = 0.5;
+        final BatteryHistEntry lowerHistEntry = createBatteryHistEntry(
+            /*bootTimestamp=*/ 1000L,
+            lowerTimestamp,
+            /*totalPower=*/ 50,
+            /*consumePower=*/ 10,
+            /*foregroundUsageTimeInMs=*/ 100,
+            /*backgroundUsageTimeInMs=*/ 200,
+            /*batteryLevel=*/ 90);
+        final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
+            /*bootTimestamp=*/ 1200L,
+            upperTimestamp,
+            /*totalPower=*/ 80,
+            /*consumePower=*/ 20,
+            /*foregroundUsageTimeInMs=*/ 200,
+            /*backgroundUsageTimeInMs=*/ 300,
+            /*batteryLevel=*/ 80);
+
+        final BatteryHistEntry newEntry =
+            BatteryHistEntry.interpolate(
+                slotTimestamp,
+                upperTimestamp,
+                ratio,
+                lowerHistEntry,
+                upperHistEntry);
+
+        assertBatteryHistEntry(
+            newEntry, 3, upperHistEntry.mPercentOfTotal,
+            /*bootTimestamp=*/ 1200 - 100,
+            /*timestamp=*/ slotTimestamp,
+            /*totalPower=*/ 50 + 0.5 * (80 - 50),
+            /*consumePower=*/ 10 + 0.5 * (20 - 10),
+            /*foregroundUsageTimeInMs=*/ Math.round(100 + 0.5 * (200 - 100)),
+            /*backgroundUsageTimeInMs=*/ Math.round(200 + 0.5 * (300 - 200)),
+            /*batteryLevel=*/ (int) Math.round(90 + 0.5 * (80 - 90)));
+    }
+
+    @Test
+    public void testInterpolate_withoutLowerEntryData_returnExpectedResult() {
+        final long slotTimestamp = 200L;
+        final long upperTimestamp = 300L;
+        final long lowerTimestamp = 100L;
+        final double ratio = 0.5;
+        final BatteryHistEntry upperHistEntry = createBatteryHistEntry(
+            /*bootTimestamp=*/ 1200L,
+            upperTimestamp,
+            /*totalPower=*/ 80,
+            /*consumePower=*/ 20,
+            /*foregroundUsageTimeInMs=*/ 200,
+            /*backgroundUsageTimeInMs=*/ 300,
+            /*batteryLevel=*/ 80);
+
+        final BatteryHistEntry newEntry =
+            BatteryHistEntry.interpolate(
+                slotTimestamp,
+                upperTimestamp,
+                ratio,
+                /*lowerHistEntry=*/ null,
+                upperHistEntry);
+
+        assertBatteryHistEntry(
+            newEntry, 3, upperHistEntry.mPercentOfTotal,
+            /*bootTimestamp=*/ 1200 - 100,
+            /*timestamp=*/ slotTimestamp,
+            /*totalPower=*/ 0.5 * 80,
+            /*consumePower=*/ 0.5 * 20,
+            /*foregroundUsageTimeInMs=*/ Math.round(0.5 * 200),
+            /*backgroundUsageTimeInMs=*/ Math.round(0.5 * 300),
+            /*batteryLevel=*/ upperHistEntry.mBatteryLevel);
+    }
+
     private static BatteryHistEntry createEntry(int consumerType) {
         return new BatteryHistEntry(getContentValuesWithType(consumerType));
     }
 
     private static ContentValues getContentValuesWithType(int consumerType) {
         final ContentValues values = new ContentValues();
-        values.put("consumerType", Integer.valueOf(consumerType));
+        values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
+            Integer.valueOf(consumerType));
         return values;
     }
 
     private void assertBatteryHistEntry(
-        BatteryHistEntry entry, int drainType, double percentOfTotal) {
+            BatteryHistEntry entry, int drainType, double percentOfTotal) {
+        assertBatteryHistEntry(
+            entry, drainType, percentOfTotal,
+            /*bootTimestamp=*/ 101L,
+            /*timestamp=*/ 10001L,
+            /*totalPower=*/ 5.1,
+            /*consumePower=*/ 1.1,
+            /*foregroundUsageTimeInMs=*/ 1234L,
+            /*backgroundUsageTimeInMs=*/ 5689L,
+            /*batteryLevel=*/ 12);
+    }
+
+    private void assertBatteryHistEntry(
+            BatteryHistEntry entry,
+            int drainType,
+            double percentOfTotal,
+            long bootTimestamp,
+            long timestamp,
+            double totalPower,
+            double consumePower,
+            long foregroundUsageTimeInMs,
+            long backgroundUsageTimeInMs,
+            int batteryLevel) {
         assertThat(entry.isValidEntry()).isTrue();
         assertThat(entry.mUid).isEqualTo(1001);
         assertThat(entry.mUserId).isEqualTo(UserHandle.getUserId(1001));
@@ -216,20 +278,73 @@
         assertThat(entry.mPackageName)
             .isEqualTo("com.google.android.settings.battery");
         assertThat(entry.mIsHidden).isTrue();
-        assertThat(entry.mTimestamp).isEqualTo(10001L);
+        assertThat(entry.mBootTimestamp).isEqualTo(bootTimestamp);
+        assertThat(entry.mTimestamp).isEqualTo(timestamp);
         assertThat(entry.mZoneId).isEqualTo(TimeZone.getDefault().getID());
-        assertThat(entry.mTotalPower).isEqualTo(5.1);
-        assertThat(entry.mConsumePower).isEqualTo(1.1);
+        assertThat(entry.mTotalPower).isEqualTo(totalPower);
+        assertThat(entry.mConsumePower).isEqualTo(consumePower);
         assertThat(entry.mPercentOfTotal).isEqualTo(percentOfTotal);
-        assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(1234L);
-        assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(5689L);
+        assertThat(entry.mForegroundUsageTimeInMs).isEqualTo(foregroundUsageTimeInMs);
+        assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
         assertThat(entry.mDrainType).isEqualTo(drainType);
         assertThat(entry.mConsumerType)
             .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
-        assertThat(entry.mBatteryLevel).isEqualTo(12);
+        assertThat(entry.mBatteryLevel).isEqualTo(batteryLevel);
         assertThat(entry.mBatteryStatus)
             .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
         assertThat(entry.mBatteryHealth)
             .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
     }
+
+    private BatteryHistEntry createBatteryHistEntry(
+            long bootTimestamp,
+            long timestamp,
+            double totalPower,
+            double consumePower,
+            long foregroundUsageTimeInMs,
+            long backgroundUsageTimeInMs,
+            int batteryLevel) {
+        final MatrixCursor cursor = new MatrixCursor(
+            new String[] {
+                BatteryHistEntry.KEY_UID,
+                BatteryHistEntry.KEY_USER_ID,
+                BatteryHistEntry.KEY_APP_LABEL,
+                BatteryHistEntry.KEY_PACKAGE_NAME,
+                BatteryHistEntry.KEY_IS_HIDDEN,
+                BatteryHistEntry.KEY_BOOT_TIMESTAMP,
+                BatteryHistEntry.KEY_TIMESTAMP,
+                BatteryHistEntry.KEY_ZONE_ID,
+                BatteryHistEntry.KEY_TOTAL_POWER,
+                BatteryHistEntry.KEY_CONSUME_POWER,
+                BatteryHistEntry.KEY_PERCENT_OF_TOTAL,
+                BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
+                BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
+                BatteryHistEntry.KEY_DRAIN_TYPE,
+                BatteryHistEntry.KEY_CONSUMER_TYPE,
+                BatteryHistEntry.KEY_BATTERY_LEVEL,
+                BatteryHistEntry.KEY_BATTERY_STATUS,
+                BatteryHistEntry.KEY_BATTERY_HEALTH});
+        cursor.addRow(
+            new Object[] {
+                Long.valueOf(1001),
+                Long.valueOf(UserHandle.getUserId(1001)),
+                "Settings",
+                "com.google.android.settings.battery",
+                Integer.valueOf(1),
+                Long.valueOf(bootTimestamp),
+                Long.valueOf(timestamp),
+                TimeZone.getDefault().getID(),
+                Double.valueOf(totalPower),
+                Double.valueOf(consumePower),
+                Double.valueOf(0.3),
+                Long.valueOf(foregroundUsageTimeInMs),
+                Long.valueOf(backgroundUsageTimeInMs),
+                Integer.valueOf(3),
+                Integer.valueOf(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY),
+                Integer.valueOf(batteryLevel),
+                Integer.valueOf(BatteryManager.BATTERY_STATUS_FULL),
+                Integer.valueOf(BatteryManager.BATTERY_HEALTH_COLD)});
+        cursor.moveToFirst();
+        return new BatteryHistEntry(cursor);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
index 744db8c..1259cdd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryUtilsTest.java
@@ -44,12 +44,12 @@
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
+import android.os.BatteryConsumer;
 import android.os.BatteryStats;
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.Build;
 import android.os.Process;
-import android.os.SystemBatteryConsumer;
 import android.os.SystemClock;
 
 import com.android.settings.fuelgauge.batterytip.AnomalyDatabaseHelper;
@@ -113,7 +113,7 @@
     @Mock
     private BatteryUsageStats mBatteryUsageStats;
     @Mock
-    private SystemBatteryConsumer mSystemBatteryConsumer;
+    private BatteryConsumer mAggregateBatteryConsumer;
     @Mock
     private BatteryInfo mBatteryInfo;
     @Mock
@@ -218,53 +218,47 @@
 
     @Test
     public void testShouldHideSystemConsumer_TypeIdle_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_IDLE);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_IDLE)).isTrue();
     }
 
     @Test
     public void testShouldHideSystemConsumer_TypeMobileRadio_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_MOBILE_RADIO);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_MOBILE_RADIO)).isTrue();
     }
 
     @Test
     public void testShouldHideSystemConsumer_TypeScreen_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_SCREEN);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_SCREEN)).isTrue();
     }
 
     @Test
     public void testShouldHideSystemConsumer_TypeBluetooth_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_BLUETOOTH);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
-    }
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH)).isTrue();    }
 
     @Test
     public void testShouldHideSystemConsumer_TypeWifi_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_WIFI);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_WIFI)).isTrue();
     }
 
     @Test
     public void testShouldHideSystemConsumer_LowPower_ReturnTrue() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT);
-        when(mSystemBatteryConsumer.getConsumedPower()).thenReturn(0.0005);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isTrue();
+        when(mAggregateBatteryConsumer.getConsumedPower(
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)).thenReturn(0.0005);
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)).isTrue();
     }
 
     @Test
     public void testShouldHideSystemConsumer_HighPower_ReturnFalse() {
-        when(mSystemBatteryConsumer.getDrainType())
-                .thenReturn(SystemBatteryConsumer.DRAIN_TYPE_FLASHLIGHT);
-        when(mSystemBatteryConsumer.getConsumedPower()).thenReturn(0.5);
-        assertThat(mBatteryUtils.shouldHideSystemBatteryConsumer(mSystemBatteryConsumer)).isFalse();
+        when(mAggregateBatteryConsumer.getConsumedPower(
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)).thenReturn(0.5);
+        assertThat(mBatteryUtils.shouldHideDevicePowerComponent(mAggregateBatteryConsumer,
+                BatteryConsumer.POWER_COMPONENT_FLASHLIGHT)).isFalse();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java
index c9c9f3b..9539f0e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/ConvertUtilsTest.java
@@ -17,18 +17,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 import android.content.ContentValues;
 import android.content.Context;
-import android.os.BatteryConsumer;
 import android.os.BatteryManager;
 import android.os.BatteryUsageStats;
-import android.os.SystemBatteryConsumer;
-import android.os.UidBatteryConsumer;
-import android.os.UserBatteryConsumer;
 import android.os.UserHandle;
 
 import org.junit.Before;
@@ -39,12 +34,10 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -56,14 +49,6 @@
     private BatteryUsageStats mBatteryUsageStats;
     @Mock
     private BatteryEntry mockBatteryEntry;
-    @Mock
-    private BatteryConsumer mockBatteryConsumer;
-    @Mock
-    private UidBatteryConsumer mockUidBatteryConsumer;
-    @Mock
-    private UserBatteryConsumer mockUserBatteryConsumer;
-    @Mock
-    private SystemBatteryConsumer mockSystemBatteryConsumer;
 
     @Before
     public void setUp() {
@@ -84,9 +69,9 @@
         mockBatteryEntry.percent = 0.3;
         when(mockBatteryEntry.getTimeInForegroundMs()).thenReturn(1234L);
         when(mockBatteryEntry.getTimeInBackgroundMs()).thenReturn(5689L);
-        when(mockBatteryEntry.getBatteryConsumer())
-            .thenReturn(mockSystemBatteryConsumer);
-        when(mockSystemBatteryConsumer.getDrainType()).thenReturn(expectedType);
+        when(mockBatteryEntry.getPowerComponentId()).thenReturn(expectedType);
+        when(mockBatteryEntry.getConsumerType())
+            .thenReturn(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
 
         final ContentValues values =
             ConvertUtils.convert(
@@ -95,30 +80,36 @@
                 /*batteryLevel=*/ 12,
                 /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
                 /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
+                /*bootTimestamp=*/ 101L,
                 /*timestamp=*/ 10001L);
 
-        assertThat(values.getAsLong("uid")).isEqualTo(1001L);
-        assertThat(values.getAsLong("userId"))
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_UID)).isEqualTo(1001L);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_USER_ID))
             .isEqualTo(UserHandle.getUserId(1001));
-        assertThat(values.getAsString("appLabel")).isEqualTo("Settings");
-        assertThat(values.getAsString("packageName"))
+        assertThat(values.getAsString(BatteryHistEntry.KEY_APP_LABEL))
+            .isEqualTo("Settings");
+        assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME))
             .isEqualTo("com.google.android.settings.battery");
-        assertThat(values.getAsBoolean("isHidden")).isTrue();
-        assertThat(values.getAsLong("timestamp")).isEqualTo(10001L);
-        assertThat(values.getAsString("zoneId"))
+        assertThat(values.getAsBoolean(BatteryHistEntry.KEY_IS_HIDDEN)).isTrue();
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_BOOT_TIMESTAMP))
+            .isEqualTo(101L);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP)).isEqualTo(10001L);
+        assertThat(values.getAsString(BatteryHistEntry.KEY_ZONE_ID))
             .isEqualTo(TimeZone.getDefault().getID());
-        assertThat(values.getAsDouble("totalPower")).isEqualTo(5.1);
-        assertThat(values.getAsDouble("consumePower")).isEqualTo(1.1);
-        assertThat(values.getAsDouble("percentOfTotal")).isEqualTo(0.3);
-        assertThat(values.getAsLong("foregroundUsageTimeInMs")).isEqualTo(1234L);
-        assertThat(values.getAsLong("backgroundUsageTimeInMs")).isEqualTo(5689L);
-        assertThat(values.getAsInteger("drainType")).isEqualTo(expectedType);
-        assertThat(values.getAsInteger("consumerType"))
+        assertThat(values.getAsDouble(BatteryHistEntry.KEY_TOTAL_POWER)).isEqualTo(5.1);
+        assertThat(values.getAsDouble(BatteryHistEntry.KEY_CONSUME_POWER)).isEqualTo(1.1);
+        assertThat(values.getAsDouble(BatteryHistEntry.KEY_PERCENT_OF_TOTAL)).isEqualTo(0.3);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME))
+            .isEqualTo(1234L);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME))
+            .isEqualTo(5689L);
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_DRAIN_TYPE)).isEqualTo(expectedType);
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_CONSUMER_TYPE))
             .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
-        assertThat(values.getAsInteger("batteryLevel")).isEqualTo(12);
-        assertThat(values.getAsInteger("batteryStatus"))
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_LEVEL)).isEqualTo(12);
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_STATUS))
             .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
-        assertThat(values.getAsInteger("batteryHealth"))
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_HEALTH))
             .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
     }
 
@@ -131,53 +122,25 @@
                 /*batteryLevel=*/ 12,
                 /*batteryStatus=*/ BatteryManager.BATTERY_STATUS_FULL,
                 /*batteryHealth=*/ BatteryManager.BATTERY_HEALTH_COLD,
+                /*bootTimestamp=*/ 101L,
                 /*timestamp=*/ 10001L);
 
-        assertThat(values.getAsLong("timestamp")).isEqualTo(10001L);
-        assertThat(values.getAsString("zoneId"))
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_BOOT_TIMESTAMP))
+            .isEqualTo(101L);
+        assertThat(values.getAsLong(BatteryHistEntry.KEY_TIMESTAMP))
+            .isEqualTo(10001L);
+        assertThat(values.getAsString(BatteryHistEntry.KEY_ZONE_ID))
             .isEqualTo(TimeZone.getDefault().getID());
-        assertThat(values.getAsInteger("batteryLevel")).isEqualTo(12);
-        assertThat(values.getAsInteger("batteryStatus"))
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_LEVEL)).isEqualTo(12);
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_STATUS))
             .isEqualTo(BatteryManager.BATTERY_STATUS_FULL);
-        assertThat(values.getAsInteger("batteryHealth"))
+        assertThat(values.getAsInteger(BatteryHistEntry.KEY_BATTERY_HEALTH))
             .isEqualTo(BatteryManager.BATTERY_HEALTH_COLD);
-        assertThat(values.getAsString("packageName"))
+        assertThat(values.getAsString(BatteryHistEntry.KEY_PACKAGE_NAME))
             .isEqualTo(ConvertUtils.FAKE_PACKAGE_NAME);
     }
 
     @Test
-    public void testGetDrainType_returnsExpetcedResult() {
-        final int expectedType = 3;
-        when(mockSystemBatteryConsumer.getDrainType())
-            .thenReturn(expectedType);
-
-        assertThat(ConvertUtils.getDrainType(mockSystemBatteryConsumer))
-            .isEqualTo(expectedType);
-    }
-
-    @Test
-    public void testGetDrainType_notValidConsumer_returnsInvalidTypeValue() {
-        assertThat(ConvertUtils.getDrainType(mockUserBatteryConsumer))
-            .isEqualTo(ConvertUtils.INVALID_DRAIN_TYPE);
-    }
-
-    @Test
-    public void testGetConsumerType_returnsExpetcedResult() {
-        assertThat(ConvertUtils.getConsumerType(mockUidBatteryConsumer))
-            .isEqualTo(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
-        assertThat(ConvertUtils.getConsumerType(mockUserBatteryConsumer))
-            .isEqualTo(ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
-        assertThat(ConvertUtils.getConsumerType(mockSystemBatteryConsumer))
-            .isEqualTo(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
-    }
-
-    @Test
-    public void testGetConsumeType_invalidConsumer_returnsInvalidType() {
-          assertThat(ConvertUtils.getConsumerType(mockBatteryConsumer))
-              .isEqualTo(ConvertUtils.CONSUMER_TYPE_UNKNOWN);
-    }
-
-    @Test
     public void testGetIndexedUsageMap_returnsExpectedResult() {
         // Creates the fake testing data.
         final int timeSlotSize = 2;
@@ -287,14 +250,16 @@
             long uid, long foregroundUsageTimeInMs, long backgroundUsageTimeInMs) {
         // Only insert required fields.
         final ContentValues values = new ContentValues();
-        values.put("packageName", packageName);
-        values.put("appLabel", appLabel);
-        values.put("uid", Long.valueOf(uid));
-        values.put("consumerType",
+        values.put(BatteryHistEntry.KEY_PACKAGE_NAME, packageName);
+        values.put(BatteryHistEntry.KEY_APP_LABEL, appLabel);
+        values.put(BatteryHistEntry.KEY_UID, Long.valueOf(uid));
+        values.put(BatteryHistEntry.KEY_CONSUMER_TYPE,
             Integer.valueOf(ConvertUtils.CONSUMER_TYPE_UID_BATTERY));
-        values.put("consumePower", consumePower);
-        values.put("foregroundUsageTimeInMs", Long.valueOf(foregroundUsageTimeInMs));
-        values.put("backgroundUsageTimeInMs", Long.valueOf(backgroundUsageTimeInMs));
+        values.put(BatteryHistEntry.KEY_CONSUME_POWER, consumePower);
+        values.put(BatteryHistEntry.KEY_FOREGROUND_USAGE_TIME,
+            Long.valueOf(foregroundUsageTimeInMs));
+        values.put(BatteryHistEntry.KEY_BACKGROUND_USAGE_TIME,
+            Long.valueOf(backgroundUsageTimeInMs));
         return new BatteryHistEntry(values);
     }
 
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
index 4f38c46..8d643ad 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -26,17 +26,15 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.app.ActivityManager;
 import android.content.Context;
 import android.provider.Settings;
 
-import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.widget.MainSwitchPreference;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -57,7 +55,7 @@
     private PreferenceScreen mScreen;
 
     private BubbleNotificationPreferenceController mController;
-    private Preference mPreference;
+    private MainSwitchPreference mPreference;
 
     private static final String KEY_NOTIFICATION_BUBBLES = "notification_bubbles";
 
@@ -67,15 +65,16 @@
         mContext = RuntimeEnvironment.application;
         mController = new BubbleNotificationPreferenceController(mContext,
                 KEY_NOTIFICATION_BUBBLES);
-        mPreference = new Preference(RuntimeEnvironment.application);
+        mPreference = new MainSwitchPreference(RuntimeEnvironment.application);
         mPreference.setKey(mController.getPreferenceKey());
         when(mScreen.findPreference(mPreference.getKey())).thenReturn(mPreference);
+        mController.displayPreference(mScreen);
     }
 
     @Test
     public void isAvailable_lowRam_returnsUnsupported() {
         final ShadowActivityManager activityManager =
-               Shadow.extract(mContext.getSystemService(ActivityManager.class));
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
         activityManager.setIsLowRamDevice(true);
         assertEquals(UNSUPPORTED_ON_DEVICE, mController.getAvailabilityStatus());
     }
@@ -83,45 +82,40 @@
     @Test
     public void isAvailable_notLowRam_returnsAvailable() {
         final ShadowActivityManager activityManager =
-               Shadow.extract(mContext.getSystemService(ActivityManager.class));
+                Shadow.extract(mContext.getSystemService(ActivityManager.class));
         activityManager.setIsLowRamDevice(false);
         assertEquals(AVAILABLE, mController.getAvailabilityStatus());
     }
 
     @Test
-    public void updateState_settingIsOn_preferenceSetChecked() {
-        final TwoStatePreference preference = mock(TwoStatePreference.class);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
-
-        mController.updateState(preference);
-
-        verify(preference).setChecked(true);
-    }
-
-    @Test
     public void updateState_settingIsOff_preferenceSetUnchecked() {
-        final TwoStatePreference preference = mock(TwoStatePreference.class);
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
-        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON)).isEqualTo(OFF);
 
-        mController.updateState(preference);
+        mPreference.updateStatus(false);
 
-        verify(preference).setChecked(false);
+        assertThat(mPreference.isChecked()).isFalse();
     }
 
     @Test
-    public void isChecked_settingIsOff_shouldReturnFalse() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+    public void onSwitchChanged_true_settingIsOff_flagShouldOn() {
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
-        assertThat(mController.isChecked()).isFalse();
+        mController.onSwitchChanged(null, true);
+
+        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, OFF)).isEqualTo(ON);
     }
 
     @Test
-    public void isChecked_settingIsOn_shouldReturnTrue() {
-        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
+    public void onSwitchChanged_false_settingIsOn_flagShouldOff() {
+        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
-        assertThat(mController.isChecked()).isTrue();
+        mController.onSwitchChanged(null, false);
+
+        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, ON)).isEqualTo(OFF);
     }
 
     @Test
@@ -129,8 +123,8 @@
         Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
         mController.setChecked(false);
-        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, -1);
+        int updatedValue = Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, ON);
 
         assertThat(updatedValue).isEqualTo(OFF);
     }
@@ -140,8 +134,8 @@
         Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
         mController.setChecked(true);
-        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, -1);
+        int updatedValue = Settings.Global.getInt(mContext.getContentResolver(),
+                NOTIFICATION_BUBBLES, OFF);
 
         assertThat(updatedValue).isEqualTo(ON);
     }
diff --git a/tests/robotests/src/com/android/settings/testutils/ImageTestUtils.java b/tests/robotests/src/com/android/settings/testutils/ImageTestUtils.java
new file mode 100644
index 0000000..d7afe87
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/ImageTestUtils.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils;
+
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.drawable.Drawable;
+
+import androidx.annotation.Nullable;
+
+/**
+ * Utilities for testing images within unit tests.
+ */
+public class ImageTestUtils {
+
+    /** Converts the drawable object to bitmap. */
+    @Nullable
+    public static Bitmap drawableToBitmap(@Nullable Drawable drawable) {
+        if (drawable == null) {
+            return null;
+        }
+
+        final Bitmap bitmap =
+                Bitmap.createBitmap(
+                        drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(),
+                        Bitmap.Config.ARGB_8888);
+        final Canvas canvas = new Canvas(bitmap);
+        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
+        drawable.draw(canvas);
+
+        return bitmap;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSettingsPreferenceFragment.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSettingsPreferenceFragment.java
new file mode 100644
index 0000000..27fca62
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowSettingsPreferenceFragment.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils.shadow;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.android.settings.SettingsPreferenceFragment;
+
+import org.robolectric.annotation.Implementation;
+import org.robolectric.annotation.Implements;
+
+/**
+ * Shadow of {@link SettingsPreferenceFragment}.
+ *
+ * Override the {@link #onCreateView(LayoutInflater, ViewGroup, Bundle)}} to skip inflating
+ * a View from a xml.
+ */
+@Implements(SettingsPreferenceFragment.class)
+public class ShadowSettingsPreferenceFragment extends ShadowFragment {
+
+    @Implementation
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        return container;
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
index 3f33405..70ae26b 100644
--- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java
@@ -1274,6 +1274,18 @@
     }
 
     @Test
+    public void forgetNetwork_activityGone_ignoreFinish() {
+        setUpForConnectedNetwork();
+        setUpSpyController();
+        displayAndResume();
+        when(mMockFragment.getActivity()).thenReturn(null);
+
+        mForgetClickListener.getValue().onClick(null);
+
+        verify(mMockActivity, never()).finish();
+    }
+
+    @Test
     public void forgetNetwork_standardWifiNetwork_forget() {
         setUpForConnectedNetwork();
         setUpSpyController();
diff --git a/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java b/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
index f186238..4c271c6 100644
--- a/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
+++ b/tests/unit/src/com/android/settings/applications/manageapplications/AppFilterRegistryTest.java
@@ -31,10 +31,8 @@
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_MAIN;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_MANAGE_SOURCES;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_MEDIA_MANAGEMENT_APPS;
-import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_MOVIES;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_NOTIFICATION;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_OVERLAY;
-import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_PHOTOGRAPHY;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_STORAGE;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_USAGE_ACCESS;
 import static com.android.settings.applications.manageapplications.ManageApplications.LIST_TYPE_WRITE_SETTINGS;
@@ -75,7 +73,5 @@
         assertThat(registry.getDefaultFilterType(LIST_TYPE_STORAGE)).isEqualTo(FILTER_APPS_ALL);
 
         assertThat(registry.getDefaultFilterType(LIST_TYPE_GAMES)).isEqualTo(FILTER_APPS_ALL);
-        assertThat(registry.getDefaultFilterType(LIST_TYPE_MOVIES)).isEqualTo(FILTER_APPS_ALL);
-        assertThat(registry.getDefaultFilterType(LIST_TYPE_PHOTOGRAPHY)).isEqualTo(FILTER_APPS_ALL);
     }
 }
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
index d94d380..d770aba 100644
--- a/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageInfoControllerTest.java
@@ -101,8 +101,8 @@
     }
 
     private NetworkPolicy getDefaultNetworkPolicy() {
-        NetworkTemplate template =
-            new NetworkTemplate(NetworkTemplate.MATCH_WIFI_WILDCARD, null, null);
+        NetworkTemplate template = NetworkTemplate.buildTemplateWifi(
+                NetworkTemplate.WIFI_NETWORKID_ALL, null /* subscriberId */);
         int cycleDay  = -1;
         String cycleTimezone = "UTC";
         long warningBytes = -1;
@@ -176,4 +176,4 @@
         
         assertThat(info.limitLevel).isEqualTo(policy.limitBytes);
     }
-}
\ No newline at end of file
+}
diff --git a/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
index 76deec6..7d814b5 100644
--- a/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
+++ b/tests/unit/src/com/android/settings/datausage/DataUsageSummaryPreferenceTest.java
@@ -531,11 +531,13 @@
 
         final Bundle expect = new Bundle(1);
         expect.putParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE,
-                NetworkTemplate.buildTemplateWifiWildcard());
+                NetworkTemplate.buildTemplateWifi(NetworkTemplate.WIFI_NETWORKID_ALL,
+                null /* subscriberId */));
         final Bundle actual = startedIntent
                 .getBundleExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS);
         assertThat((NetworkTemplate) actual.getParcelable(DataUsageList.EXTRA_NETWORK_TEMPLATE))
-                .isEqualTo(NetworkTemplate.buildTemplateWifiWildcard());
+                .isEqualTo(NetworkTemplate.buildTemplateWifi(
+                NetworkTemplate.WIFI_NETWORKID_ALL, null /* subscriberId */));
 
         assertThat(startedIntent.getIntExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RESID, 0))
                 .isEqualTo(ResourcesUtils.getResourcesId(mContext, "string", "wifi_data_usage"));
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java
similarity index 68%
rename from tests/robotests/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java
rename to tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java
index 7e6be9b..d4157b8 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/TopLevelStoragePreferenceControllerTest.java
@@ -18,9 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
 
 import android.app.usage.StorageStatsManager;
@@ -31,9 +33,11 @@
 import android.util.FeatureFlagUtils;
 
 import androidx.preference.Preference;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
 
-import com.android.settings.R;
 import com.android.settings.core.FeatureFlags;
+import com.android.settings.testutils.ResourcesUtils;
 import com.android.settingslib.deviceinfo.StorageManagerVolumeProvider;
 
 import org.junit.Before;
@@ -41,14 +45,14 @@
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.util.ReflectionHelpers;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
 
-@RunWith(RobolectricTestRunner.class)
+@RunWith(AndroidJUnit4.class)
 public class TopLevelStoragePreferenceControllerTest {
 
     @Mock
@@ -62,12 +66,12 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
-        mContext = RuntimeEnvironment.application;
+        mContext = ApplicationProvider.getApplicationContext();
         mVolumes = new ArrayList<>();
         mVolumes.add(mock(VolumeInfo.class, RETURNS_DEEP_STUBS));
         when(mStorageManagerVolumeProvider.getVolumes()).thenReturn(mVolumes);
 
-        mController = new TopLevelStoragePreferenceController(mContext, "test_key");
+        mController = spy(new TopLevelStoragePreferenceController(mContext, "test_key"));
         FeatureFlagUtils.setEnabled(mContext, FeatureFlags.SILKY_HOME, false);
     }
 
@@ -82,16 +86,27 @@
         when(mStorageManagerVolumeProvider
                 .getFreeBytes(nullable(StorageStatsManager.class), nullable(VolumeInfo.class)))
                 .thenReturn(0L);
-        ReflectionHelpers.setField(mController,
-                "mStorageManagerVolumeProvider", mStorageManagerVolumeProvider);
+        when(mController.getStorageManagerVolumeProvider())
+                .thenReturn(mStorageManagerVolumeProvider);
         final String percentage = NumberFormat.getPercentInstance().format(1);
-        final String freeSpace = Formatter.formatFileSize(RuntimeEnvironment.application, 0);
+        final String freeSpace = Formatter.formatFileSize(mContext, 0);
         final Preference preference = new Preference(mContext);
 
-        mController.updateState(preference);
+        // Wait for asynchronous thread to finish, otherwise test will flake.
+        Future thread = mController.refreshSummaryThread(preference);
+        try {
+            thread.get();
+        } catch (ExecutionException | InterruptedException e) {
+            e.printStackTrace();
+            fail("Exception during automatic selection");
+        }
 
-        assertThat(preference.getSummary()).isEqualTo(
-                mContext.getString(R.string.storage_summary, percentage, freeSpace));
+
+        // Sleep for 5 seconds because a function is executed on the main thread from within
+        // the background thread.
+        TimeUnit.SECONDS.sleep(5);
+        assertThat(preference.getSummary()).isEqualTo(ResourcesUtils.getResourcesString(
+                mContext, "storage_summary", percentage, freeSpace));
     }
 
     @Test
diff --git a/tests/unit/src/com/android/settings/deviceinfo/storage/StorageAsyncLoaderTest.java b/tests/unit/src/com/android/settings/deviceinfo/storage/StorageAsyncLoaderTest.java
index f2349bb..a271e9b 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/storage/StorageAsyncLoaderTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/storage/StorageAsyncLoaderTest.java
@@ -22,7 +22,9 @@
 import static org.mockito.Matchers.anyInt;
 import static org.mockito.Matchers.anyString;
 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.when;
 
 import android.content.Context;
@@ -30,20 +32,22 @@
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.UserInfo;
+import android.content.res.Resources;
 import android.net.TrafficStats;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.SparseArray;
 
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.settings.R;
 import com.android.settingslib.applications.StorageStatsSource;
 
 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;
 
@@ -57,11 +61,11 @@
     private static final int SECONDARY_USER_ID = 10;
     private static final String PACKAGE_NAME_1 = "com.blah.test";
     private static final String PACKAGE_NAME_2 = "com.blah.test2";
+    private static final String PACKAGE_NAME_3 = "com.blah.test3";
     private static final long DEFAULT_QUOTA = 64 * TrafficStats.MB_IN_BYTES;
 
     @Mock
     private StorageStatsSource mSource;
-    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private Context mContext;
     @Mock
     private PackageManager mPackageManager;
@@ -76,6 +80,7 @@
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
+        mContext = spy(ApplicationProvider.getApplicationContext());
         mInfo = new ArrayList<>();
         mLoader = new StorageAsyncLoader(mContext, mUserManager, "id", mSource, mPackageManager);
         when(mPackageManager.getInstalledApplicationsAsUser(eq(PRIMARY_USER_ID), anyInt()))
@@ -85,6 +90,10 @@
         mUsers.add(info);
         when(mUserManager.getUsers()).thenReturn(mUsers);
         when(mSource.getCacheQuotaBytes(anyString(), anyInt())).thenReturn(DEFAULT_QUOTA);
+        final Resources resources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(resources);
+        doReturn("content://com.android.providers.media.documents/root/videos_root")
+                .when(resources).getString(R.string.config_videos_storage_category_uri);
     }
 
     @Test
@@ -169,8 +178,8 @@
         SparseArray<StorageAsyncLoader.AppsStorageResult> result = mLoader.loadInBackground();
 
         assertThat(result.size()).isEqualTo(1);
-        assertThat(result.get(PRIMARY_USER_ID).videoAppsSize).isEqualTo(11L);
-        assertThat(result.get(PRIMARY_USER_ID).otherAppsSize).isEqualTo(0);
+        // Code size is not included for file based video category.
+        assertThat(result.get(PRIMARY_USER_ID).videoAppsSize).isEqualTo(10L);
     }
 
     @Test
@@ -206,7 +215,8 @@
         SparseArray<StorageAsyncLoader.AppsStorageResult> result = mLoader.loadInBackground();
 
         assertThat(result.size()).isEqualTo(2);
-        assertThat(result.get(PRIMARY_USER_ID).videoAppsSize).isEqualTo(11L);
+        // Code size is not included for file based video category.
+        assertThat(result.get(PRIMARY_USER_ID).videoAppsSize).isEqualTo(10L);
         // No code size for the second user.
         assertThat(result.get(SECONDARY_USER_ID).videoAppsSize).isEqualTo(10L);
     }
@@ -221,6 +231,18 @@
         assertThat(result.get(PRIMARY_USER_ID).otherAppsSize).isEqualTo(DEFAULT_QUOTA + 11);
     }
 
+    @Test
+    public void testAppsAreFiltered() throws Exception {
+        addPackage(PACKAGE_NAME_1, 0, 1, 10, ApplicationInfo.CATEGORY_IMAGE);
+        addPackage(PACKAGE_NAME_2, 0, 1, 10, ApplicationInfo.CATEGORY_VIDEO);
+        addPackage(PACKAGE_NAME_3, 0, 1, 10, ApplicationInfo.CATEGORY_AUDIO);
+
+        SparseArray<StorageAsyncLoader.AppsStorageResult> result = mLoader.loadInBackground();
+
+        assertThat(result.size()).isEqualTo(1);
+        assertThat(result.get(PRIMARY_USER_ID).otherAppsSize).isEqualTo(33L);
+    }
+
     private ApplicationInfo addPackage(String packageName, long cacheSize, long codeSize,
             long dataSize, int category) throws Exception {
         StorageStatsSource.AppStorageStats storageStats =
diff --git a/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java b/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java
index d61ca00..5ab2ce0 100644
--- a/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java
+++ b/tests/unit/src/com/android/settings/network/InternetUpdaterTest.java
@@ -108,6 +108,13 @@
     }
 
     @Test
+    public void onDestroy_shouldCloseCallback() {
+        mInternetUpdater.onDestroy();
+
+        verify(mAirplaneModeEnabler).close();
+    }
+
+    @Test
     public void updateInternetAvailable_wifiConnectedAndNoValidated_internetUnavailable() {
         final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder()
                 .addTransportType(TRANSPORT_WIFI)
diff --git a/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java b/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java
new file mode 100644
index 0000000..3bda96e
--- /dev/null
+++ b/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2021 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.security;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+
+import android.content.Intent;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.settings.Settings;
+import com.android.settings.SettingsActivity;
+import com.android.settings.testutils.FakeFeatureFactory;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.MockitoAnnotations;
+
+@RunWith(AndroidJUnit4.class)
+public class SecurityDashboardActivityTest {
+    private static final String ALTERNATIVE_FRAGMENT_CLASSNAME = "AlternativeFragmentClassname";
+    private static final String DEFAULT_FRAGMENT_CLASSNAME = "DefaultFragmentClassname";
+
+    private SecuritySettingsFeatureProvider mSecuritySettingsFeatureProvider;
+    private Settings.SecurityDashboardActivity mActivity;
+    private Intent mDefaultIntent;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        FakeFeatureFactory mFeatureFactory = FakeFeatureFactory.setupForTest();
+        mSecuritySettingsFeatureProvider = mFeatureFactory.getSecuritySettingsFeatureProvider();
+        mDefaultIntent = new Intent();
+        mDefaultIntent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
+        mDefaultIntent.setClass(InstrumentationRegistry.getInstrumentation().getTargetContext(),
+                Settings.SecurityDashboardActivity.class);
+        mDefaultIntent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, DEFAULT_FRAGMENT_CLASSNAME);
+        InstrumentationRegistry.getInstrumentation().runOnMainSync(() -> {
+            try {
+                mActivity =
+                        (Settings.SecurityDashboardActivity) InstrumentationRegistry
+                                .getInstrumentation().newActivity(
+                                        getClass().getClassLoader(),
+                                        Settings.SecurityDashboardActivity.class.getName(),
+                                        mDefaultIntent);
+            } catch (Exception e) {
+                throw new RuntimeException(e); // nothing to do
+            }
+        });
+    }
+
+    @Test
+    public void noAvailableAlternativeFragmentAvailable_defaultFragmentSet() {
+        when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
+                .thenReturn(false);
+
+        assertThat(mActivity.getInitialFragmentName(mDefaultIntent))
+                .isEqualTo(DEFAULT_FRAGMENT_CLASSNAME);
+    }
+
+    @Test
+    public void alternativeFragmentAvailable_alternativeFragmentSet() {
+        when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
+                .thenReturn(true);
+        when(mSecuritySettingsFeatureProvider.getAlternativeSecuritySettingsFragmentClassname())
+                .thenReturn(ALTERNATIVE_FRAGMENT_CLASSNAME);
+
+        assertThat(mActivity.getInitialFragmentName(mDefaultIntent))
+                .isEqualTo(ALTERNATIVE_FRAGMENT_CLASSNAME);
+    }
+
+    @Test
+    public void noAvailableAlternativeFragmentAvailable_alternativeFragmentNotValid() {
+        when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
+                .thenReturn(false);
+
+        assertThat(mActivity.isValidFragment(ALTERNATIVE_FRAGMENT_CLASSNAME)).isFalse();
+    }
+
+    @Test
+    public void alternativeFragmentAvailable_alternativeFragmentIsValid() {
+        when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
+                .thenReturn(true);
+        when(mSecuritySettingsFeatureProvider.getAlternativeSecuritySettingsFragmentClassname())
+                .thenReturn(ALTERNATIVE_FRAGMENT_CLASSNAME);
+
+        assertThat(mActivity.isValidFragment(ALTERNATIVE_FRAGMENT_CLASSNAME)).isTrue();
+    }
+}
diff --git a/tests/unit/src/com/android/settings/vpn2/VpnInfoPreferenceTest.java b/tests/unit/src/com/android/settings/vpn2/VpnInfoPreferenceTest.java
new file mode 100644
index 0000000..e0683ca
--- /dev/null
+++ b/tests/unit/src/com/android/settings/vpn2/VpnInfoPreferenceTest.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.vpn2;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+
+import androidx.preference.PreferenceViewHolder;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.testutils.ResourcesUtils;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class VpnInfoPreferenceTest {
+
+    private Context mContext;
+    private Resources mResources;
+    private VpnInfoPreference mVpnInfoPreference;
+    private AttributeSet mAttrs;
+    private PreferenceViewHolder mHolder;
+    private View mWarningButton;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mResources = spy(mContext.getResources());
+        when(mContext.getResources()).thenReturn(mResources);
+
+        final int helpUrlId = ResourcesUtils.getResourcesId(
+                mContext, "string", "help_url_insecure_vpn");
+        when(mResources.getString(helpUrlId)).thenReturn("https://www.google.com/");
+
+        mVpnInfoPreference = new VpnInfoPreference(mContext, mAttrs);
+        LayoutInflater inflater = mContext.getSystemService(LayoutInflater.class);
+
+        // The VpnInfoPreference is a RestrictedPreference, which is a TwoTargetPreference
+        final int layoutId = ResourcesUtils.getResourcesId(
+                mContext, "layout", "preference_two_target");
+        View view = inflater.inflate(
+                layoutId,
+                null /* root */, false /* attachToRoot */);
+        mHolder = spy(PreferenceViewHolder.createInstanceForTests(view));
+        final int warningButtonId = ResourcesUtils.getResourcesId(
+                mContext, "id", "warning_button");
+        mWarningButton = spy(new View(mContext));
+        when(mWarningButton.getId()).thenReturn(warningButtonId);
+        when(mHolder.findViewById(warningButtonId)).thenReturn(mWarningButton);
+    }
+
+    @Test
+    public void onBindViewHolder_notInsecureVpn_iconInvisible() {
+        mVpnInfoPreference.setInsecureVpn(false);
+
+        mVpnInfoPreference.onBindViewHolder(mHolder);
+
+        verify(mWarningButton).setVisibility(View.GONE);
+        verify(mWarningButton).setEnabled(false);
+    }
+
+    @Test
+    public void onBindViewHolder_emptyUrl_iconInvisible() {
+        final int helpUrlId = ResourcesUtils.getResourcesId(
+                mContext, "string", "help_url_insecure_vpn");
+        when(mResources.getString(helpUrlId)).thenReturn("");
+        VpnInfoPreference vpnInfoPreference = new VpnInfoPreference(mContext, mAttrs);
+
+        vpnInfoPreference.setInsecureVpn(true);
+
+        vpnInfoPreference.onBindViewHolder(mHolder);
+
+        verify(mWarningButton).setVisibility(View.GONE);
+        verify(mWarningButton).setEnabled(false);
+    }
+
+    @Test
+    public void onBindViewHolder_insecureVpn_iconVisible() {
+        mVpnInfoPreference.setInsecureVpn(true);
+
+        mVpnInfoPreference.onBindViewHolder(mHolder);
+
+        verify(mWarningButton).setVisibility(View.VISIBLE);
+        verify(mWarningButton).setEnabled(true);
+    }
+
+    @Test
+    public void onBindViewHolder_dividerInvisible() {
+        mVpnInfoPreference.onBindViewHolder(mHolder);
+
+        final int dividerId = ResourcesUtils.getResourcesId(mContext, "id", "two_target_divider");
+        final View divider = mHolder.findViewById(dividerId);
+        assertEquals(View.GONE, divider.getVisibility());
+    }
+}
