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/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 fc79f25..be32412 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -117,7 +117,6 @@
     <color name="battery_good_color_dark">#4caf50</color> <!-- Material Green 500 -->
     <color name="battery_maybe_color_dark">#fdd835</color> <!-- Material Yellow 600 -->
     <color name="battery_bad_color_dark">#f44336</color> <!-- Material Red 500 -->
-    <color name="battery_info_error_color_red">#fce8e6</color> <!-- Material Red 50 -->
 
     <!-- TODO: Figure out colors -->
     <color name="face_anim_particle_color_1">#ff00bcd4</color> <!-- Material Cyan 500 -->
@@ -199,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/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/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/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/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/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/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/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/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());
+    }
+}
