diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4059b80..c352694 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1459,7 +1459,7 @@
         </activity>
 
         <activity android:name=".security.RequestManageCredentials"
-                  android:theme="@style/Theme.RequestManageCredentials"
+                  android:theme="@style/Theme.SubSettings"
                   android:exported="true">
             <intent-filter>
                 <action android:name="android.security.MANAGE_CREDENTIALS"/>
@@ -3688,17 +3688,6 @@
                        android:value="com.android.settings.gestures.PowerMenuSettings" />
         </activity>
 
-        <activity android:name="Settings$DeviceControlsSettingsActivity"
-                      android:exported="true"
-                      android:label="@string/device_controls_sentence">
-            <intent-filter>
-                <action android:name="android.settings.ACTION_DEVICE_CONTROLS_SETTINGS" />
-                <category android:name="android.intent.category.DEFAULT" />
-            </intent-filter>
-            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
-                       android:value="com.android.settings.gestures.DeviceControlsSettings" />
-        </activity>
-
         <activity
             android:name="Settings$GestureNavigationSettingsActivity"
             android:label="@string/gesture_settings_activity_title"
diff --git a/res/drawable/progress_horizontal.xml b/res/drawable/progress_horizontal.xml
new file mode 100644
index 0000000..f2a4cc4
--- /dev/null
+++ b/res/drawable/progress_horizontal.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2021 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<layer-list
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
+
+    <item
+        android:id="@android:id/background">
+        <shape>
+            <corners android:radius="8dp" />
+            <solid android:color="?androidprv:attr/colorSurfaceVariant" />
+        </shape>
+    </item>
+
+    <item
+        android:id="@android:id/progress">
+        <clip>
+            <shape>
+                <corners android:radius="8dp" />
+                <solid android:color="?android:attr/textColorPrimary" />
+            </shape>
+        </clip>
+    </item>
+</layer-list>
diff --git a/res/layout/request_manage_credentials.xml b/res/layout/request_manage_credentials.xml
index a2350ac..ee3751c 100644
--- a/res/layout/request_manage_credentials.xml
+++ b/res/layout/request_manage_credentials.xml
@@ -18,7 +18,8 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content">
+    android:layout_height="wrap_content"
+    android:clipChildren="true">
 
     <RelativeLayout
         android:layout_width="match_parent"
@@ -70,6 +71,7 @@
         app:elevation="3dp"
         app:icon="@drawable/ic_arrow_downward"
         app:iconTint="?android:attr/colorAccent"
-        app:backgroundTint="?android:attr/colorPrimary"/>
+        app:backgroundTint="?android:attr/colorPrimary"
+        android:theme="@style/Theme.CollapsingToolbar.Settings"/>
 
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/res/raw/gesture_device_controls.mp4 b/res/raw/gesture_device_controls.mp4
deleted file mode 100644
index e69de29..0000000
--- a/res/raw/gesture_device_controls.mp4
+++ /dev/null
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index d7835d3..333da90 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Programgebruik vir"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"vm."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"nm."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Proses-statistieke"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Bleeksiel-statistieke vir lopende prosesse"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Berginggebruik"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 8863f8e..b7a199f 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"የመተግበሪያ አጠቃቀም ለ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"ጠዋት"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ከሰዓት"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ar/strings.xml b/res/values-ar/strings.xml
index 014be12..0977bd0 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -2892,6 +2892,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"استخدام التطبيق خلال"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"صباحًا"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"مساءً"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-as/strings.xml b/res/values-as/strings.xml
index 8148aa8..bf65dc0 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ইয়াৰ বাবে এপৰ ব্যৱহাৰ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"পূৰ্বাহ্ন"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"অপৰাহ্ন"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 04689ce..c283ba6 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -1959,7 +1959,7 @@
     </plurals>
     <string name="clear_uri_btn_text" msgid="4828117421162495134">"Girişi təmizləyin"</string>
     <string name="controls_label" msgid="8671492254263626383">"Kontrollar"</string>
-    <string name="force_stop" msgid="2681771622136916280">"Məcburən dayansın"</string>
+    <string name="force_stop" msgid="2681771622136916280">"Dayandırılsın"</string>
     <string name="total_size_label" msgid="2052185048749658866">"Toplam"</string>
     <string name="application_size_label" msgid="6407051020651716729">"Tətbiq ölçüsü"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"USB yaddaş tətbiqi"</string>
@@ -1969,7 +1969,7 @@
     <string name="uninstall_text" msgid="315764653029060126">"Aradan qaldırın"</string>
     <string name="uninstall_all_users_text" msgid="5924715251087176474">"bütün istifadəçilər üçün aradan qaldırın"</string>
     <string name="install_text" msgid="4558333621516996473">"Quraşdır"</string>
-    <string name="disable_text" msgid="5146002260857428005">"Deaktiv et"</string>
+    <string name="disable_text" msgid="5146002260857428005">"Deaktiv edin"</string>
     <string name="enable_text" msgid="8570798764647110430">"Aktivləşdirin"</string>
     <string name="clear_user_data_text" msgid="6773186434260397947">"Yaddaşı təmizləyin"</string>
     <string name="app_factory_reset" msgid="8974044931667015201">"Güncəlləşmələri qaldırın"</string>
@@ -2029,7 +2029,7 @@
     <string name="invalid_location" msgid="8013853455355520557">"Quraşdırılacaq yer etibarlı deyil."</string>
     <string name="system_package" msgid="7559476279008519360">"Sistem yenilikləri xarici mediada quraşdırıla bilməz."</string>
     <string name="move_error_device_admin" msgid="1561502976834303626">"Cihaz admin tətbiqi xarici mediada quraşdırıla bilməz"</string>
-    <string name="force_stop_dlg_title" msgid="86745852555490146">"Məcburən dayansın?"</string>
+    <string name="force_stop_dlg_title" msgid="86745852555490146">"Dayandırılsın?"</string>
     <string name="force_stop_dlg_text" msgid="1527286468544457368">"Tətbiqi dayanmağa məcbur etsəniz, o, səhv işləyə bilər."</string>
     <string name="app_install_location_title" msgid="8932938164156303191">"Tərcih edilmiş quraşdırma yeri"</string>
     <string name="app_install_location_summary" msgid="4948270795544357021">"Yeni tətbiq üçün tərcih edilmiş quraşdırma yerini dəyişin"</string>
@@ -2505,7 +2505,7 @@
     <string name="manager_battery_usage_footer" msgid="2635906573922553766">"Tətbiqin batareyanızı necə istifadə etdiyini dəyişdirmək onun işinə təsir edə bilər."</string>
     <string name="manager_battery_usage_footer_limited" msgid="5180776148877306780">"Bu tətbiq <xliff:g id="STATE">%1$s</xliff:g> batareya istifadəsi tələb edir."</string>
     <string name="device_screen_usage" msgid="1011630249648289909">"Tam doldurmadan sonrakı ekran istifadəsi"</string>
-    <string name="power_usage_list_summary" msgid="3237540201918492925">"Tam doldurmadan sonra batareya istifadəsi"</string>
+    <string name="power_usage_list_summary" msgid="3237540201918492925">"Tam şarjdan sonra enerji istifadəsi"</string>
     <string name="screen_usage_summary" msgid="1393184943010909471">"Dam doldurmadan sonra ekranın vaxtı miqdarı aktiv edilib"</string>
     <string name="device_usage_list_summary" msgid="242243537371697285">"Tam doldurmadan sonrakı cihaz istifadəsi"</string>
     <string name="battery_since_unplugged" msgid="6991509383429936921">"Elektrik şəbəkəsindən çıxarılandan sonra batareya istifadəsi"</string>
@@ -2525,11 +2525,11 @@
     <string name="awake" msgid="5405871714019268978">"Cihazın oyaq vaxtı"</string>
     <string name="wifi_on_time" msgid="3880778525760926066">"Wi-Fi vaxtında"</string>
     <string name="bluetooth_on_time" msgid="8424625554628450028">"Wi-Fi zamanı"</string>
-    <string name="advanced_battery_title" msgid="3005993394776555079">"Batareya istifadəsi"</string>
+    <string name="advanced_battery_title" msgid="3005993394776555079">"Enerji istifadəsi"</string>
     <string name="history_details_title" msgid="8628584613889559355">"Tarixçə detalları"</string>
     <string name="advanced_battery_preference_title" msgid="6518802648205311326">"Enerji istifadəsinə baxın"</string>
-    <string name="advanced_battery_preference_summary" msgid="711801095682290658">"Son 24 saat üçün istifadəyə baxın"</string>
-    <string name="battery_details_title" msgid="4531369291819754178">"Batareya istifadəsi"</string>
+    <string name="advanced_battery_preference_summary" msgid="711801095682290658">"Son 24 saat ərzində istifadə"</string>
+    <string name="battery_details_title" msgid="4531369291819754178">"Enerji istifadəsi"</string>
     <string name="details_subtitle" msgid="2550872569652785527">"Ətraflı istifadə"</string>
     <string name="controls_subtitle" msgid="3759606830916441564">"Enerji istifadəsini idarə edin"</string>
     <string name="packages_subtitle" msgid="8687690644931499428">"Daxil edilmiş paketlər"</string>
@@ -2538,7 +2538,7 @@
     <string name="battery_tip_summary_summary" product="tablet" msgid="5063158368808711973">"Planşet arxa fonda səciyyəvi batareya istifadəsinə sahibdir"</string>
     <string name="battery_tip_summary_summary" product="device" msgid="4242899844618910548">"Cihaz arxa fonda səciyyəvi batareya istifadəsinə sahibdir"</string>
     <string name="battery_tip_low_battery_title" msgid="4155239078744100997">"Batareya səviyyəsi aşağıdır"</string>
-    <string name="battery_tip_low_battery_summary" msgid="2629633757244297436">"Batareya istifadəsini artırmaq üçün Enerjiyə Qənaəti aktiv edin"</string>
+    <string name="battery_tip_low_battery_summary" msgid="2629633757244297436">"Enerjiyə qənaət etmək üçün qənaət rejimini aktivləşdirin"</string>
     <string name="battery_tip_smart_battery_title" msgid="8925025450214912325">"Batareya ömrünü artırın"</string>
     <string name="battery_tip_smart_battery_summary" msgid="3592965553502362965">"Batareya Menecerini aktiv edin"</string>
     <string name="battery_tip_early_heads_up_title" msgid="4411387863476629452">"Batareya Qənaətini aktiv edin"</string>
@@ -2656,7 +2656,7 @@
     <string name="usage_type_total_battery_capacity" msgid="3878234027503885998">"Toplam batareya tutumu"</string>
     <string name="usage_type_computed_power" msgid="5191902025833668752">"Hesablanmış enerji istifadəsi"</string>
     <string name="usage_type_actual_power" msgid="1221358930299037926">"Müşahidə olunan enerji istifadəsi"</string>
-    <string name="battery_action_stop" msgid="6998228610098034316">"Məcburən dayansın"</string>
+    <string name="battery_action_stop" msgid="6998228610098034316">"Dayandırılsın"</string>
     <string name="battery_action_app_details" msgid="7201369216798227707">"Tətbiq infosu"</string>
     <string name="battery_action_app_settings" msgid="2437124469335488464">"Tətbiq ayarları"</string>
     <string name="battery_action_display" msgid="6515712081248863749">"Ekran parametrləri"</string>
@@ -2693,10 +2693,10 @@
     <string name="battery_detail_since_full_charge" msgid="5650946565524184582">"Sonuncu tam doldurmadan sonrakı istifadə problemi"</string>
     <string name="battery_last_full_charge" msgid="8308424441475063956">"Sonuncu tam doldurma"</string>
     <string name="battery_full_charge_last" msgid="465146408601016923">"Tam doldurulmuş batareya təxminən bu qədər davam edir"</string>
-    <string name="battery_footer_summary" msgid="9125397752380281832">"Batareya istifadə datası təxminidir və istifadəyə əsasən dəyişir"</string>
+    <string name="battery_footer_summary" msgid="9125397752380281832">"Enerji istifadəsi haqqında məlumat təxminidir və istifadə intensivliyinə əsasən dəyişir."</string>
     <string name="battery_detail_foreground" msgid="3312280147931093967">"Aktiv istifadədə olarkən"</string>
     <string name="battery_detail_background" msgid="3333915023706228000">"Arxa fonda olarkən"</string>
-    <string name="battery_detail_power_usage" msgid="1492926471397355477">"Batareya istifadəsi"</string>
+    <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>
     <string name="battery_total_and_background_usage" msgid="6418204620302474483">"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>
@@ -2710,7 +2710,7 @@
     <string name="menu_stats_refresh" msgid="6727628139586938835">"Təzələ"</string>
     <string name="process_mediaserver_label" msgid="6135260215912215092">"Mediaserver"</string>
     <string name="process_dex2oat_label" msgid="1190208677726583153">"Tətbiq optimallaşdırması"</string>
-    <string name="battery_saver" msgid="7737147344510595864">"Batareya Qənaəti"</string>
+    <string name="battery_saver" msgid="7737147344510595864">"Enerjiyə qənaət"</string>
     <string name="battery_saver_auto_title" msgid="6789753787070176144">"Avtomatik aktiv edin"</string>
     <string name="battery_saver_auto_no_schedule" msgid="5123639867350138893">"Plan yoxdur"</string>
     <string name="battery_saver_auto_routine" msgid="4656495097900848608">"Rejimə əsasən"</string>
@@ -2718,21 +2718,21 @@
     <string name="battery_saver_auto_percentage" msgid="558533724806281980">"Faizə əsasən"</string>
     <string name="battery_saver_auto_routine_summary" msgid="3913145448299472628">"Batareya növbəti tipik enerji yüklənməsindən əvvəl bitərsə, Enerjiyə Qənaət rejimi aktiv edilir"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="6190884450723824287">"<xliff:g id="PERCENT">%1$s</xliff:g> olduqda aktiv ediləcək"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Plan ayarlayın"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="3688019979950082237">"Cədvəl ayarlayın"</string>
     <string name="battery_saver_turn_on_summary" msgid="1433919417587171160">"Batareya istifadəsinin müddətini artırın"</string>
-    <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Şarj olduqda deaktiv edin"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="4969508893424116609">"Telefonunuz <xliff:g id="PERCENT">%1$s</xliff:g>-dən çox şarj olduqda Enerjiyə Qənaət deaktiv edilir"</string>
+    <string name="battery_saver_sticky_title_new" msgid="5942813274115684599">"Tam şarj olanda deaktiv edilsin"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="4969508893424116609">"Enerji <xliff:g id="PERCENT">%1$s</xliff:g> olanda enerjiyə qənaət edilmir"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="6613068787945311001">"Planşetiniz <xliff:g id="PERCENT">%1$s</xliff:g>-dən çox şarj olduqda Enerjiyə Qənaət deaktiv edilir"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="8707774542183385479">"Cihazınız <xliff:g id="PERCENT">%1$s</xliff:g>-dən çox şarj olduqda Enerjiyə Qənaət deaktiv edilir"</string>
     <!-- no translation found for battery_saver_seekbar_title (3712266470054006641) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="7141264642540687540">"Aktiv edin"</string>
-    <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Batareya Qənaətindən istifadə edin"</string>
+    <string name="battery_saver_master_switch_title" msgid="3474312070095834915">"Enerji qənaəti rejimini istifadə edin"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="7857393318205740864">"Avtomatik aktivləşdir"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="6194649389871448663">"Heç vaxt"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="4294335680892392449">"<xliff:g id="PERCENT">%1$s</xliff:g> batareya"</string>
     <string name="battery_percentage" msgid="1779934245963043490">"Enerji faizi"</string>
-    <string name="battery_percentage_description" msgid="2321465139126125541">"Status panelində batareya faizini göstərin"</string>
+    <string name="battery_percentage_description" msgid="2321465139126125541">"Enerji faizi status panelində görünsün"</string>
     <string name="battery_usage_chart_graph_hint" msgid="9182079098173323005">"Son 24 saat üçün batareya səviyyəsi"</string>
     <string name="battery_app_usage_for_past_24" msgid="1234770810563940656">"Son 24 saat üçün tətbiq istifadəsi"</string>
     <string name="battery_system_usage_for_past_24" msgid="3341520273114616263">"Son 24 saat üçün sistem istifadəsi"</string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Tətbiq istifadəsi:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Proses Statistikası"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"İşləmə prosesləri haqqında çağırış statistikası"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Yaddaş istifadəsi"</string>
@@ -3109,7 +3119,7 @@
     <string name="vpn_missing_cert" msgid="5397309964971068272">"Sertifikat yoxdur. Profilə düzəliş edin."</string>
     <string name="trusted_credentials_system_tab" msgid="675362923690364722">"Sistem"</string>
     <string name="trusted_credentials_user_tab" msgid="4978365619630094339">"İstifadəçi"</string>
-    <string name="trusted_credentials_disable_label" msgid="6649583220519447947">"Deaktiv et"</string>
+    <string name="trusted_credentials_disable_label" msgid="6649583220519447947">"Deaktiv edin"</string>
     <string name="trusted_credentials_enable_label" msgid="5551204878588237991">"Aktiv et"</string>
     <string name="trusted_credentials_remove_label" msgid="8975881053042174913">"Sil"</string>
     <string name="trusted_credentials_trust_label" msgid="4841047312274452474">"Güvən"</string>
@@ -4209,8 +4219,8 @@
     <string name="process_format" msgid="4239069158701023623">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="5623152700992102510">"Batareya optimallaşması"</string>
     <string name="additional_battery_info" msgid="3104208543623068714">"İstifadə siqnalları"</string>
-    <string name="show_all_apps" msgid="4490719452453223082">"Tam cihaz istifadəsini göstərin"</string>
-    <string name="hide_extra_apps" msgid="7313907836289865123">"Tətbiq istifadəsini göstərin"</string>
+    <string name="show_all_apps" msgid="4490719452453223082">"İstifadə haqqında hər şey"</string>
+    <string name="hide_extra_apps" msgid="7313907836289865123">"Tətbiq istifadəsi"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="573433136005336970">
       <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> tətbiq düzgün işləmir</item>
       <item quantity="one"><xliff:g id="APP">%1$s</xliff:g> düzgün işləmir</item>
@@ -5323,7 +5333,7 @@
     <string name="multiple_users_main_switch_title" msgid="2759849884417772712">"Bir neçə istifadəçidən istifadə edin"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Simsiz sazlama funksiyasından istifadə edin"</string>
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Qrafik drayver seçimlərindən istifadə edin"</string>
-    <string name="battery_saver_main_switch_title" msgid="5072135547489779352">"Batareya qənaətindən istifadə edin"</string>
+    <string name="battery_saver_main_switch_title" msgid="5072135547489779352">"Enerji qənaəti rejimini istifadə edin"</string>
     <string name="do_not_disturb_main_switch_title_on" msgid="6965566556539821313">"İndi deaktiv edin"</string>
     <string name="do_not_disturb_main_switch_title_off" msgid="7088088515823752545">"İndi aktiv edin"</string>
     <string name="night_light_main_switch_title" msgid="3428298022467805219">"Gecə İşığından istifadə edin"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index d9435db..0bbfb46 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Potrošnja od strane aplikacija u periodu"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"pre podne"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"po podne"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistika procesa"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Štreberska statistika o aktivnim procesima"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Iskorišćenost memorije"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 7f59be0..130b568 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Выкарыстанне праграмай зараду за"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"перад паўднём"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"пасля паўдня"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-bg/strings.xml b/res/values-bg/strings.xml
index e985b9d..7b40472 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Използване от приложенията за"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-bn/strings.xml b/res/values-bn/strings.xml
index 9ba7c3d..2a936cd 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ব্যাটারি অ্যাপ ব্যবহারের তথ্য"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 2ed573e..988ee3a 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Korištenje aplikacije za:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"prijepodne"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"poslijepodne"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistika procesa"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Geeky statistike o pokrenutim procesima"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Iskorištena memorija"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index f67f22f..d5868f7 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -1220,16 +1220,16 @@
     <string name="accessibility_personal_account_title" msgid="8535265881509557013">"Compte personal: <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="7573686516434589771">"Cerca"</string>
     <string name="display_settings" msgid="7197750639709493852">"Pantalla"</string>
-    <string name="accelerometer_title" msgid="7745991950833748909">"Gira pantalla automàticament"</string>
+    <string name="accelerometer_title" msgid="7745991950833748909">"Gira la pantalla automàticament"</string>
     <string name="auto_rotate_option_off" msgid="2788096269396290731">"Desactivat"</string>
     <string name="auto_rotate_option_on" msgid="5776678230808498171">"Activat"</string>
     <string name="auto_rotate_option_face_based" msgid="3438645484087953174">"Activat: basat en cares"</string>
     <string name="auto_rotate_switch_face_based" msgid="7824467067774120000">"Activa la detecció facial"</string>
     <string name="color_mode_title" msgid="8666690832113906028">"Colors"</string>
-    <string name="color_mode_option_natural" msgid="6192875655101283303">"Natural"</string>
-    <string name="color_mode_option_boosted" msgid="4698797857766774289">"Millorat"</string>
+    <string name="color_mode_option_natural" msgid="6192875655101283303">"Naturals"</string>
+    <string name="color_mode_option_boosted" msgid="4698797857766774289">"Millorats"</string>
     <string name="color_mode_option_saturated" msgid="3413853820158447300">"Saturat"</string>
-    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Automàtic"</string>
+    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptatius"</string>
     <string name="color_mode_summary_natural" msgid="8298840714001791628">"Fes servir només colors precisos"</string>
     <string name="color_mode_summary_automatic" msgid="8157885594041700275">"Ajusta entre colors vius i precisos"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="6413384391658481700">"Canvia l\'orientació automàticament en girar la tauleta"</string>
@@ -2007,7 +2007,7 @@
     <string name="internal_storage" msgid="999496851424448809">"Emmagatzematge intern"</string>
     <string name="recompute_size" msgid="1098091228370999128">"S\'està tornant a calcular la mida..."</string>
     <string name="clear_data_dlg_title" msgid="180446967743732410">"Vols suprimir les dades de l\'aplicació?"</string>
-    <string name="clear_data_dlg_text" msgid="7870723948123690332">"Se suprimiran totes les dades d\'aquesta aplicació permanentment. Això inclou tots els fitxers, la configuració, els comptes, les bases de dades, etc."</string>
+    <string name="clear_data_dlg_text" msgid="7870723948123690332">"Se suprimiran totes les dades d\'aquesta aplicació permanentment. Això inclou tots els fitxers, les opcions de configuració, els comptes, les bases de dades, etc."</string>
     <string name="dlg_ok" msgid="1421350367857960997">"D\'acord"</string>
     <string name="dlg_cancel" msgid="5164705061530774899">"Cancel·la"</string>
     <string name="app_not_found_dlg_title" msgid="7122106240981109930"></string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Ús de l\'aplicació durant"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a. m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p. m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estadístiques sobre processos"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estadístiques sobre els processos en execució"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Ús de la memòria"</string>
@@ -4190,7 +4200,7 @@
     <string name="default_app" msgid="445053777504688596">"(Predeterminat)"</string>
     <string name="system_app" msgid="1863291702508355041">"(Sistema)"</string>
     <string name="system_default_app" msgid="2647834628622214931">"(Opció predeterminada del sistema)"</string>
-    <string name="apps_storage" msgid="643866814746927111">"Emmagatzematge d\'apps"</string>
+    <string name="apps_storage" msgid="643866814746927111">"Emmagatzematge d\'aplicacions"</string>
     <string name="usage_access" msgid="5487993885373893282">"Accés a dades d\'ús"</string>
     <string name="permit_usage_access" msgid="179630895262172674">"Permet l\'accés a dades d\'ús"</string>
     <string name="app_usage_preference" msgid="7062447555623339120">"Preferències d\'ús de les aplicacions"</string>
@@ -5233,7 +5243,7 @@
     <string name="power_menu_privacy_show_cards" msgid="8937303188629541026">"Mostra les targetes a la pantalla de bloqueig"</string>
     <string name="power_menu_privacy_hide" msgid="1617102911157977095">"Amaga les targetes i els controls a la pantalla de bloqueig"</string>
     <string name="power_menu_privacy_not_secure" msgid="6247119934128206924">"Per utilitzar aquesta opció, has de definir un bloqueig de pantalla"</string>
-    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Hold for Assistant"</string>
+    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Mantén premut per utilitzar l\'Assistent"</string>
     <string name="power_menu_long_press_for_assist_summary" msgid="8251928804984560312">"Activa l\'Assistent mantenint premut el botó d\'engegada"</string>
     <string name="device_controls_setting_toggle" msgid="8972005569207737469">"Mostra els controls de dispositius"</string>
     <string name="cards_passes_setting_toggle" msgid="3380984848045396695">"Mostra targetes i passis"</string>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 4a7896d..17cee6e 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -102,9 +102,9 @@
     <!-- no translation found for wifi_tether_security:3 (5512131148045414341) -->
   <string-array name="eap_ocsp_type">
     <item msgid="8568170800958331461">"Neověřovat"</item>
-    <item msgid="5703177653586269306">"Vyžadovat stav certifikátu"</item>
-    <item msgid="326388247868439528">"Požadovat stav certifikátu"</item>
-    <item msgid="1090956283885790552">"Požadovat stav všech nedůvěryhodných certifikátů"</item>
+    <item msgid="5703177653586269306">"Požádat o stav certifikátu"</item>
+    <item msgid="326388247868439528">"Vyžadovat stav certifikátu"</item>
+    <item msgid="1090956283885790552">"Vyžadovat stavy všech nedůvěryhodných certifikátů"</item>
   </string-array>
   <string-array name="wifi_p2p_wps_setup">
     <item msgid="1446717102923442720">"Stisknutí tlačítka"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 6bb9cb1..2e7bbf4 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Využití aplikace"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistiky procesů"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Podrobné statistiky běžících procesů"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Využití paměti"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index cf32d02..8985cd9 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Appforbrug for"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"om morgenen"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"om aftenen"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Processtatistikker"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Nørdede statistikker om kørende processer"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"hukommelse brugt"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index cf6f854..b4b2a20 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -2224,7 +2224,7 @@
     <string name="accessibility_screen_magnification_gestures_title" msgid="3121714118381882167">"Dreimal tippen zum Vergrößern"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="480853328665484528">"Mit Tastenkombination vergrößern"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="8067042663897802231">"Mit Tastenkombination und 3-mal Tippen vergrößern"</string>
-    <string name="accessibility_introduction_title" msgid="8834950581512452348">"Über <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
+    <string name="accessibility_introduction_title" msgid="8834950581512452348">"Die Bedienungshilfe „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
     <string name="accessibility_screen_option" msgid="8465307075278878145">"Optionen"</string>
     <string name="accessibility_preference_magnification_summary" msgid="2875518904115896888">"Auf dem Bildschirm heranzoomen"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="2207048420669939150">"Zum Zoomen dreimal tippen"</string>
@@ -2246,7 +2246,7 @@
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Wenn du eine Bedienungshilfe verwenden möchtest, wische vom unteren Displayrand mit zwei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit zwei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Wenn du eine Bedienungshilfe verwenden möchtest, wische vom unteren Displayrand mit drei Fingern nach oben.\n\nWenn du zwischen den Funktionen wechseln möchtest, wische mit drei Fingern über das Display nach oben und halte."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Verknüpfung für \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Kurzbefehl für „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="6405629977940618205">"Schaltfläche \"Bedienungshilfen\""</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Mit zwei Fingern nach oben wischen"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback" msgid="7422753388389160524">"Mit drei Fingern nach oben wischen"</string>
@@ -2741,6 +2741,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App-Nutzung:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"vormittags"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"nachmittags"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-el/strings.xml b/res/values-el/strings.xml
index 673efa4..508009c 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Χρήση εφαρμογής για"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"π.μ."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"μ.μ."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 97fa83e..43d2084 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -434,8 +434,7 @@
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_fast" msgid="5891227328100822018">"Lift your finger after you feel a vibration"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_bright" msgid="769646735950329315">"Move somewhere with gentler lighting and try again"</string>
     <string name="security_settings_fingerprint_v2_enroll_error_max_attempts" msgid="1464972470750764128">"You’ve reached the maximum number of attempts"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_home_screen (6677856383184441160) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_home_screen" msgid="6677856383184441160">"Use your fingerprint to unlock your phone or for authentication, like when you sign in to apps or approve a purchase\n\n"<annotation id="url">"Learn more"</annotation></string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"Skip screen lock?"</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1570832293693405757">"Device protection features won’t be turned on. You won’t be able to prevent others from using this tablet if it’s lost, stolen or reset."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4618501606519351904">"Device protection features won’t be turned on. You won’t be able to prevent others from using this device if it’s lost, stolen or reset."</string>
@@ -2740,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App usage for"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Process Stats"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memory use"</string>
@@ -4829,8 +4838,7 @@
     <string name="storage_volume_total" msgid="7102720999351050601">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"used"</string>
     <string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> used"</string>
-    <!-- no translation found for storage_total_summary (7163360249534964272) -->
-    <skip />
+    <string name="storage_total_summary" msgid="7163360249534964272">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> total"</string>
     <string name="clear_instant_app_data" msgid="5951258323364386357">"Clear app"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Do you want to remove this instant app?"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"Open"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 4a2481b..18ba2f4 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -434,8 +434,7 @@
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_fast" msgid="5891227328100822018">"Lift your finger after you feel a vibration"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_bright" msgid="769646735950329315">"Move somewhere with gentler lighting and try again"</string>
     <string name="security_settings_fingerprint_v2_enroll_error_max_attempts" msgid="1464972470750764128">"You’ve reached the maximum number of attempts"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_home_screen (6677856383184441160) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_home_screen" msgid="6677856383184441160">"Use your fingerprint to unlock your phone or for authentication, like when you sign in to apps or approve a purchase\n\n"<annotation id="url">"Learn more"</annotation></string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"Skip screen lock?"</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1570832293693405757">"Device protection features won’t be turned on. You won’t be able to prevent others from using this tablet if it’s lost, stolen or reset."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4618501606519351904">"Device protection features won’t be turned on. You won’t be able to prevent others from using this device if it’s lost, stolen or reset."</string>
@@ -2740,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App usage for"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Process Stats"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memory use"</string>
@@ -4829,8 +4838,7 @@
     <string name="storage_volume_total" msgid="7102720999351050601">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"used"</string>
     <string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> used"</string>
-    <!-- no translation found for storage_total_summary (7163360249534964272) -->
-    <skip />
+    <string name="storage_total_summary" msgid="7163360249534964272">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> total"</string>
     <string name="clear_instant_app_data" msgid="5951258323364386357">"Clear app"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Do you want to remove this instant app?"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"Open"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index a70df47..48fd8db 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -434,8 +434,7 @@
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_fast" msgid="5891227328100822018">"Lift your finger after you feel a vibration"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_bright" msgid="769646735950329315">"Move somewhere with gentler lighting and try again"</string>
     <string name="security_settings_fingerprint_v2_enroll_error_max_attempts" msgid="1464972470750764128">"You’ve reached the maximum number of attempts"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_home_screen (6677856383184441160) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_home_screen" msgid="6677856383184441160">"Use your fingerprint to unlock your phone or for authentication, like when you sign in to apps or approve a purchase\n\n"<annotation id="url">"Learn more"</annotation></string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"Skip screen lock?"</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1570832293693405757">"Device protection features won’t be turned on. You won’t be able to prevent others from using this tablet if it’s lost, stolen or reset."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4618501606519351904">"Device protection features won’t be turned on. You won’t be able to prevent others from using this device if it’s lost, stolen or reset."</string>
@@ -2740,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App usage for"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Process Stats"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memory use"</string>
@@ -4829,8 +4838,7 @@
     <string name="storage_volume_total" msgid="7102720999351050601">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"used"</string>
     <string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> used"</string>
-    <!-- no translation found for storage_total_summary (7163360249534964272) -->
-    <skip />
+    <string name="storage_total_summary" msgid="7163360249534964272">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> total"</string>
     <string name="clear_instant_app_data" msgid="5951258323364386357">"Clear app"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Do you want to remove this instant app?"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"Open"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 6c2bbf3..712af9e 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -434,8 +434,7 @@
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_fast" msgid="5891227328100822018">"Lift your finger after you feel a vibration"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_bright" msgid="769646735950329315">"Move somewhere with gentler lighting and try again"</string>
     <string name="security_settings_fingerprint_v2_enroll_error_max_attempts" msgid="1464972470750764128">"You’ve reached the maximum number of attempts"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_home_screen (6677856383184441160) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_home_screen" msgid="6677856383184441160">"Use your fingerprint to unlock your phone or for authentication, like when you sign in to apps or approve a purchase\n\n"<annotation id="url">"Learn more"</annotation></string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"Skip screen lock?"</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1570832293693405757">"Device protection features won’t be turned on. You won’t be able to prevent others from using this tablet if it’s lost, stolen or reset."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4618501606519351904">"Device protection features won’t be turned on. You won’t be able to prevent others from using this device if it’s lost, stolen or reset."</string>
@@ -2740,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App usage for"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Process Stats"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Geeky stats about running processes"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memory use"</string>
@@ -4829,8 +4838,7 @@
     <string name="storage_volume_total" msgid="7102720999351050601">"Used of <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"used"</string>
     <string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> used"</string>
-    <!-- no translation found for storage_total_summary (7163360249534964272) -->
-    <skip />
+    <string name="storage_total_summary" msgid="7163360249534964272">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> total"</string>
     <string name="clear_instant_app_data" msgid="5951258323364386357">"Clear app"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Do you want to remove this instant app?"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"Open"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index ce1343a..629f9e5 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -2739,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‎‎‏‏‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‏‎‏‎‎‎‎‎‏‏‎‏‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎App usage for‎‏‎‎‏‎"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‏‎am‎‏‎‎‏‎"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‏‏‎‏‎‎pm‎‏‎‎‏‎"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‎‏‏‏‏‏‎‎‏‏‏‏‎‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‏‎‎‏‏‏‎‏‎‏‎‎‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‎‎Process Stats‎‏‎‎‏‎"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‏‎‎‎‏‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎Geeky stats about running processes‎‏‎‎‏‎"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‏‎‎‏‏‎‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‎‏‎‎‎‎‏‎‎‏‎‏‎‏‎‎Memory use‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 01f82d6..89ed9e4 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uso de apps"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estadísticas de procesos"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estadísticas para geeks sobre procesos activos"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Uso de memoria"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 5df6c50..63c9101 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uso de la aplicación"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"h"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"h"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estadísticas de procesos"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estadísticas técnicas sobre procesos en ejecución"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Uso de memoria"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 9854d9c..a740af1 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Rakenduse kasutus:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Protsessi statistika"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Tehnilised üksikasjad protsesside käitamise kohta"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Mälu kasutamine"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 9ca9323..dc1db8e 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Aplikazioek erabilitakoa"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Prozesu-estatistikak"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Exekutatzen ari diren prozesuei buruzko estatistika zehatzak"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memoriaren erabilera"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 6df66ed..6465486 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"استفاده از برنامه در"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"ق.ظ"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ب.ظ"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-fi/strings.xml b/res/values-fi/strings.xml
index 1f4601b..3646974 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Sovelluksen käyttö:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"ap"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ip"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Käsittelytiedot"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Käsittelyn tarkat tiedot"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Muistin käyttö"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index bf13bae..ec18679 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Utilisation par l\'application :"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistiques des processus"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistiques détaillées sur les processus en cours d\'exécution"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Mémoire utilisée"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index a83975e..bf9a829 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Utilisation de l\'appli -"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistiques relatives aux processus"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistiques détaillées relatives aux processus en cours d\'exécution"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Utilisation de la mémoire"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 5a43352..8739124 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uso das aplicacións durante"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a. m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p. m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estatísticas de procesos"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estatísticas frikis sobre procesos en execución"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Uso da memoria"</string>
@@ -4588,9 +4598,9 @@
     <string name="page_tab_title_summary" msgid="7188875610123234454">"Todo"</string>
     <string name="page_tab_title_support" msgid="3235725053332345773">"Asistencia e consellos"</string>
     <string name="developer_smallest_width" msgid="632354817870920911">"Menor largura"</string>
-    <string name="premium_sms_none" msgid="8737045049886416739">"Ningunha aplicación instalada solicitou acceso ás mensaxes premium"</string>
-    <string name="premium_sms_warning" msgid="2192300872411073324">"É posible que teñas que pagar polas mensaxes premium, cuxos custos se engadirán ás facturas do teu operador. Se activas o permiso para unha aplicación, poderás enviar mensaxes premium a través desa aplicación."</string>
-    <string name="premium_sms_access" msgid="5605970342699013212">"Acceso ás SMS premium"</string>
+    <string name="premium_sms_none" msgid="8737045049886416739">"Ningunha aplicación instalada solicitou acceso ás SMS de tarificación adicional"</string>
+    <string name="premium_sms_warning" msgid="2192300872411073324">"As SMS de tarificación adicional poden implicar cargos engadidos nas facturas do teu operador. Se activas o permiso para unha aplicación, poderás enviar este tipo de mensaxes a través desa aplicación."</string>
+    <string name="premium_sms_access" msgid="5605970342699013212">"Acceso ás SMS de tarificación adicional"</string>
     <string name="bluetooth_disabled" msgid="835838280837359514">"Desactivado"</string>
     <string name="bluetooth_connected_summary" msgid="8043167194934315712">"Conectado a: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="2294954614327771844">"Conectado a varios dispositivos"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 0f552f7..f997a10 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -1544,7 +1544,7 @@
     <string name="storage_internal_forget_confirm_title" msgid="379238668153099015">"<xliff:g id="NAME">^1</xliff:g> ભૂલી ગયાં?"</string>
     <string name="storage_internal_forget_confirm" msgid="5752634604952674123">"આ <xliff:g id="NAME">^1</xliff:g> પર સંગ્રહિત તમામ ઍપ્લિકેશનો, ફોટો અને ડેટા કાયમ માટે જતો રહેશે."</string>
     <string name="storage_detail_images" msgid="6003883845718804371">"Images"</string>
-    <string name="storage_detail_dialog_system" msgid="7461009051858709479">"સિસ્ટમમાં Android વર્ઝન <xliff:g id="VERSION">%s</xliff:g> ચલાવવા માટે ઉપયોગી ફાઇલોનો સમાવેશ છે"</string>
+    <string name="storage_detail_dialog_system" msgid="7461009051858709479">"સિસ્ટમમાં એવી ફાઇલો છે કે જેનો ઉપયોગ Android વર્ઝન <xliff:g id="VERSION">%s</xliff:g> ચલાવવા માટે કરવામાં આવે છે"</string>
     <string name="storage_wizard_init_title" msgid="9036374223934708619">"તમારું <xliff:g id="NAME">^1</xliff:g> સેટ કરો"</string>
     <string name="storage_wizard_init_external_title" msgid="6540132491909241713">"પોર્ટેબલ સંગ્રહ તરીકે ઉપયોગ કરો"</string>
     <string name="storage_wizard_init_external_summary" msgid="5807552934494462984">"ઉપકરણો વચ્ચે ફોટો અને અન્ય મીડિયા ખસેડવા માટે."</string>
@@ -2006,8 +2006,8 @@
     <string name="no_applications" msgid="985069304755391640">"કોઈ ઍપ નથી."</string>
     <string name="internal_storage" msgid="999496851424448809">"આંતરિક સ્ટોરેજ"</string>
     <string name="recompute_size" msgid="1098091228370999128">"કદની ફરીથી ગણના કરી રહ્યું છે…"</string>
-    <string name="clear_data_dlg_title" msgid="180446967743732410">"ઍપ્લિકેશન ડેટા કાઢી નાખીએ?"</string>
-    <string name="clear_data_dlg_text" msgid="7870723948123690332">"આ તમામ એપ્લિકેશનનો ડેટા કાયમી રીતે કાઢી નાંખવામાં આવશે. આમાં તમામ ફાઇલો, સેટિંગ્સ, એકાઉન્ટ્સ, ડેટાબેસેસ વગેરે શામેલ છે."</string>
+    <string name="clear_data_dlg_title" msgid="180446967743732410">"ઍપનો ડેટા ડિલીટ કરીએ?"</string>
+    <string name="clear_data_dlg_text" msgid="7870723948123690332">"આ તમામ ઍપનો ડેટા કાયમી રીતે ડિલીટ કરવામાં આવશે. આમાં તમામ ફાઇલો, સેટિંગ, એકાઉન્ટ, ડેટાબેઝ વગેરે શામેલ છે."</string>
     <string name="dlg_ok" msgid="1421350367857960997">"ઓકે"</string>
     <string name="dlg_cancel" msgid="5164705061530774899">"રદ કરો"</string>
     <string name="app_not_found_dlg_title" msgid="7122106240981109930"></string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"આ સમય માટે ઍપનો વપરાશ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-hi/strings.xml b/res/values-hi/strings.xml
index d5e6b13..00b2f7c 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"बैटरी के इस्तेमाल की जानकारी"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-hr/strings.xml b/res/values-hr/strings.xml
index 3806934..c39ded3 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Upotreba aplikacije"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"prijepodne"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"popodne"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistički podaci o procesima"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Detaljni statistički podaci o trenutačnim procesima"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Upotreba memorije"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 265072a..6194fb7 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Alkalmazáshasználat –"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"de."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"du."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Folyamatstatisztikák"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"A futó folyamatok statisztikái"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memóriahasználat"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index b3dd58e..d6f9923 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Հավելվածների կողմից մարտկոցի օգտագործումը"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-in/strings.xml b/res/values-in/strings.xml
index 46eae15..7d94636 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Penggunaan aplikasi selama"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistik Proses"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistik teknis tentang proses yang berjalan"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Penggunaan memori"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index d51b117..13b7e9d 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Forritanotkun fyrir"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"f.h."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"e.h."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Tölfræði vinnsluferla"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Nördaleg tölfræði um opin vinnsluferli"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Minnisnotkun"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index d599941..51dd746 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Utilizzo da parte delle app in"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistiche sui processi"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistiche tecniche sui processi in esecuzione"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memoria usata"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 4138caf..103b6e0 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"צריכת הסוללה של האפליקציה במשך"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 5b7177f..c446b80 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"アプリのバッテリー使用量:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"午前"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"午後"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ka/strings.xml b/res/values-ka/strings.xml
index 7ac69fb..6f1eb43 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"აპის გამოყენება შემდეგი დროის მანძილზე:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-kk/arrays.xml b/res/values-kk/arrays.xml
index cadd5ff..2a431b9 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -522,7 +522,7 @@
   </string-array>
   <string-array name="autofill_logging_level_entries">
     <item msgid="2263571982739726576">"Өшіру"</item>
-    <item msgid="4295717421282345505">"Жөндеу"</item>
+    <item msgid="4295717421282345505">"Түзету"</item>
     <item msgid="8657797891533816070">"Толық ақпарат"</item>
   </string-array>
   <string-array name="cdma_system_select_choices">
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 7955e13..2d7b31b 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Қолданбаның батарея зарядын пайдалануы"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"түске дейін"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"түстен кейін"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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>
@@ -4278,7 +4288,7 @@
     <string name="assist_access_context_summary" msgid="6951814413185646275">"Көмекші қолданбаға мәтін сияқты экран мазмұнына кіруге рұқсат ету"</string>
     <string name="assist_access_screenshot_title" msgid="4395902231753643633">"Скриншотты пайдалану"</string>
     <string name="assist_access_screenshot_summary" msgid="5276593070956201863">"Қолданбаға экран кескінін пайдалануға рұқсат ету"</string>
-    <string name="assist_flash_title" msgid="5449512572885550108">"Экранды жарықтандыру"</string>
+    <string name="assist_flash_title" msgid="5449512572885550108">"Экранды жыпылықтату"</string>
     <string name="assist_flash_summary" msgid="3032289860177784594">"Көмекші қолданба экрандағы мәтінге не скриншотқа кірген кезде, экранның шеттері жанады"</string>
     <string name="assist_footer" msgid="8248015363806299068">"Көмекші қолданбалар көріп жатқан экран ақпаратының негізінде сізге көмектесе алады. Кейбір қолданбалар көмекті арттыру үшін іске қосу құралын да, дауыспен енгізу қызметтерін де пайдаланады."</string>
     <string name="average_memory_use" msgid="717313706368825388">"Жадты орташа пайдалануы"</string>
@@ -5143,10 +5153,10 @@
     <string name="internet_connectivity_panel_title" msgid="2044237561024730108">"Интернет байланысы"</string>
     <string name="volume_connectivity_panel_title" msgid="8772438444782726321">"Дыбыс деңгейі"</string>
     <string name="mobile_data_ap_mode_disabled" msgid="6067959496888990983">"Ұшақ режимінде қолжетімді емес."</string>
-    <string name="force_desktop_mode" msgid="1336913605091334238">"Жұмыс үстелінің режимін мәжбүрлі қосу"</string>
-    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Қосымша дисплейлерде эксперименттік жұмыс үстелі режимін мәжбүрлі қосу"</string>
-    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлшемі өзгермейтін қолданбаны \"Multi-window\" режимінде қосу"</string>
-    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлшемі өзгермейтін қолданбаларды \"Multi-window\" режимінде пайдалануға мүмкіндік береді."</string>
+    <string name="force_desktop_mode" msgid="1336913605091334238">"Жұмыс үстелінің режимін мәжбүрлеп қосу"</string>
+    <string name="force_desktop_mode_summary" msgid="4587416867846930479">"Қосымша дисплейлерде эксперименттік жұмыс үстелі режимін мәжбүрлеп қосу"</string>
+    <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Өлшемі өзгермейтін қолданба мен көп терезелі режим"</string>
+    <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Өлшемі өзгермейтін қолданбаларды көп терезелі режимде пайдалануға мүмкіндік береді."</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Қараңғылауға жол бермеу"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"Қараңғы тақырыпты мәжбүрлеп қойғанда, \"Әрдайым қосулы\" мәніне өзгертеді"</string>
     <string name="enable_blurs_on_windows_title" msgid="4218144213800778872">"Бұлдырату функциясын қосу"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index 93fd81f..6dbc6fc 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ការប្រើប្រាស់កម្មវិធីក្នុងរយៈពេល"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-kn/strings.xml b/res/values-kn/strings.xml
index aa58845..298fc72 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ಆ್ಯಪ್ ಬಳಕೆ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ko/strings.xml b/res/values-ko/strings.xml
index 6cb8877..6de45f6 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"앱 사용량:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"오전"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"오후"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ky/strings.xml b/res/values-ky/strings.xml
index 91f3ddf..ba0125c 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Колдонмонун иштетилиши:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"түшкө чейин"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"түштөн кийин"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-lo/strings.xml b/res/values-lo/strings.xml
index 65d3c44..e7b0d66 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ການໃຊ້ແອັບສຳລັບ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"ກ່ອນທ່ຽງ"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ຫຼັງທ່ຽງ"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-lt/strings.xml b/res/values-lt/strings.xml
index 87d3957..6d22b3c 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Programos naudojimas per"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"priešpiet"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"popiet"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Procesų statistika"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Entuziastų pateikta statistika apie vykstančius procesus"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Naudojama atmintis"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index dc679ab..829a1e8 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Lietotnes izmantojums:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"priekšpusdienā"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pēcpusdienā"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Procesu statistika"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistika par darbības procesiem"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Atmiņas lietojums"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 964c9f7..087dd99 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Користење на апликацијата во"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"прет."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"попл."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ml/strings.xml b/res/values-ml/strings.xml
index 654d12d..4c61a26 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ഇനിപ്പറയുന്നതിനുള്ള ആപ്പ് ഉപയോഗം"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-mn/strings.xml b/res/values-mn/strings.xml
index 82be53b..f597bd9 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Дараахын аппын ашиглалт"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"үө"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"үх"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-mr/strings.xml b/res/values-mr/strings.xml
index 777eec3..ed43386 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -2743,6 +2743,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"यासाठी ॲपचा वापर"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ms/strings.xml b/res/values-ms/strings.xml
index fdeb2d0..84cfb33 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -1281,7 +1281,7 @@
     <string name="auto_rotate_summary_no_permission" msgid="1025061139746254554">"Akses kamera diperlukan untuk Pengesanan Wajah. Ketik untuk mengurus kebenaran bagi Perkhidmatan Pemeribadian Peranti"</string>
     <string name="auto_rotate_manage_permission_button" msgid="2591146085906382385">"Urus kebenaran"</string>
     <string name="night_display_title" msgid="8532432776487216581">"Cahaya Malam"</string>
-    <string name="night_display_text" msgid="4789324042428095383">"Cahaya Malam memberi seri warna kuning jingga pada skrin anda. Ini memudahkan lagi anda melihat skrin atau membaca dalam cahaya malap dan mungkin dapat membantu anda tidur dengan lebih mudah."</string>
+    <string name="night_display_text" msgid="4789324042428095383">"Cahaya Malam memberikan seri warna kuning jingga pada skrin anda. Ini memudahkan lagi anda melihat skrin atau membaca dalam cahaya malap dan mungkin dapat membantu anda tidur dengan lebih mudah."</string>
     <string name="night_display_auto_mode_title" msgid="5869128421470824381">"Jadual"</string>
     <string name="night_display_auto_mode_never" msgid="2721729920187175239">"Tiada"</string>
     <string name="night_display_auto_mode_custom" msgid="3938791496034086916">"Dihidupkan pada waktu tersuai"</string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Penggunaan apl untuk"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"pg"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ptg"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistik Proses"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistik skema tentang proses yang sedang berjalan"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Penggunaan memori"</string>
@@ -5233,8 +5243,8 @@
     <string name="power_menu_privacy_show_cards" msgid="8937303188629541026">"Tunjukkan kad apabila dikunci"</string>
     <string name="power_menu_privacy_hide" msgid="1617102911157977095">"Sembunyikan kad dan kawalan apabila dikunci"</string>
     <string name="power_menu_privacy_not_secure" msgid="6247119934128206924">"Untuk menggunakan, mula-mula tetapkan kunci skrin"</string>
-    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Tahan untuk Pembantu"</string>
-    <string name="power_menu_long_press_for_assist_summary" msgid="8251928804984560312">"Cetuskan Pembantu dengan menahan butang kuasa"</string>
+    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Tahan untuk Assistant"</string>
+    <string name="power_menu_long_press_for_assist_summary" msgid="8251928804984560312">"Cetuskan Assistant dengan menahan butang kuasa"</string>
     <string name="device_controls_setting_toggle" msgid="8972005569207737469">"Tunjukkan kawalan peranti"</string>
     <string name="cards_passes_setting_toggle" msgid="3380984848045396695">"Tunjukkan kad &amp; pas"</string>
     <string name="device_controls_setting_subtitle" msgid="4388544861427973600">"Untuk mengakses kawalan bagi peranti yang disambungkan, tahan butang Kuasa"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 9c147af..ee291c7 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"အက်ပ်အသုံးပြုမှု"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"နံနက်"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ညနေ"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-nb/strings.xml b/res/values-nb/strings.xml
index 033bf31..4817287 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Appbruk"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Prosess-statistikk"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Nerdete statistikk om prosesser som er i gang"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Minnebruk"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index f8ab2fd..00f701d 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -2751,6 +2751,16 @@
     <skip />
     <!-- no translation found for battery_usage_time_pm (1534468528902328570) -->
     <skip />
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-nl/strings.xml b/res/values-nl/strings.xml
index 13dba0f..73d45e6 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"App-gebruik voor"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Processtatistieken"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistieken voor nerds over actieve processen"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Geheugengebruik"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 06d2194..21f85d5 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ଏଥିପାଇଁ ଆପ୍ ବ୍ୟବହାର"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 32bff38..9dcde7d 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ਇਸ ਦੌਰਾਨ ਐਪ ਦੀ ਵਰਤੋਂ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 dde7b47..814dade 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Wykorzystanie przez aplikacje w ciągu"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statystyki procesów"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Rozbudowane statystyki uruchomionych procesów"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Użycie pamięci"</string>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 936c512..89362e5 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -840,7 +840,7 @@
     <string name="wifi_ask_disable" msgid="1663208096020309639">"<xliff:g id="REQUESTER">%s</xliff:g> quer desativar o Wi-Fi"</string>
     <string name="art_verifier_for_debuggable_title" msgid="1926445785190030479">"Verificar bytecode de apps depuráveis"</string>
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permitir que o ART verifique o bytecode de apps depuráveis"</string>
-    <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualiz."</string>
+    <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualização"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostrar a taxa de atualização de tela atual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="3622326550467939809">"Permitir troca de dados quando o tablet encostar em um dispositivo NFC"</string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uso do app em"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"manhã"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"tarde/noite"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estatísticas de processo"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estatísticas detalhadas sobre os processos em execução"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Uso da memória"</string>
@@ -3928,7 +3938,7 @@
     <string name="zen_mode_messages_title" msgid="1777598523485334405">"Mensagens"</string>
     <string name="zen_mode_messages_header" msgid="253721635061451577">"Mensagens que podem interromper"</string>
     <string name="zen_mode_messages_footer" msgid="6002468050854126331">"Para garantir que as mensagens permitidas emitam sons, verifique se o dispositivo está configurado para tocar"</string>
-    <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Durante \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\", as mensagens recebidas são bloqueadas. Você pode ajustar as configurações para permitir que seus amigos, familiares ou outros contatos falem com você."</string>
+    <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Enquanto a programação \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\" estiver ativada, as mensagens recebidas serão bloqueadas. Você pode ajustar as configurações para permitir que seus amigos, familiares ou outros contatos falem com você."</string>
     <string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Você pode receber todas as mensagens"</string>
     <string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Você pode receber todas as chamadas"</string>
     <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Nenhum}=1{1 contato}one{# contato}other{# contatos}}"</string>
@@ -5250,8 +5260,8 @@
     <string name="no_5g_in_dsds_text" product="tablet" msgid="4757328474425714624">"Ao usar dois chips, este tablet será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="device" msgid="6983783505032683314">"Ao usar dois chips, este dispositivo será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="cached_apps_freezer" msgid="1057519579761550350">"Suspender execução para apps em cache"</string>
-    <string name="overlay_settings_title" msgid="1032863083496396365">"Permitir sobreposições de tela no app Config."</string>
-    <string name="overlay_settings_summary" msgid="2745336273786148166">"Permita que apps que podem ser sobrepostos a outros sejam abertos sobre telas de configuração"</string>
+    <string name="overlay_settings_title" msgid="1032863083496396365">"Permitir sobreposições de tela no app Configurações"</string>
+    <string name="overlay_settings_summary" msgid="2745336273786148166">"Permitir que apps que podem ser sobrepostos a outros sejam abertos sobre telas de configuração"</string>
     <string name="media_controls_title" msgid="403271085636252597">"Mídia"</string>
     <string name="media_controls_summary" msgid="3573121049460596520">"Player de mídia nas Configurações rápidas"</string>
     <string name="media_controls_resume_description" msgid="7702723104730495227">"Mostrar o player de mídia por um período longo para retomar a reprodução com facilidade"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index fb38ca4..453e2cc 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Utilização da app durante"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"da manhã"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"da tarde"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estatísticas do Processo"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estatísticas de peritos acerca dos processos em execução"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Utilização da memória"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 936c512..89362e5 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -840,7 +840,7 @@
     <string name="wifi_ask_disable" msgid="1663208096020309639">"<xliff:g id="REQUESTER">%s</xliff:g> quer desativar o Wi-Fi"</string>
     <string name="art_verifier_for_debuggable_title" msgid="1926445785190030479">"Verificar bytecode de apps depuráveis"</string>
     <string name="art_verifier_for_debuggable_summary" msgid="4802875841862652879">"Permitir que o ART verifique o bytecode de apps depuráveis"</string>
-    <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualiz."</string>
+    <string name="show_refresh_rate" msgid="5742688821872354973">"Mostrar taxa de atualização"</string>
     <string name="show_refresh_rate_summary" msgid="3558118122374609663">"Mostrar a taxa de atualização de tela atual"</string>
     <string name="nfc_quick_toggle_title" msgid="3607620705230351666">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="3622326550467939809">"Permitir troca de dados quando o tablet encostar em um dispositivo NFC"</string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uso do app em"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"manhã"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"tarde/noite"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Estatísticas de processo"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Estatísticas detalhadas sobre os processos em execução"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Uso da memória"</string>
@@ -3928,7 +3938,7 @@
     <string name="zen_mode_messages_title" msgid="1777598523485334405">"Mensagens"</string>
     <string name="zen_mode_messages_header" msgid="253721635061451577">"Mensagens que podem interromper"</string>
     <string name="zen_mode_messages_footer" msgid="6002468050854126331">"Para garantir que as mensagens permitidas emitam sons, verifique se o dispositivo está configurado para tocar"</string>
-    <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Durante \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\", as mensagens recebidas são bloqueadas. Você pode ajustar as configurações para permitir que seus amigos, familiares ou outros contatos falem com você."</string>
+    <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"Enquanto a programação \"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\" estiver ativada, as mensagens recebidas serão bloqueadas. Você pode ajustar as configurações para permitir que seus amigos, familiares ou outros contatos falem com você."</string>
     <string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Você pode receber todas as mensagens"</string>
     <string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Você pode receber todas as chamadas"</string>
     <string name="zen_mode_contacts_count" msgid="6568631261119795799">"{count,plural, =0{Nenhum}=1{1 contato}one{# contato}other{# contatos}}"</string>
@@ -5250,8 +5260,8 @@
     <string name="no_5g_in_dsds_text" product="tablet" msgid="4757328474425714624">"Ao usar dois chips, este tablet será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="no_5g_in_dsds_text" product="device" msgid="6983783505032683314">"Ao usar dois chips, este dispositivo será limitado ao 4G. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="cached_apps_freezer" msgid="1057519579761550350">"Suspender execução para apps em cache"</string>
-    <string name="overlay_settings_title" msgid="1032863083496396365">"Permitir sobreposições de tela no app Config."</string>
-    <string name="overlay_settings_summary" msgid="2745336273786148166">"Permita que apps que podem ser sobrepostos a outros sejam abertos sobre telas de configuração"</string>
+    <string name="overlay_settings_title" msgid="1032863083496396365">"Permitir sobreposições de tela no app Configurações"</string>
+    <string name="overlay_settings_summary" msgid="2745336273786148166">"Permitir que apps que podem ser sobrepostos a outros sejam abertos sobre telas de configuração"</string>
     <string name="media_controls_title" msgid="403271085636252597">"Mídia"</string>
     <string name="media_controls_summary" msgid="3573121049460596520">"Player de mídia nas Configurações rápidas"</string>
     <string name="media_controls_resume_description" msgid="7702723104730495227">"Mostrar o player de mídia por um período longo para retomar a reprodução com facilidade"</string>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 1bb8a71..74b9d26 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -101,7 +101,7 @@
     <!-- no translation found for wifi_tether_security:2 (6851763638266088835) -->
     <!-- no translation found for wifi_tether_security:3 (5512131148045414341) -->
   <string-array name="eap_ocsp_type">
-    <item msgid="8568170800958331461">"Nu verifica"</item>
+    <item msgid="8568170800958331461">"Nu verificați"</item>
     <item msgid="5703177653586269306">"Solicitați starea certificatelor"</item>
     <item msgid="326388247868439528">"Solicitați obligatoriu starea certificatelor"</item>
     <item msgid="1090956283885790552">"Solicitați toate stările certif. care nu prezintă încredere"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index f734f22..b0390a6 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -1246,10 +1246,10 @@
     <string name="auto_rotate_option_face_based" msgid="3438645484087953174">"Activată – În funcție de chip"</string>
     <string name="auto_rotate_switch_face_based" msgid="7824467067774120000">"Activați Detectarea facială"</string>
     <string name="color_mode_title" msgid="8666690832113906028">"Culori"</string>
-    <string name="color_mode_option_natural" msgid="6192875655101283303">"Natural"</string>
-    <string name="color_mode_option_boosted" msgid="4698797857766774289">"Intensificat"</string>
+    <string name="color_mode_option_natural" msgid="6192875655101283303">"Naturale"</string>
+    <string name="color_mode_option_boosted" msgid="4698797857766774289">"Intensificate"</string>
     <string name="color_mode_option_saturated" msgid="3413853820158447300">"Saturat"</string>
-    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptiv"</string>
+    <string name="color_mode_option_automatic" msgid="2281217686509980870">"Adaptive"</string>
     <string name="color_mode_summary_natural" msgid="8298840714001791628">"Utilizați numai culori exacte"</string>
     <string name="color_mode_summary_automatic" msgid="8157885594041700275">"Ajustați între culorile vii și cele exacte"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="6413384391658481700">"Doresc comutarea automată a orientării atunci când se rotește tableta"</string>
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Utilizarea de către aplicație pentru"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"a.m."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"p.m."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistici de proces"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistici inteligente despre procesele care rulează"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Utilizarea memoriei"</string>
@@ -4255,7 +4265,7 @@
     <string name="default_app" msgid="445053777504688596">"(Prestabilită)"</string>
     <string name="system_app" msgid="1863291702508355041">"(Sistem)"</string>
     <string name="system_default_app" msgid="2647834628622214931">"(Valoare prestabilită de sistem)"</string>
-    <string name="apps_storage" msgid="643866814746927111">"Stocare aplicații"</string>
+    <string name="apps_storage" msgid="643866814746927111">"Stocare per aplicație"</string>
     <string name="usage_access" msgid="5487993885373893282">"Acces la datele de utilizare"</string>
     <string name="permit_usage_access" msgid="179630895262172674">"Permiteți accesul la datele de utilizare"</string>
     <string name="app_usage_preference" msgid="7062447555623339120">"Preferințe date de utilizare aplicație"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index c4cabb9..2f93b38 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Использование приложениями за"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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>
@@ -3683,7 +3693,7 @@
     <string name="configure_notification_settings" msgid="1492820231694314376">"Уведомления"</string>
     <string name="notification_dashboard_summary" msgid="7530169251902320652">"История уведомлений, разговоры"</string>
     <string name="conversation_notifs_category" msgid="2549844862379963273">"Разговоры"</string>
-    <string name="recent_notifications" msgid="1105631022180160436">"Недавно отправленные"</string>
+    <string name="recent_notifications" msgid="1105631022180160436">"Недавние уведомления"</string>
     <string name="recent_notifications_see_all_title" msgid="3087299996651692987">"Смотреть все за последние 7 дней"</string>
     <string name="advanced_section_header" msgid="6478709678084326738">"Общие"</string>
     <string name="profile_section_header" msgid="4970209372372610799">"Рабочие уведомления"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 8ac7a37..6702b47 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"යෙදුම් භාවිතය"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"පෙ.ව."</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ප.ව."</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-sk/strings.xml b/res/values-sk/strings.xml
index f38bef1..a5ca7d6 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Spotreba batérie aplikáciou"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Štatistiky procesov"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Podrobné štatistiky spustených procesov"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Využitie pamäte"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index baaf4b8..69035dc 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -54,7 +54,7 @@
     <string name="font_size_summary" msgid="1296835853522566260">"Pomanjšava ali povečava besedila na zaslonu"</string>
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Pomanjšanje"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Povečanje"</string>
-    <string name="auto_rotate_settings_primary_switch_title" msgid="1150797732067921015">"Uporaba samodejnega zasuka"</string>
+    <string name="auto_rotate_settings_primary_switch_title" msgid="1150797732067921015">"Uporabi samodejni zasuk"</string>
     <string name="smart_rotate_text_headline" msgid="4775952278533715352">"Zaznavanje obraza uporablja sprednji fotoaparat za izboljšanje natančnosti samodejnega zasuka. Slike se nikoli ne shranijo in ne pošiljajo Googlu.&lt;br&gt;&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Več o tem&lt;/a&gt;"</string>
     <string name="font_size_preview_text_headline" msgid="1173103737980511652">"Vzorčno besedilo"</string>
     <string name="font_size_preview_text_title" msgid="6363561029914452382">"Čudoviti čarovnik iz Oza"</string>
@@ -2229,7 +2229,7 @@
     <string name="app_name_label" msgid="3809910527680143673">"Aplikacija"</string>
     <string name="last_time_used_label" msgid="2639712813493534074">"Zadnjič uporabljeno"</string>
     <string name="usage_time_label" msgid="9105343335151559883">"Čas uporabe"</string>
-    <string name="accessibility_settings" msgid="4713215774904704682">"Za osebe s posebnimi potrebami"</string>
+    <string name="accessibility_settings" msgid="4713215774904704682">"Funkcije za ljudi s posebnimi potrebami"</string>
     <string name="accessibility_settings_title" msgid="6739115703615065716">"Nastavitve pripomočkov za ljudi s posebnimi potrebami"</string>
     <string name="accessibility_settings_summary" msgid="2195085206729325737">"Bralniki zaslona, prikaz, interakcija"</string>
     <string name="vision_settings_title" msgid="8919983801864103069">"Nastavitve za slepe in slabovidne"</string>
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Uporaba aplikacij v:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"dopoldne"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"popoldne"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistični podatki o procesih"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistični podatki o procesih, ki se izvajajo"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Poraba pomnilnika"</string>
@@ -3779,7 +3789,7 @@
     <string name="conversations_category_title" msgid="5586541340846847798">"Pogovori"</string>
     <string name="conversation_category_title" msgid="6777135786004214149">"Pogovor"</string>
     <string name="conversation_section_switch_title" msgid="3332885377659473775">"Razdelek s pogovorom"</string>
-    <string name="conversation_section_switch_summary" msgid="6123587625929439674">"Aplikaciji dovoli uporabo razdelka s pogovorom"</string>
+    <string name="conversation_section_switch_summary" msgid="6123587625929439674">"Aplikaciji dovoli uporabo razdelka s pogovorom."</string>
     <string name="demote_conversation_title" msgid="6355383023376508485">"Ni pogovor"</string>
     <string name="demote_conversation_summary" msgid="4319929331165604112">"Odstrani iz razdelka Pogovor."</string>
     <string name="promote_conversation_title" msgid="4731148769888238722">"To je pogovor"</string>
@@ -3860,15 +3870,15 @@
     <string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"Želite storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dovoliti dostop do obvestil?"</string>
     <string name="notification_assistant_security_warning_summary" msgid="6127380535875810710">"Pametna obvestila lahko preberejo vso vsebino obvestil, vključno z osebnimi podatki, kot so imena in sporočila stikov. Ta funkcija lahko tudi opusti obvestila in izvaja dejanja z gumbi v obvestilih, kot je sprejemanje telefonskih klicev. \n\nPoleg tega lahko ta funkcija vklopi ali izklopi prednostni način ter spremeni povezane nastavitve."</string>
     <string name="notification_listener_security_warning_title" msgid="5791700876622858363">"Želite storitvi <xliff:g id="SERVICE">%1$s</xliff:g> dovoliti dostop do obvestil?"</string>
-    <string name="notification_listener_security_warning_summary" msgid="1658213659262173405">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> lahko prebere vsa obvestila, vključno z osebnimi podatki, kot so imena stikov in besedilo prejetih sporočil. Ta aplikacija bo lahko tudi opustila obvestila in izvajala dejanja z gumbi v obvestilih, vključno s sprejemanjem telefonskih klicev. \n\nS tem lahko aplikacija tudi vklopi ali izklopi način »ne moti« in spremeni povezane nastavitve."</string>
-    <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Če za aplikacijo <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> izklopite dostop do obvestil, bo dostop do načina »ne moti« morda tudi izklopljen."</string>
+    <string name="notification_listener_security_warning_summary" msgid="1658213659262173405">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> lahko prebere vsa obvestila, vključno z osebnimi podatki, kot so imena stikov in besedilo prejetih sporočil. Ta aplikacija bo lahko tudi opustila obvestila in izvajala dejanja z gumbi v obvestilih, vključno s sprejemanjem telefonskih klicev. \n\nS tem lahko aplikacija tudi vklopi ali izklopi način »Ne moti« in spremeni povezane nastavitve."</string>
+    <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Če za aplikacijo <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> izklopite dostop do obvestil, bo dostop do načina »Ne moti« morda tudi izklopljen."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"Izklop"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8802784105045594324">"Prekliči"</string>
     <string name="notification_listener_type_title" msgid="2791552789364336733">"Dovoljene vrste obvestil"</string>
     <string name="notif_type_ongoing" msgid="135675014223627555">"V realnem času"</string>
     <string name="notif_type_ongoing_summary" msgid="3412379452346027089">"Komunikacija v realnem času iz aplikacij v uporabi, navigacije, telefonskih klicev in od drugod."</string>
     <string name="notif_type_conversation" msgid="4383931408641374979">"Pogovori"</string>
-    <string name="notif_type_conversation_summary" msgid="897491668422411641">"Sporočila SMS in druga komunikacija"</string>
+    <string name="notif_type_conversation_summary" msgid="897491668422411641">"Sporočila SMS in druga komunikacija."</string>
     <string name="notif_type_alerting" msgid="4225291983925409612">"Privzeto"</string>
     <string name="notif_type_alerting_summary" msgid="6823969073567000728">"Obvestila, ki lahko sprožijo zvonjenje ali vibriranje (odvisno od nastavitev)."</string>
     <string name="notif_type_silent" msgid="6273951794420331010">"Tiho"</string>
@@ -5504,7 +5514,7 @@
     <string name="battery_saver_main_switch_title" msgid="5072135547489779352">"Uporaba varčevanja z energijo baterije"</string>
     <string name="do_not_disturb_main_switch_title_on" msgid="6965566556539821313">"Izklopi zdaj"</string>
     <string name="do_not_disturb_main_switch_title_off" msgid="7088088515823752545">"Vklopi zdaj"</string>
-    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Uporaba načina Nočna svetloba"</string>
+    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Uporabi način Nočna svetloba"</string>
     <string name="nfc_main_switch_title" msgid="6295839988954817432">"Uporaba tehnologije NFC"</string>
     <string name="adaptive_battery_main_switch_title" msgid="3127477920505485813">"Uporaba prilagod. varčevanja z energijo baterije"</string>
     <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Uporabi prilagodljivo svetlost"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 49c7723..db2fed1 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Përdorimi i aplikacionit për"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"paradite"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pasdite"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Statistikat e procesit"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Statistikat teknike për proceset në ekzekutim"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Përdorimi i memories"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index b7ed444..b578310 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -2778,6 +2778,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Потрошња од стране апликација у периоду"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"пре подне"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"по подне"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-sv/strings.xml b/res/values-sv/strings.xml
index 8fd80c9..a7bcd26 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Appanvändning för"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Processtatistik"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Nördig statistik om processer som körs"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Minnesanvändning"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index e8153be..ad6c5ac 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Matumizi ya programu katika"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Takwimu za Mchakato"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Takwimu za kitaalamu kuhusu michakato inayoendeshwa"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Kumbukumbu iliyotumika"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 4eba8c2..bbbe784 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"ஆப்ஸ் உபயோகம்"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-te/strings.xml b/res/values-te/strings.xml
index 076eb41..c0f5ed2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"కోసం యాప్ వినియోగం"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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 0f09046..766745b 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"การใช้งานแอปของ"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-tl/strings.xml b/res/values-tl/strings.xml
index 090a8cf..4f086ad 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Paggamit ng app sa"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Stats ng Proseso"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Mahahalagang istatistika tungkol sa mga tumatakbong proseso"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Memory na ginamit"</string>
@@ -5307,7 +5317,7 @@
     <string name="bluetooth_phonebook_access_dialog_title" msgid="7624607995928968721">"Payagan ang access sa mga contact at log ng tawag?"</string>
     <string name="bluetooth_phonebook_access_dialog_content" msgid="959658135522249170">"Gustong i-access ng isang Bluetooth device, ang <xliff:g id="DEVICE_NAME_0">%1$s</xliff:g>, ang iyong mga contact at log ng tawag. Kasama rito ang data tungkol sa mga papasok at papalabas na tawag.\n\nHindi ka pa nakakakonekta dati sa <xliff:g id="DEVICE_NAME_1">%2$s</xliff:g>."</string>
     <string name="category_name_brightness" msgid="8520372392029305084">"Liwanag"</string>
-    <string name="category_name_lock_display" msgid="8310402558217129670">"Display ng lock"</string>
+    <string name="category_name_lock_display" msgid="8310402558217129670">"I-lock ang display"</string>
     <string name="category_name_appearance" msgid="8287486771764166805">"Hitsura"</string>
     <string name="category_name_color" msgid="937514550918977151">"Kulay"</string>
     <string name="category_name_display_controls" msgid="7046581691184725216">"Iba pang kontrol sa display"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 1ce6bd5..10e34e2 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Şunun için uygulama kullanımı:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"öö"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"ös"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"İşlem İstatistikleri"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Meraklısı için, çalışan işlemlerle ilgili istatistikler"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Bellek kullanımı"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 351483b..7adf130 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -2816,6 +2816,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Споживання на роботу додатків"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"дп"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"пп"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-ur/strings.xml b/res/values-ur/strings.xml
index 8fd91b5..b17bf8f 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"اس میں اپپ کا استعمال:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-uz/strings.xml b/res/values-uz/strings.xml
index cbd2ecc..55e64b6 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -434,8 +434,7 @@
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_fast" msgid="5891227328100822018">"Barmoqni tebranishni sezganda oling"</string>
     <string name="security_settings_fingerprint_v2_enroll_acquire_too_bright" msgid="769646735950329315">"Yoriqroq joyga borib, qaytadan urining"</string>
     <string name="security_settings_fingerprint_v2_enroll_error_max_attempts" msgid="1464972470750764128">"Urinishlar soni qolmadi"</string>
-    <!-- no translation found for security_settings_fingerprint_v2_home_screen (6677856383184441160) -->
-    <skip />
+    <string name="security_settings_fingerprint_v2_home_screen" msgid="6677856383184441160">"Telefonni qulfdan chiqarish, ilovaga kirish yoki xaridni tasdiqlashda barmoq izingizdan foydalaning\n\n"<annotation id="url">"Batafsil"</annotation></string>
     <string name="lock_screen_intro_skip_title" msgid="342553937472568925">"Ekran qulfi sozlanmasinmi?"</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="1570832293693405757">"Qurilmani himoyalash funksiyalari yoqilmaydi. Agar planshetingiz yo‘qolsa, o‘g‘irlansa yoki asliga qaytarilsa, siz boshqalarning undan foydalanishiga to‘sqinlik qila olmaysiz."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="4618501606519351904">"Qurilmani himoyalash funksiyasi yoqilmaydi. Agar qurilmangiz yo‘qolib qolsa, o‘g‘irlansa yoki asliga qaytarilsa, siz boshqalarning undan foydalanishiga to‘sqinlik qila olmaysiz."</string>
@@ -2740,6 +2739,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Ilovalardan foydalanish:"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"AM"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"PM"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Jarayonlar statistikasi"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Ish jarayonlari haqidagi g‘alati statistikalar"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Band xotira"</string>
@@ -4829,8 +4838,7 @@
     <string name="storage_volume_total" msgid="7102720999351050601">"Jami: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="7211888326013020857">"band"</string>
     <string name="storage_usage_summary" msgid="4591121727356723463">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g> sarflandi"</string>
-    <!-- no translation found for storage_total_summary (7163360249534964272) -->
-    <skip />
+    <string name="storage_total_summary" msgid="7163360249534964272">"Jami: <xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string>
     <string name="clear_instant_app_data" msgid="5951258323364386357">"Ilova ma’lumotlarini tozalash"</string>
     <string name="clear_instant_app_confirmation" msgid="3964731334459209482">"Ushbu darhol ochiladigan ilova olib tashlansinmi?"</string>
     <string name="launch_instant_app" msgid="8503927414339606561">"Ochish"</string>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index b008229..7302598 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -104,7 +104,7 @@
     <item msgid="8568170800958331461">"Không xác minh"</item>
     <item msgid="5703177653586269306">"Yêu cầu trạng thái chứng chỉ"</item>
     <item msgid="326388247868439528">"Cần có trạng thái chứng chỉ"</item>
-    <item msgid="1090956283885790552">"Cần có tất cả trạng thái chứng chỉ không đáng tin cậy"</item>
+    <item msgid="1090956283885790552">"Cần có mọi trạng thái chứng chỉ không tin cậy"</item>
   </string-array>
   <string-array name="wifi_p2p_wps_setup">
     <item msgid="1446717102923442720">"Nút bấm"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 0a933d6..c7426eb 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -53,7 +53,7 @@
     <string name="font_size_make_smaller_desc" msgid="4978038055549590140">"Thu nhỏ"</string>
     <string name="font_size_make_larger_desc" msgid="5583046033381722247">"Phóng to"</string>
     <string name="auto_rotate_settings_primary_switch_title" msgid="1150797732067921015">"Dùng tính năng Tự động xoay"</string>
-    <string name="smart_rotate_text_headline" msgid="4775952278533715352">"Công nghệ Phát hiện khuôn mặt sử dụng máy ảnh mặt trước để cải thiện độ chính xác của tính năng Tự động xoay. Hệ thống sẽ không lưu trữ hoặc gửi hình ảnh cho Google.&lt;br&gt;&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Tìm hiểu thêm&lt;/a&gt;"</string>
+    <string name="smart_rotate_text_headline" msgid="4775952278533715352">"Công nghệ Phát hiện khuôn mặt sử dụng máy ảnh mặt trước để cải thiện độ chính xác của tính năng Tự động xoay. Tính năng này sẽ không bao giờ lưu trữ hoặc gửi hình ảnh cho Google.&lt;br&gt;&lt;br&gt; &lt;a href=<xliff:g id="URL">http://support.google.com/mobile?p=telephony_rtt</xliff:g>&gt;Tìm hiểu thêm&lt;/a&gt;"</string>
     <string name="font_size_preview_text_headline" msgid="1173103737980511652">"Văn bản mẫu"</string>
     <string name="font_size_preview_text_title" msgid="6363561029914452382">"Phù thủy xứ Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="5806349524325544614">"Chương 11: Thành phố ngọc lục bảo của xứ Oz"</string>
@@ -946,7 +946,7 @@
     <string name="wifi_eap_identity" msgid="3629406902174137028">"Danh tính"</string>
     <string name="wifi_eap_anonymous" msgid="8630332141751267000">"Danh tính ẩn danh"</string>
     <string name="wifi_password" msgid="1458802324849513755">"Mật khẩu"</string>
-    <string name="wifi_show_password" msgid="6865993988238157923">"Hiển thị mật khẩu"</string>
+    <string name="wifi_show_password" msgid="6865993988238157923">"Hiện mật khẩu"</string>
     <string name="wifi_ap_band_config" msgid="1589020070150933055">"Chọn băng tần AP"</string>
     <string name="wifi_ap_choose_auto" msgid="8944442003151215691">"Tự động"</string>
     <string name="wifi_ap_choose_2G" msgid="1436802195991542016">"Băng tần 2,4 GHz"</string>
@@ -1006,7 +1006,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="4673867078988209732">"Không xác thực"</string>
     <string name="wifi_ssid_too_long" msgid="5961719058705013875">"Tên mạng quá dài."</string>
     <string name="wifi_no_domain_warning" msgid="1452133316532366772">"Phải chỉ định một miền."</string>
-    <string name="wifi_no_user_cert_warning" msgid="8466376918835248956">"Bạn cần có chứng chỉ."</string>
+    <string name="wifi_no_user_cert_warning" msgid="8466376918835248956">"Cần có chứng chỉ."</string>
     <string name="wifi_wps_available_first_item" msgid="5780501151792036589">"Có WPS"</string>
     <string name="wifi_wps_available_second_item" msgid="1717024103303480804">" (Có WPS)"</string>
     <string name="wifi_carrier_connect" msgid="4511538300946413213">"Mạng Wi‑Fi của nhà cung cấp dịch vụ"</string>
@@ -1047,12 +1047,12 @@
       <item quantity="one">1 mạng</item>
     </plurals>
     <plurals name="wifi_saved_passpoint_access_points_summary" formatted="false" msgid="5802057518058840450">
-      <item quantity="other">%d gói đăng ký</item>
-      <item quantity="one">1 gói đăng ký</item>
+      <item quantity="other">%d gói thuê bao</item>
+      <item quantity="one">1 gói thuê bao</item>
     </plurals>
     <plurals name="wifi_saved_all_access_points_summary" formatted="false" msgid="5125849180309374451">
-      <item quantity="other">%d mạng và gói đăng ký</item>
-      <item quantity="one">1 mạng và gói đăng ký</item>
+      <item quantity="other">%d mạng và gói thuê bao</item>
+      <item quantity="one">1 mạng và gói thuê bao</item>
     </plurals>
     <string name="wifi_advanced_titlebar" msgid="1234150304285575798">"Wi‑Fi nâng cao"</string>
     <string name="wifi_advanced_ssid_title" msgid="1561437650193980185">"SSID"</string>
@@ -1066,7 +1066,7 @@
     <string name="wifi_details_dns" msgid="273231528073312579">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1913151339341722443">"Địa chỉ IPv6"</string>
     <string name="wifi_saved_access_points_label" msgid="5691340724310548151">"Mạng đã lưu"</string>
-    <string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Gói đăng ký"</string>
+    <string name="wifi_subscribed_access_points_tab" msgid="7224061396195667208">"Gói thuê bao"</string>
     <string name="wifi_saved_other_networks_tab" msgid="7942647415716557293">"Các mạng khác"</string>
     <string name="wifi_advanced_settings_label" msgid="5880605751602184383">"Cài đặt IP"</string>
     <string name="wifi_advanced_not_available" msgid="8701003884367299092">"Cài đặt nâng cao Wi‑Fi không khả dụng cho người dùng này"</string>
@@ -2104,7 +2104,7 @@
     <string name="auto_punctuate" msgid="2838809477621809507">"Tự động chấm câu"</string>
     <string name="hardkeyboard_category" msgid="8729780593378161071">"Cài đặt bàn phím vật lý"</string>
     <string name="auto_punctuate_summary" msgid="3549190848611386748">"Nhấn phím Cách hai lần để chèn \".\""</string>
-    <string name="show_password" msgid="7101900779571040117">"Hiển thị mật khẩu"</string>
+    <string name="show_password" msgid="7101900779571040117">"Hiện mật khẩu"</string>
     <string name="show_password_summary" msgid="9025960283785111619">"Hiện các ký tự trong thời gian ngắn khi bạn nhập"</string>
     <string name="spellchecker_security_warning" msgid="2016059050608271820">"Trình kiểm tra chính tả này có thể thu thập được tất cả văn bản bạn nhập, bao gồm dữ liệu cá nhân như mật khẩu và số thẻ tín dụng. Trình này đến từ ứng dụng <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Sử dụng trình kiểm tra chính tả này?"</string>
     <string name="spellchecker_quick_settings" msgid="6449414356743946577">"Cài đặt"</string>
@@ -2358,8 +2358,8 @@
     <string name="daltonizer_mode_deuteranomaly_summary" msgid="791173297742998942">"Đỏ – xanh lục"</string>
     <string name="daltonizer_mode_protanomaly_summary" msgid="482834207025141433">"Đỏ – xanh lục"</string>
     <string name="daltonizer_mode_tritanomaly_summary" msgid="2837137091067433059">"Xanh lam – vàng"</string>
-    <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Giảm độ sáng hơn nữa"</string>
-    <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Giảm độ sáng của màn hình hơn nữa"</string>
+    <string name="reduce_bright_colors_preference_title" msgid="2249314004651574997">"Siêu tối"</string>
+    <string name="reduce_bright_colors_switch_title" msgid="1751678397884065312">"Làm cho màn hình trở nên siêu tối"</string>
     <string name="reduce_bright_colors_preference_summary" product="default" msgid="7878756844769221647">"Giảm bớt độ sáng của màn hình xuống dưới độ sáng tối thiểu của điện thoại"</string>
     <string name="reduce_bright_colors_preference_summary" product="tablet" msgid="8959794720356934888">"Giảm bớt độ sáng của màn hình xuống dưới độ sáng tối thiểu của máy tính bảng"</string>
     <string name="reduce_bright_colors_preference_subtitle" product="default" msgid="1061317523242240222">"Giảm bớt độ sáng màn hình để đọc thoải mái hơn.&lt;br/&gt;&lt;br/&gt; Tính năng này có thể hữu ích khi: &lt;ol&gt; &lt;li&gt; Độ sáng tối thiểu mặc định của điện thoại vẫn ở mức quá cao&lt;/li&gt; &lt;li&gt; Bạn đang dùng điện thoại trong điều kiện thiếu ánh sáng, chẳng hạn như khi trời tối hoặc trong phòng tối trước khi đi ngủ&lt;/li&gt; &lt;/ol&gt;"</string>
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Mức sử dụng pin của ứng dụng trong"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"sáng"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"chiều"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Số liệu thống kê về quy trình"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Số liệu thống kê chi tiết về các quy trình đang chạy"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Mức sử dụng bộ nhớ"</string>
@@ -3607,7 +3617,7 @@
     <string name="asst_importance_reset_title" msgid="6191265591976440115">"Đặt lại mức độ quan trọng của thông báo"</string>
     <string name="asst_importance_reset_summary" msgid="684794589254282667">"Đặt lại các tùy chọn cài đặt về mức độ quan trọng mà người dùng đã thay đổi và cho phép Trợ lý thông báo thiết lập mức độ ưu tiên"</string>
     <string name="asst_capabilities_actions_replies_title" msgid="4392470465646394289">"Câu trả lời và hành động đề xuất"</string>
-    <string name="asst_capabilities_actions_replies_summary" msgid="416234323365645871">"Tự động hiển thị câu trả lời và hành động đề xuất"</string>
+    <string name="asst_capabilities_actions_replies_summary" msgid="416234323365645871">"Tự động hiện câu trả lời và hành động đề xuất"</string>
     <string name="notification_history_summary" msgid="5434741516307706892">"Hiện các thông báo gần đây và thông báo đã tạm ẩn"</string>
     <string name="notification_history" msgid="8663811361243456201">"Nhật ký thông báo"</string>
     <string name="notification_history_toggle" msgid="9093762294928569030">"Sử dụng nhật ký thông báo"</string>
@@ -3759,16 +3769,16 @@
     <string name="no_notification_assistant" msgid="2533323397091834096">"Không có"</string>
     <string name="no_notification_listeners" msgid="2839354157349636000">"Không có ứng dụng đã cài đặt nào yêu cầu quyền truy cập thông báo."</string>
     <string name="notification_access_detail_switch" msgid="46386786409608330">"Cho phép truy cập thông báo"</string>
-    <string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"Bạn muốn cấp quyền truy cập thông báo cho <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
+    <string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> truy cập thông báo?"</string>
     <string name="notification_assistant_security_warning_summary" msgid="6127380535875810710">"Thông báo nâng cao có thể đọc mọi nội dung thông báo, bao gồm cả thông tin cá nhân như tên liên hệ và tin nhắn. Tính năng này cũng có thể đóng các thông báo hoặc thực hiện thao tác đối với các nút trong thông báo, chẳng hạn như trả lời cuộc gọi điện thoại. \n\nTính năng này cũng có thể bật hoặc tắt Chế độ ưu tiên và thay đổi các chế độ cài đặt liên quan."</string>
-    <string name="notification_listener_security_warning_title" msgid="5791700876622858363">"Cho phép truy cập thông báo cho <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
+    <string name="notification_listener_security_warning_title" msgid="5791700876622858363">"Cho phép <xliff:g id="SERVICE">%1$s</xliff:g> truy cập thông báo?"</string>
     <string name="notification_listener_security_warning_summary" msgid="1658213659262173405">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> có thể đọc mọi thông báo, bao gồm thông tin cá nhân như tên liên hệ và nội dung của thông báo bạn nhận được. Ứng dụng này cũng có thể đóng các thông báo hoặc thao tác với các nút trong thông báo, bao gồm cả trả lời cuộc gọi điện thoại. \n\nNgoài ra, việc này còn cho phép ứng dụng bật hoặc tắt chế độ Không làm phiền và thay đổi các tùy chọn cài đặt liên quan."</string>
-    <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Nếu bạn tắt quyền truy cập thông báo của <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, quyền truy cập Không làm phiền cũng có thể bị tắt."</string>
+    <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"Nếu bạn tắt quyền truy cập thông báo của <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, quyền truy cập chế độ Không làm phiền cũng có thể bị tắt."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"Tắt"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="8802784105045594324">"Hủy"</string>
     <string name="notification_listener_type_title" msgid="2791552789364336733">"Các loại thông báo được phép"</string>
     <string name="notif_type_ongoing" msgid="135675014223627555">"Thời gian thực"</string>
-    <string name="notif_type_ongoing_summary" msgid="3412379452346027089">"Phương thức liên lạc theo thời gian thực từ các ứng dụng đang dùng, cách di chuyển, cuộc gọi điện thoại và nhiều phương thức khác"</string>
+    <string name="notif_type_ongoing_summary" msgid="3412379452346027089">"Thông tin liên lạc theo thời gian thực từ các ứng dụng đang dùng, thông tin chỉ đường, cuộc gọi điện thoại, v.v."</string>
     <string name="notif_type_conversation" msgid="4383931408641374979">"Cuộc trò chuyện"</string>
     <string name="notif_type_conversation_summary" msgid="897491668422411641">"SMS và các phương thức liên lạc khác"</string>
     <string name="notif_type_alerting" msgid="4225291983925409612">"Mặc định"</string>
@@ -3817,9 +3827,9 @@
     <string name="interact_across_profiles_install_work_app_title" msgid="2821669067014436056">"Để kết nối những ứng dụng này, hãy cài đặt <xliff:g id="NAME">%1$s</xliff:g> trong hồ sơ công việc của bạn"</string>
     <string name="interact_across_profiles_install_personal_app_title" msgid="4790651223324866344">"Để kết nối những ứng dụng này, hãy cài đặt <xliff:g id="NAME">%1$s</xliff:g> trong hồ sơ cá nhân của bạn"</string>
     <string name="interact_across_profiles_install_app_summary" msgid="7715324358034968657">"Nhấn để tải ứng dụng"</string>
-    <string name="manage_zen_access_title" msgid="1562322900340107269">"Truy cập Không làm phiền"</string>
+    <string name="manage_zen_access_title" msgid="1562322900340107269">"Quyền truy cập chế độ Không làm phiền"</string>
     <string name="zen_access_detail_switch" msgid="4183681772666138993">"Cho phép tính năng Không làm phiền"</string>
-    <string name="zen_access_empty_text" msgid="3779921853282293080">"Không có ứng dụng được cài đặt nào yêu cầu quyền truy cập Không làm phiền"</string>
+    <string name="zen_access_empty_text" msgid="3779921853282293080">"Không có ứng dụng đã cài đặt nào yêu cầu quyền truy cập chế độ Không làm phiền"</string>
     <string name="loading_notification_apps" msgid="5139471829295287945">"Đang tải ứng dụng…"</string>
     <string name="app_notifications_off_desc" msgid="6691342160980435901">"Theo yêu cầu của bạn, Android đang chặn không cho thông báo của ứng dụng này xuất hiện trên thiết bị này"</string>
     <string name="channel_notifications_off_desc" msgid="6202042207121633488">"Theo yêu cầu của bạn, Android đang chặn không cho danh mục thông báo này xuất hiện trên thiết bị này"</string>
@@ -4021,7 +4031,7 @@
     <string name="device_feedback" msgid="5351614458411688608">"Gửi phản hồi về thiết bị này"</string>
     <string name="restr_pin_enter_admin_pin" msgid="4435410646541671918">"Nhập mã PIN quản trị"</string>
     <string name="switch_on_text" msgid="5664542327776075105">"Đang bật"</string>
-    <string name="switch_off_text" msgid="1315547447393646667">"Tắt"</string>
+    <string name="switch_off_text" msgid="1315547447393646667">"Đang tắt"</string>
     <string name="screen_pinning_switch_on_text" msgid="6971386830247542552">"Đang bật"</string>
     <string name="screen_pinning_switch_off_text" msgid="5032105155623003875">"Đang tắt"</string>
     <string name="screen_pinning_title" msgid="6927227272780208966">"Ghim ứng dụng"</string>
@@ -5229,11 +5239,11 @@
     <string name="power_menu_none" msgid="4620640577918731270">"Không hiện nội dung nào"</string>
     <string name="power_menu_privacy" msgid="7900052501075197854">"Nội dung nhạy cảm"</string>
     <string name="power_menu_privacy_show" msgid="2112741022037054383">"Hiện thẻ và các tùy chọn điều khiển khi ở trạng thái khóa"</string>
-    <string name="power_menu_privacy_show_controls" msgid="8294874046577167797">"Hiển thị các tùy chọn điều khiển khi màn hình đã khóa"</string>
+    <string name="power_menu_privacy_show_controls" msgid="8294874046577167797">"Hiện các tùy chọn điều khiển khi khóa màn hình"</string>
     <string name="power_menu_privacy_show_cards" msgid="8937303188629541026">"Hiển thị thẻ khi thiết bị đã khóa"</string>
     <string name="power_menu_privacy_hide" msgid="1617102911157977095">"Ẩn thẻ và các tùy chọn điều khiển khi ở trạng thái khóa"</string>
     <string name="power_menu_privacy_not_secure" msgid="6247119934128206924">"Để sử dụng, trước tiên hãy đặt phương thức khóa màn hình"</string>
-    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Giữ để gọi Trợ lý"</string>
+    <string name="power_menu_long_press_for_assist" msgid="2016813721240777737">"Giữ để mở Trợ lý"</string>
     <string name="power_menu_long_press_for_assist_summary" msgid="8251928804984560312">"Giữ nút nguồn để kích hoạt Trợ lý"</string>
     <string name="device_controls_setting_toggle" msgid="8972005569207737469">"Hiện các nút điều khiển thiết bị"</string>
     <string name="cards_passes_setting_toggle" msgid="3380984848045396695">"Hiển thị thẻ và vé"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 7ac79ce..edae41b 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"应用的耗电量 -"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"上午"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"下午"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 1aabd4c..852362b 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -2741,6 +2741,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"應用程式在以下期間的電量"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"上午"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"下午"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 334bfe0..c19cd8b 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -2740,6 +2740,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"應用程式在以下期間的電池用量"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"上午"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"下午"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <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>
@@ -3761,7 +3771,7 @@
     <string name="notification_access_detail_switch" msgid="46386786409608330">"授予通知存取權"</string>
     <string name="notification_assistant_security_warning_title" msgid="2972346436050925276">"要允許<xliff:g id="SERVICE">%1$s</xliff:g>存取通知嗎？"</string>
     <string name="notification_assistant_security_warning_summary" msgid="6127380535875810710">"加強型通知功能可讀取所有通知內容，包括聯絡人名稱和訊息內文等個人資訊。這項功能也能關閉通知或操作通知中的按鈕，例如接聽來電。\n\n此外，這項功能還可以開啟或關閉「優先」模式及變更相關設定。"</string>
-    <string name="notification_listener_security_warning_title" msgid="5791700876622858363">"要允許 <xliff:g id="SERVICE">%1$s</xliff:g> 的通知存取權嗎？"</string>
+    <string name="notification_listener_security_warning_title" msgid="5791700876622858363">"要授予「<xliff:g id="SERVICE">%1$s</xliff:g>」通知存取權嗎？"</string>
     <string name="notification_listener_security_warning_summary" msgid="1658213659262173405">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>將可讀取所有通知 (包括聯絡人姓名和你收到的訊息文字等個人資訊)，也能關閉通知或針對通知中的按鈕採取行動，包括接聽來電。\n\n此外，該應用程式將因此能夠開啟或關閉「零打擾」模式，以及變更相關設定。"</string>
     <string name="notification_listener_disable_warning_summary" msgid="8373396293802088961">"如果你停用「<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>」的通知存取權，「零打擾」模式的存取權可能也會一併遭到停用。"</string>
     <string name="notification_listener_disable_warning_confirm" msgid="841492108402184976">"關閉"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index d5a64f1..c741c7e 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -2743,6 +2743,16 @@
     <string name="battery_app_usage_for" msgid="929971425835809784">"Ukusetshenziswa kwe-app nge-"</string>
     <string name="battery_usage_time_am" msgid="7783773965475697655">"am"</string>
     <string name="battery_usage_time_pm" msgid="1534468528902328570">"pm"</string>
+    <!-- no translation found for battery_usage_total_less_than_one_minute (1035425863251685509) -->
+    <skip />
+    <!-- no translation found for battery_usage_background_less_than_one_minute (3957971442554437909) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_total_time (8402254046930910905) -->
+    <skip />
+    <!-- no translation found for battery_usage_for_background_time (9109637210617095188) -->
+    <skip />
+    <!-- no translation found for battery_usage_screen_footer (3241109085756092490) -->
+    <skip />
     <string name="process_stats_summary_title" msgid="502683176231281732">"Izibalo zenqubo"</string>
     <string name="process_stats_summary" msgid="522842188571764699">"Izibalo ze-Geeky mayelana nezinqubo zokuqalisa"</string>
     <string name="app_memory_use" msgid="7559666138324410666">"Ukusetshenziswa kwememori"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ebe641e..1ca471f 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12863,9 +12863,6 @@
     <!-- Developer settings: text for the bug report handler selection toast shown if an invalid bug report handler was chosen. [CHAR LIMIT=NONE] -->
     <string name="select_invalid_bug_report_handler_toast_text">This choice is no longer valid. Try again.</string>
 
-    <!-- Device controls name sentence case [CHAR LIMIT=40] -->
-    <string name="device_controls_sentence">Device controls</string>
-
     <!-- Device controls name lower case [CHAR LIMIT=40] -->
     <string name="quick_controls_lower">device controls</string>
 
@@ -12884,12 +12881,6 @@
     <!-- Power menu setting option cards and passes [CHAR LIMIT=NONE] -->
     <string name="power_menu_cards_passes">Show cards &amp; passes</string>
 
-    <!-- Power menu setting option device controls [CHAR LIMIT=NONE] -->
-    <string name="power_menu_device_controls">Show device controls</string>
-
-    <!-- Power menu setting option cards, passes, device controls [CHAR LIMIT=NONE] -->
-    <string name="power_menu_cards_passes_device_controls">Show cards, passes, and device controls</string>
-
     <!-- Power menu setting lock screen category name [CHAR LIMIT=40] -->
     <string name="power_menu_lock_screen_category">Lock screen</string>
 
@@ -13047,6 +13038,12 @@
     <string name="to_switch_networks_disconnect_ethernet">To switch networks, disconnect ethernet</string>
     <!-- Panel subtitle for Wi-Fi turned on. [CHAR LIMIT=60] -->
     <string name="wifi_is_turned_on_subtitle">Wi\u2011Fi is turned on</string>
+    <!-- Title for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] -->
+    <string name="carrier_wifi_offload_title">W+ connections</string>
+    <!-- Summary for merged carrier Wi-Fi offload toggle. [CHAR LIMIT=NONE] -->
+    <string name="carrier_wifi_offload_summary">Allow Google Fi to use W+ networks to improve speed and coverage</string>
+    <!-- Title for merged carrier Wi-Fi network information. [CHAR LIMIT=NONE] -->
+    <string name="carrier_wifi_network_title">W+ network</string>
 
     <!-- Summary text separator for preferences including a short description
          (eg. "Connected / 5G"). [CHAR LIMIT=50] -->
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 31f44dd..e91ddcb 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -409,6 +409,12 @@
         <item name="android:progressDrawable">@drawable/ring_progress</item>
     </style>
 
+    <style name="HorizontalProgressBarStyle"
+           parent="android:style/Widget.Material.ProgressBar.Horizontal">
+        <item name="android:progressDrawable">@drawable/progress_horizontal</item>
+        <item name="android:scaleY">0.5</item>
+    </style>
+
     <style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored"/>
     <style name="ActionSecondaryButton" parent="android:Widget.DeviceDefault.Button"/>
 
@@ -795,6 +801,7 @@
         <item name="android:paddingBottom">8dp</item>
         <item name="android:orientation">horizontal</item>
         <item name="android:layout_alignParentBottom">true</item>
+        <item name="android:background">?android:colorBackground</item>
     </style>
 
     <style name="RequestManageCredentialsAllowButton" parent="@style/ActionPrimaryButton">
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 05609da..02f94d2 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -31,6 +31,7 @@
         <item name="android:homeAsUpIndicator">@drawable/ic_arrow_back</item>
         <item name="android:navigationBarColor">@android:color/transparent</item>
         <item name="android:datePickerDialogTheme">@style/PickerDialogTheme.Settings</item>
+        <item name="android:progressBarStyleHorizontal">@style/HorizontalProgressBarStyle</item>
 
         <item name="fingerprint_layout_theme">@style/FingerprintLayoutTheme</item>
         <item name="face_layout_theme">@style/FaceLayoutTheme</item>
@@ -165,21 +166,6 @@
         <item name="android:colorAccent">@*android:color/white</item>
     </style>
 
-    <style name="Theme.RequestManageCredentials" parent="@style/Theme.MaterialComponents.Light">
-        <item name="windowActionBar">false</item>
-        <item name="windowNoTitle">true</item>
-
-        <item name="colorPrimary">@*android:color/primary_device_default_settings_light</item>
-        <item name="colorAccent">@*android:color/accent_device_default_light</item>
-        <item name="colorPrimaryDark">@*android:color/primary_dark_device_default_settings_light</item>
-
-        <item name="android:windowBackground">@android:color/white</item>
-        <item name="android:statusBarColor">@android:color/white</item>
-        <item name="android:windowLightStatusBar">true</item>
-        <item name="android:windowLightNavigationBar">true</item>
-        <item name="android:navigationBarColor">@android:color/white</item>
-    </style>
-
     <style name="FallbackHome" parent="@android:style/Theme.DeviceDefault.NoActionBar">
         <item name="android:windowBackground">@android:color/transparent</item>
         <item name="android:colorBackgroundCacheHint">@null</item>
diff --git a/res/xml/captioning_settings.xml b/res/xml/captioning_settings.xml
index 6bd3763..a58e224 100644
--- a/res/xml/captioning_settings.xml
+++ b/res/xml/captioning_settings.xml
@@ -21,22 +21,20 @@
     android:persistent="false"
     android:title="@string/accessibility_captioning_title">
 
+    <com.android.settings.widget.SettingsMainSwitchPreference
+        android:key="captioning_preference_switch"
+        android:persistent="false"
+        android:summary="@string/accessibility_caption_primary_switch_summary"
+        android:title="@string/accessibility_caption_primary_switch_title" />
+
     <com.android.settingslib.widget.LayoutPreference
         android:key="captions_preview"
         android:layout="@layout/accessibility_captions_preview"
         android:persistent="false"
         android:selectable="false"
         android:title="@string/summary_placeholder"
-        settings:allowDividerBelow="true"
         settings:searchable="false" />
 
-    <SwitchPreference
-        android:key="captioning_preference_switch"
-        android:persistent="false"
-        android:summary="@string/accessibility_caption_primary_switch_summary"
-        android:title="@string/accessibility_caption_primary_switch_title"
-        settings:allowDividerAbove="true" />
-
     <Preference
         android:fragment="com.android.settings.accessibility.CaptionAppearanceFragment"
         android:key="captioning_caption_appearance"
diff --git a/res/xml/device_controls_settings.xml b/res/xml/device_controls_settings.xml
deleted file mode 100644
index c22cd4a..0000000
--- a/res/xml/device_controls_settings.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ Copyright (C) 2020 The Android Open Source Project
-  ~
-  ~ Licensed under the Apache License, Version 2.0 (the "License");
-  ~ you may not use this file except in compliance with the License.
-  ~ You may obtain a copy of the License at
-  ~
-  ~      http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  -->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    android:title="@string/device_controls_sentence">
-
-    <com.android.settings.widget.VideoPreference
-        android:key="device_controls_video"
-        app:animation="@raw/gesture_device_controls"
-        app:controller="com.android.settings.widget.VideoPreferenceController"/>
-
-    <SwitchPreference
-        android:key="gesture_device_controls_switch"
-        android:title="@string/device_controls_setting_toggle"
-        android:summary="@string/device_controls_setting_subtitle"
-        app:keywords="@string/keywords_device_controls"
-        app:controller="com.android.settings.gestures.DeviceControlsPreferenceController"
-        app:allowDividerAbove="true" />
-
-</PreferenceScreen>
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 7ab9893..f50268a 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -16,8 +16,7 @@
 <PreferenceScreen
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
-    android:key="mobile_network_pref_screen"
-    settings:initialExpandedChildrenCount="8">
+    android:key="mobile_network_pref_screen">
 
     <com.android.settings.widget.SettingsMainSwitchPreference
         android:key="use_sim_switch"
@@ -79,6 +78,16 @@
             settings:controller="com.android.settings.datausage.BillingCyclePreferenceController"/>
 
         <SwitchPreference
+            android:key="carrier_wifi_toggle"
+            android:title="@string/carrier_wifi_offload_title"
+            android:summary="@string/carrier_wifi_offload_summary"
+            settings:controller="com.android.settings.network.CarrierWifiTogglePreferenceController"/>
+
+        <Preference
+            android:key="carrier_wifi_network"
+            android:title="@string/carrier_wifi_network_title"/>
+
+        <SwitchPreference
             android:key="mms_message"
             android:title="@string/mms_message_title"
             android:summary="@string/mms_message_summary"
diff --git a/res/xml/power_menu_settings.xml b/res/xml/power_menu_settings.xml
index bfe9c20..406cd0b 100644
--- a/res/xml/power_menu_settings.xml
+++ b/res/xml/power_menu_settings.xml
@@ -33,12 +33,6 @@
         android:fragment="com.android.settings.gestures.GlobalActionsPanelSettings"
         settings:controller="com.android.settings.gestures.GlobalActionsPanelPreferenceController" />
 
-    <Preference
-        android:key="gesture_device_controls_summary"
-        android:title="@string/device_controls_sentence"
-        android:fragment="com.android.settings.gestures.DeviceControlsSettings"
-        settings:controller="com.android.settings.gestures.DeviceControlsPreferenceController" />
-
     <PreferenceCategory
         android:title="@string/power_menu_lock_screen_category" >
 
diff --git a/src/com/android/settings/accessibility/AccessibilitySettings.java b/src/com/android/settings/accessibility/AccessibilitySettings.java
index fb1564c..af8bf47 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettings.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettings.java
@@ -111,7 +111,7 @@
         @Override
         public void run() {
             if (getActivity() != null) {
-                updateServicePreferences();
+                onContentChanged();
             }
         }
     };
@@ -142,7 +142,8 @@
         }
     };
 
-    private final SettingsContentObserver mSettingsContentObserver;
+    @VisibleForTesting
+    final SettingsContentObserver mSettingsContentObserver;
 
     private final Map<String, PreferenceCategory> mCategoryToPrefCategoryMap =
             new ArrayMap<>();
@@ -151,6 +152,9 @@
     private final Map<ComponentName, PreferenceCategory> mPreBundledServiceComponentToCategoryMap =
             new ArrayMap<>();
 
+    private boolean mNeedPreferencesUpdate = false;
+    private boolean mIsForeground = true;
+
     public AccessibilitySettings() {
         // Observe changes to anything that the shortcut can toggle, so we can reflect updates
         final Collection<AccessibilityShortcutController.ToggleableFrameworkFeatureInfo> features =
@@ -166,7 +170,7 @@
         mSettingsContentObserver = new SettingsContentObserver(mHandler, shortcutFeatureKeys) {
             @Override
             public void onChange(boolean selfChange, Uri uri) {
-                updateAllPreferences();
+                onContentChanged();
             }
         };
     }
@@ -182,13 +186,6 @@
     }
 
     @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-        initializeAllPreferences();
-        updateAllPreferences();
-    }
-
-    @Override
     public void onAttach(Context context) {
         super.onAttach(context);
         use(AccessibilityHearingAidPreferenceController.class)
@@ -196,21 +193,36 @@
     }
 
     @Override
-    public void onStart() {
-        super.onStart();
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        initializeAllPreferences();
+        updateAllPreferences();
+        registerContentMonitors();
+    }
 
-        mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
-        mSettingsContentObserver.register(getContentResolver());
+    @Override
+    public void onStart() {
+        if (mNeedPreferencesUpdate) {
+            updateAllPreferences();
+            mNeedPreferencesUpdate = false;
+        }
+        mIsForeground = true;
+        super.onStart();
     }
 
     @Override
     public void onStop() {
-        mSettingsPackageMonitor.unregister();
-        mSettingsContentObserver.unregister(getContentResolver());
+        mIsForeground = false;
         super.onStop();
     }
 
     @Override
+    public void onDestroy() {
+        unregisterContentMonitors();
+        super.onDestroy();
+    }
+
+    @Override
     protected int getPreferenceScreenResId() {
         return R.xml.accessibility_settings;
     }
@@ -283,6 +295,17 @@
                 context.getContentResolver(), Settings.Global.APPLY_RAMPING_RINGER, 0) == 1;
     }
 
+    @VisibleForTesting
+    void onContentChanged() {
+        // If the fragment is visible then update preferences immediately, else set the flag then
+        // wait for the fragment to show up to update preferences.
+        if (mIsForeground) {
+            updateAllPreferences();
+        } else {
+            mNeedPreferencesUpdate = true;
+        }
+    }
+
     private void initializeAllPreferences() {
         for (int i = 0; i < CATEGORIES.length; i++) {
             PreferenceCategory prefCategory = findPreference(CATEGORIES[i]);
@@ -290,11 +313,25 @@
         }
     }
 
-    private void updateAllPreferences() {
+    @VisibleForTesting
+    void updateAllPreferences() {
         updateSystemPreferences();
         updateServicePreferences();
     }
 
+    private void registerContentMonitors() {
+        final Context context = getActivity();
+
+        mSettingsPackageMonitor.register(context, context.getMainLooper(), /* externalStorage= */
+                false);
+        mSettingsContentObserver.register(getContentResolver());
+    }
+
+    private void unregisterContentMonitors() {
+        mSettingsPackageMonitor.unregister();
+        mSettingsContentObserver.unregister(getContentResolver());
+    }
+
     protected void updateServicePreferences() {
         // Since services category is auto generated we have to do a pass
         // to generate it since services can come and go and then based on
diff --git a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
index 786585a..0145828 100644
--- a/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
+++ b/src/com/android/settings/accessibility/CaptionPropertiesFragment.java
@@ -22,15 +22,17 @@
 import android.os.Bundle;
 import android.provider.Settings;
 import android.view.accessibility.CaptioningManager;
+import android.widget.Switch;
 
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.SwitchPreference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.SettingsMainSwitchPreference;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.widget.OnMainSwitchChangeListener;
 
 import com.google.common.primitives.Floats;
 
@@ -40,14 +42,14 @@
 /** Settings fragment containing captioning properties. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
 public class CaptionPropertiesFragment extends SettingsPreferenceFragment
-        implements OnPreferenceChangeListener {
+        implements OnPreferenceChangeListener, OnMainSwitchChangeListener {
     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";
 
     private CaptioningManager mCaptioningManager;
 
-    private SwitchPreference mSwitch;
+    private SettingsMainSwitchPreference mSwitch;
     private Preference mTextAppearance;
     private Preference mMoreOptions;
 
@@ -78,7 +80,7 @@
     }
 
     private void initializeAllPreferences() {
-        mSwitch = (SwitchPreference) findPreference(PREF_SWITCH);
+        mSwitch = (SettingsMainSwitchPreference) findPreference(PREF_SWITCH);
         mTextAppearance = (Preference) findPreference(PREF_TEXT);
         mMoreOptions = (Preference) findPreference(PREF_MORE);
 
@@ -88,6 +90,8 @@
 
     private void installUpdateListeners() {
         mSwitch.setOnPreferenceChangeListener(this);
+        mSwitch.addOnSwitchChangeListener(this);
+
     }
 
     private void initFontSizeValuesArray() {
@@ -133,4 +137,11 @@
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.captioning_settings);
+
+    @Override
+    public void onSwitchChanged(Switch switchView, boolean isChecked) {
+        final ContentResolver cr = getActivity().getContentResolver();
+        Settings.Secure.putInt(
+                cr, Settings.Secure.ACCESSIBILITY_CAPTIONING_ENABLED, isChecked ? 1 : 0);
+    }
 }
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 1ea7e17..a6305cb 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -93,7 +93,6 @@
 import com.android.settings.fuelgauge.batterysaver.BatterySaverScheduleSettings;
 import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
 import com.android.settings.gestures.AssistGestureSettings;
-import com.android.settings.gestures.DeviceControlsSettings;
 import com.android.settings.gestures.DoubleTapPowerSettings;
 import com.android.settings.gestures.DoubleTapScreenSettings;
 import com.android.settings.gestures.DoubleTwistGestureSettings;
@@ -306,7 +305,6 @@
             MobileNetworkListFragment.class.getName(),
             PowerMenuSettings.class.getName(),
             GlobalActionsPanelSettings.class.getName(),
-            DeviceControlsSettings.class.getName(),
             DarkModeSettingsFragment.class.getName(),
             BugReportHandlerPicker.class.getName(),
             GestureNavigationSettingsFragment.class.getName(),
diff --git a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
index c44376c..2a3359a 100644
--- a/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
+++ b/src/com/android/settings/display/ScreenTimeoutPreferenceController.java
@@ -40,8 +40,13 @@
 public class ScreenTimeoutPreferenceController extends BasePreferenceController {
     public static String PREF_NAME = "screen_timeout";
 
+    private final CharSequence[] mTimeoutEntries;
+    private final CharSequence[] mTimeoutValues;
+
     public ScreenTimeoutPreferenceController(Context context, String key) {
         super(context, key);
+        mTimeoutEntries = context.getResources().getStringArray(R.array.screen_timeout_entries);
+        mTimeoutValues = context.getResources().getStringArray(R.array.screen_timeout_values);
     }
 
     @Override
@@ -51,33 +56,51 @@
 
     @Override
     public void updateState(Preference preference) {
-        final RestrictedLockUtils.EnforcedAdmin admin = getEnforcedAdmin();
+        final long maxTimeout = getMaxScreenTimeout();
+        final RestrictedLockUtils.EnforcedAdmin admin = getPreferenceDisablingAdmin(maxTimeout);
         if (admin != null) {
             preference.setEnabled(false);
+            preference.setSummary(mContext.getText(R.string.disabled_by_policy_title));
             ((RestrictedPreference) preference).setDisabledByAdmin(admin);
+        } else {
+            preference.setSummary(getTimeoutSummary(maxTimeout));
         }
-        preference.setSummary(getTimeoutSummary());
     }
 
-    private CharSequence getTimeoutSummary() {
+    private CharSequence getTimeoutSummary(long maxTimeout) {
         final long currentTimeout = getCurrentScreenTimeout();
-        final CharSequence[] timeoutEntries = mContext.getResources().getStringArray(
-                R.array.screen_timeout_entries);
-        final CharSequence[] timeoutValues = mContext.getResources().getStringArray(
-                R.array.screen_timeout_values);
-        final CharSequence description = getTimeoutDescription(
-                currentTimeout, timeoutEntries, timeoutValues);
+        final CharSequence description = getTimeoutDescription(currentTimeout, maxTimeout);
         return mContext.getString(R.string.screen_timeout_summary, description);
     }
 
-    private RestrictedLockUtils.EnforcedAdmin getEnforcedAdmin() {
+    private Long getMaxScreenTimeout() {
+        if (RestrictedLockUtilsInternal.checkIfMaximumTimeToLockIsSet(mContext) != null) {
+            final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
+            if (dpm != null) {
+                return dpm.getMaximumTimeToLock(null /* admin */, UserHandle.myUserId());
+            }
+        }
+        return Long.MAX_VALUE;
+    }
+
+    /**
+     * Returns the admin that causes the preference to be disabled completely. This could be due to
+     * either an admin that has set the {@link UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT}
+     * restriction, or an admin that has set a very small MaximumTimeToLock timeout resulting in
+     * no possible options for the user.
+     */
+    private RestrictedLockUtils.EnforcedAdmin getPreferenceDisablingAdmin(long maxTimeout) {
         final DevicePolicyManager dpm = mContext.getSystemService(DevicePolicyManager.class);
+        RestrictedLockUtils.EnforcedAdmin admin = null;
         if (dpm != null) {
-            return RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+            admin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
                     mContext, UserManager.DISALLOW_CONFIG_SCREEN_TIMEOUT,
                     UserHandle.myUserId());
+            if (admin == null && getLargestTimeout(maxTimeout) == null) {
+                admin = RestrictedLockUtilsInternal.checkIfMaximumTimeToLockIsSet(mContext);
+            }
         }
-        return null;
+        return admin;
     }
 
     private long getCurrentScreenTimeout() {
@@ -85,19 +108,38 @@
                 SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE);
     }
 
-    private static CharSequence getTimeoutDescription(
-            long currentTimeout, CharSequence[] entries, CharSequence[] values) {
-        if (currentTimeout < 0 || entries == null || values == null
-                || values.length != entries.length) {
+    private CharSequence getTimeoutDescription(long currentTimeout, long maxTimeout) {
+        if (currentTimeout < 0 || mTimeoutEntries == null || mTimeoutValues == null
+                || mTimeoutValues.length != mTimeoutEntries.length) {
             return null;
         }
 
-        for (int i = 0; i < values.length; i++) {
-            long timeout = Long.parseLong(values[i].toString());
-            if (currentTimeout == timeout) {
-                return entries[i];
+        if (currentTimeout > maxTimeout) {
+            // The selected time out value is longer than the max timeout allowed by the admin.
+            // Select the largest value from the list by default.
+            return getLargestTimeout(maxTimeout);
+        } else {
+            return getCurrentTimeout(currentTimeout);
+        }
+    }
+
+    private CharSequence getCurrentTimeout(long currentTimeout) {
+        for (int i = 0; i < mTimeoutValues.length; i++) {
+            if (currentTimeout == Long.parseLong(mTimeoutValues[i].toString())) {
+                return mTimeoutEntries[i];
             }
         }
         return null;
     }
+
+    private CharSequence getLargestTimeout(long maxTimeout) {
+        CharSequence largestTimeout = null;
+        // The list of timeouts is sorted
+        for (int i = 0; i < mTimeoutValues.length; ++i) {
+            if (Long.parseLong(mTimeoutValues[i].toString()) <= maxTimeout) {
+                largestTimeout = mTimeoutEntries[i];
+            }
+        }
+        return largestTimeout;
+    }
 }
diff --git a/src/com/android/settings/display/ScreenTimeoutSettings.java b/src/com/android/settings/display/ScreenTimeoutSettings.java
index 3c2a4f1..444f8ef8 100644
--- a/src/com/android/settings/display/ScreenTimeoutSettings.java
+++ b/src/com/android/settings/display/ScreenTimeoutSettings.java
@@ -159,6 +159,16 @@
             screen.addPreference(pref);
         }
 
+        final long selectedTimeout = Long.parseLong(defaultKey);
+        final long maxTimeout = getMaxScreenTimeout(getContext());
+        if (!candidateList.isEmpty() && (selectedTimeout > maxTimeout)) {
+            // The selected time out value is longer than the max timeout allowed by the admin.
+            // Select the largest value from the list by default.
+            final RadioButtonPreference preferenceWithLargestTimeout =
+                    (RadioButtonPreference) screen.getPreference(candidateList.size() - 1);
+            preferenceWithLargestTimeout.setChecked(true);
+        }
+
         if (isScreenAttentionAvailable(getContext())) {
             mAdaptiveSleepPermissionController.addToScreen(screen);
             mAdaptiveSleepCameraStatePreferenceController.addToScreen(screen);
diff --git a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
index c676bd3..f12de01 100644
--- a/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/BatteryChartPreferenceController.java
@@ -55,6 +55,8 @@
     private static final String TAG = "BatteryChartPreferenceController";
     private static final int CHART_KEY_ARRAY_SIZE = 25;
     private static final int CHART_LEVEL_ARRAY_SIZE = 13;
+    private static final long VALID_USAGE_TIME_DURATION = DateUtils.HOUR_IN_MILLIS * 2;
+    private static final long VALID_DIFF_DURATION = DateUtils.MINUTE_IN_MILLIS * 3;
 
     @VisibleForTesting
     Map<Integer, List<BatteryDiffEntry>> mBatteryIndexedMap;
@@ -179,6 +181,7 @@
         final List<Long> batteryHistoryKeyList =
             new ArrayList<Long>(batteryHistoryMap.keySet());
         Collections.sort(batteryHistoryKeyList);
+        validateSlotTimestamp(batteryHistoryKeyList);
         mBatteryHistoryKeys = new long[CHART_KEY_ARRAY_SIZE];
         final int elementSize = Math.min(batteryHistoryKeyList.size(), CHART_KEY_ARRAY_SIZE);
         final int offset = CHART_KEY_ARRAY_SIZE - elementSize;
@@ -270,6 +273,10 @@
             } else {
                 appEntries.add(entry);
             }
+            // Validates the usage time if users click a specific slot.
+            if (mTrapezoidIndex >= 0) {
+                validateUsageTime(entry);
+            }
         });
         Collections.sort(appEntries, BatteryDiffEntry.COMPARATOR);
         Collections.sort(systemEntries, BatteryDiffEntry.COMPARATOR);
@@ -289,7 +296,7 @@
             final String appLabel = entry.getAppLabel();
             final Drawable appIcon = entry.getAppIcon();
             if (TextUtils.isEmpty(appLabel) || appIcon == null) {
-                Log.w(TAG, "cannot find app resource:" + entry.mBatteryHistEntry);
+                Log.w(TAG, "cannot find app resource for\n" + entry);
                 continue;
             }
             final String prefKey = entry.mBatteryHistEntry.getKey();
@@ -389,4 +396,39 @@
         }
         return builder.toString();
     }
+
+    @VisibleForTesting
+    static boolean validateUsageTime(BatteryDiffEntry entry) {
+        final long foregroundUsageTimeInMs = entry.mForegroundUsageTimeInMs;
+        final long backgroundUsageTimeInMs = entry.mBackgroundUsageTimeInMs;
+        final long totalUsageTimeInMs = foregroundUsageTimeInMs + backgroundUsageTimeInMs;
+        if (foregroundUsageTimeInMs > VALID_USAGE_TIME_DURATION
+                || backgroundUsageTimeInMs > VALID_USAGE_TIME_DURATION
+                || totalUsageTimeInMs > VALID_USAGE_TIME_DURATION) {
+            Log.e(TAG, "validateUsageTime() fail for\n" + entry);
+            return false;
+        }
+        return true;
+    }
+
+    @VisibleForTesting
+    static boolean validateSlotTimestamp(List<Long> batteryHistoryKeys) {
+        // Whether the nearest two slot time diff is valid or not?
+        final int size = batteryHistoryKeys.size();
+        for (int index = 0; index < size - 1; index++) {
+            final long currentTime = batteryHistoryKeys.get(index);
+            final long nextTime = batteryHistoryKeys.get(index + 1);
+            final long diffTime = Math.abs(
+                DateUtils.HOUR_IN_MILLIS - Math.abs(currentTime - nextTime));
+            if (currentTime == 0) {
+                continue;
+            } else if (diffTime > VALID_DIFF_DURATION) {
+                Log.e(TAG, String.format("validateSlotTimestamp() %s > %s",
+                    ConvertUtils.utcToLocalTime(currentTime),
+                    ConvertUtils.utcToLocalTime(nextTime)));
+                return false;
+            }
+        }
+        return true;
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
index d48c92f..9a199bf 100644
--- a/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryDiffEntry.java
@@ -27,6 +27,8 @@
 
 import androidx.annotation.VisibleForTesting;
 
+import com.android.settingslib.utils.StringUtil;
+
 import java.time.Duration;
 import java.util.Comparator;
 import java.util.HashMap;
@@ -254,14 +256,17 @@
     public String toString() {
         final StringBuilder builder = new StringBuilder()
             .append("BatteryDiffEntry{")
-            .append("\n\tname=" + mBatteryHistEntry.mAppLabel)
+            .append("\n\tname=" + getAppLabel())
             .append(String.format("\n\tconsume=%.2f%% %f/%f",
                   mPercentOfTotal, mConsumePower, mTotalConsumePower))
-            .append(String.format("\n\tforeground:%d background:%d",
-                  Duration.ofMillis(mForegroundUsageTimeInMs).getSeconds(),
-                  Duration.ofMillis(mBackgroundUsageTimeInMs).getSeconds()))
-            .append(String.format("\n\tpackage:%s uid:%s",
-                  mBatteryHistEntry.mPackageName, mBatteryHistEntry.mUid));
+            .append(String.format("\n\tforeground:%s background:%s",
+                  StringUtil.formatElapsedTime(mContext, mForegroundUsageTimeInMs,
+                      /*withSeconds=*/ true, /*collapseTimeUnit=*/ false),
+                  StringUtil.formatElapsedTime(mContext, mBackgroundUsageTimeInMs,
+                      /*withSeconds=*/ true, /*collapseTimeUnit=*/ false)))
+            .append(String.format("\n\tpackage:%s|%s uid:%d userId:%d",
+                  mBatteryHistEntry.mPackageName, getPackageName(),
+                  mBatteryHistEntry.mUid, mBatteryHistEntry.mUserId));
         return builder.toString();
     }
 
diff --git a/src/com/android/settings/fuelgauge/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/BatteryHistEntry.java
index 43078e9..be8a845 100644
--- a/src/com/android/settings/fuelgauge/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/BatteryHistEntry.java
@@ -123,6 +123,11 @@
         return mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
     }
 
+    /** Whether this {@link BatteryHistEntry} is system consumer or not. */
+    public boolean isSystemEntry() {
+        return mConsumerType == ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
+    }
+
     /** Gets an identifier to represent this {@link BatteryHistEntry}. */
     public String getKey() {
         if (mKey == null) {
diff --git a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
index 99a72ab..98cbc8a 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageAdvanced.java
@@ -100,6 +100,13 @@
     }
 
     @Override
+    public void onPause() {
+        super.onPause();
+        // Resets the flag to reload usage data in onResume() callback.
+        mIsChartDataLoaded = false;
+    }
+
+    @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         refreshFeatureFlag(context);
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
diff --git a/src/com/android/settings/gestures/DeviceControlsPreferenceController.java b/src/com/android/settings/gestures/DeviceControlsPreferenceController.java
deleted file mode 100644
index 0e0c04b..0000000
--- a/src/com/android/settings/gestures/DeviceControlsPreferenceController.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.internal.annotations.VisibleForTesting;
-
-public class DeviceControlsPreferenceController extends GesturePreferenceController {
-    private static final String PREF_KEY_VIDEO = "device_controls_video";
-
-    @VisibleForTesting
-    protected static final String ENABLED_SETTING = Settings.Secure.CONTROLS_ENABLED;
-
-    @VisibleForTesting
-    protected static final String TOGGLE_KEY = "gesture_device_controls_switch";
-
-    public DeviceControlsPreferenceController(Context context, String key) {
-        super(context, key);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        boolean available = mContext.getPackageManager().hasSystemFeature(
-                PackageManager.FEATURE_CONTROLS);
-        return available ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return Settings.Secure.putInt(mContext.getContentResolver(), ENABLED_SETTING,
-                isChecked ? 1 : 0);
-    }
-
-    @Override
-    protected String getVideoPrefKey() {
-        return PREF_KEY_VIDEO;
-    }
-
-    @Override
-    public boolean isSliceable() {
-        return TextUtils.equals(getPreferenceKey(), TOGGLE_KEY);
-    }
-
-    @Override
-    public boolean isPublicSlice() {
-        return true;
-    }
-
-    @Override
-    public boolean isChecked() {
-        int enabled = Settings.Secure.getInt(mContext.getContentResolver(), ENABLED_SETTING, 1);
-        return enabled == 1;
-    }
-}
diff --git a/src/com/android/settings/gestures/DeviceControlsSettings.java b/src/com/android/settings/gestures/DeviceControlsSettings.java
deleted file mode 100644
index df36717..0000000
--- a/src/com/android/settings/gestures/DeviceControlsSettings.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import android.app.settings.SettingsEnums;
-
-import com.android.settings.R;
-import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-@SearchIndexable
-public class DeviceControlsSettings extends DashboardFragment {
-
-    private static final String TAG = "QuickControlsSettings";
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DEVICE_CONTROLS_SETTINGS;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.device_controls_settings;
-    }
-
-    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider(R.xml.device_controls_settings);
-}
diff --git a/src/com/android/settings/gestures/PowerMenuPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
index b11ba65..7c9cd24 100644
--- a/src/com/android/settings/gestures/PowerMenuPreferenceController.java
+++ b/src/com/android/settings/gestures/PowerMenuPreferenceController.java
@@ -17,7 +17,6 @@
 package com.android.settings.gestures;
 
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import com.android.settings.R;
@@ -26,7 +25,6 @@
 public class PowerMenuPreferenceController extends BasePreferenceController {
 
     private static final String KEY = "gesture_power_menu_summary";
-    private static final String CONTROLS_ENABLED_SETTING = Settings.Secure.CONTROLS_ENABLED;
     private static final String CARDS_ENABLED_SETTING =
             Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
     private static final String CARDS_AVAILABLE_SETTING =
@@ -38,17 +36,10 @@
 
     @Override
     public CharSequence getSummary() {
-        boolean controlsVisible = isControlsAvailable()
-                && Settings.Secure.getInt(mContext.getContentResolver(),
-                        CONTROLS_ENABLED_SETTING, 1) == 1;
         boolean cardsVisible = isCardsAvailable()
                 && Settings.Secure.getInt(mContext.getContentResolver(),
                         CARDS_ENABLED_SETTING, 0) == 1;
-        if (controlsVisible && cardsVisible) {
-            return mContext.getText(R.string.power_menu_cards_passes_device_controls);
-        } else if (controlsVisible) {
-            return mContext.getText(R.string.power_menu_device_controls);
-        } else if (cardsVisible) {
+        if (cardsVisible) {
             return mContext.getText(R.string.power_menu_cards_passes);
         } else {
             return mContext.getText(R.string.power_menu_none);
@@ -57,14 +48,10 @@
 
     @Override
     public int getAvailabilityStatus() {
-        return isCardsAvailable() || isControlsAvailable() || isAssistInvocationAvailable()
+        return isCardsAvailable() || isAssistInvocationAvailable()
                 ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
-    private boolean isControlsAvailable() {
-        return mContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CONTROLS);
-    }
-
     private boolean isCardsAvailable() {
         return Settings.Secure.getInt(mContext.getContentResolver(),
                 CARDS_AVAILABLE_SETTING, 0) == 1;
diff --git a/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java b/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
index 0cd71ee..0e0b3f9 100644
--- a/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
+++ b/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceController.java
@@ -35,7 +35,6 @@
     private static final String CARDS_AVAILABLE_KEY =
             Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
     private static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
-    private static final String CONTROLS_ENABLED_KEY = Settings.Secure.CONTROLS_ENABLED;
 
 
     public PowerMenuPrivacyPreferenceController(Context context,
@@ -94,8 +93,7 @@
         final ContentResolver resolver = mContext.getContentResolver();
         boolean cardsAvailable = Settings.Secure.getInt(resolver, CARDS_AVAILABLE_KEY, 0) != 0;
         boolean cardsEnabled = Settings.Secure.getInt(resolver, CARDS_ENABLED_KEY, 0) != 0;
-        boolean controlsEnabled = Settings.Secure.getInt(resolver, CONTROLS_ENABLED_KEY, 1) != 0;
-        return (cardsAvailable && cardsEnabled) || (isControlsAvailable() && controlsEnabled);
+        return (cardsAvailable && cardsEnabled) || isControlsAvailable();
     }
 
     private boolean isSecure() {
diff --git a/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java
new file mode 100644
index 0000000..cf65034
--- /dev/null
+++ b/src/com/android/settings/network/CarrierWifiTogglePreferenceController.java
@@ -0,0 +1,134 @@
+/*
+ * 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.network;
+
+import android.content.Context;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.Utils;
+import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.wifi.WifiPickerTrackerHelper;
+import com.android.wifitrackerlib.WifiPickerTracker;
+
+/**
+ * Preference controller for "Carrier Wi-Fi network"
+ */
+public class CarrierWifiTogglePreferenceController extends TogglePreferenceController implements
+        WifiPickerTracker.WifiPickerTrackerCallback {
+
+    private static final String TAG = "CarrierWifiTogglePreferenceController";
+    protected static final String CARRIER_WIFI_TOGGLE_PREF_KEY = "carrier_wifi_toggle";
+    protected static final String CARRIER_WIFI_NETWORK_PREF_KEY = "carrier_wifi_network";
+
+    protected final Context mContext;
+    protected boolean mIsProviderModelEnabled;
+    protected int mSubId;
+    protected WifiPickerTrackerHelper mWifiPickerTrackerHelper;
+    protected boolean mIsCarrierProvisionWifiEnabled;
+    protected Preference mCarrierNetworkPreference;
+
+    public CarrierWifiTogglePreferenceController(Context context,
+            String preferenceKey) {
+        super(context, preferenceKey);
+        mContext = context;
+        mIsProviderModelEnabled = Utils.isProviderModelEnabled(context);
+    }
+
+    /** Initialize related properties */
+    public void init(Lifecycle lifecycle, int subId) {
+        mSubId = subId;
+        mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(lifecycle, mContext, this);
+        mIsCarrierProvisionWifiEnabled =
+                mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (!mIsProviderModelEnabled) {
+            return CONDITIONALLY_UNAVAILABLE;
+        }
+        return mIsCarrierProvisionWifiEnabled ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+    }
+
+    @Override
+    public boolean isChecked() {
+        return mWifiPickerTrackerHelper.isCarrierNetworkEnabled(mSubId);
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        if (mWifiPickerTrackerHelper == null) {
+            return false;
+        }
+        mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked);
+        updateCarrierNetworkPreference(isChecked);
+        return true;
+    }
+
+    @Override
+    public void displayPreference(PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mCarrierNetworkPreference = screen.findPreference(CARRIER_WIFI_NETWORK_PREF_KEY);
+        updateCarrierNetworkPreference(isChecked());
+    }
+
+    @Override
+    public void onWifiStateChanged() {
+        if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) {
+            mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
+        }
+    }
+
+    @Override
+    public void onWifiEntriesChanged() {
+        if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) {
+            mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
+        }
+    }
+
+    @Override
+    public void onNumSavedNetworksChanged() {
+        // Do nothing
+    }
+
+    @Override
+    public void onNumSavedSubscriptionsChanged() {
+        // Do nothing
+    }
+
+    protected void updateCarrierNetworkPreference(boolean isCarrierNetworkEnabled) {
+        if (mCarrierNetworkPreference == null) {
+            return;
+        }
+        if (!isCarrierNetworkEnabled || getAvailabilityStatus() != AVAILABLE) {
+            mCarrierNetworkPreference.setVisible(false);
+            return;
+        }
+        mCarrierNetworkPreference.setVisible(true);
+        mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
+    }
+
+    protected String getCarrierNetworkSsid() {
+        if (mWifiPickerTrackerHelper == null) {
+            return null;
+        }
+        return mWifiPickerTrackerHelper.getCarrierNetworkSsid();
+    }
+}
diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java
index beb7489..3d4c4de 100644
--- a/src/com/android/settings/network/ProviderModelSlice.java
+++ b/src/com/android/settings/network/ProviderModelSlice.java
@@ -182,18 +182,18 @@
 
         final boolean isDataEnabled =
                 isToggleAction ? newState : MobileNetworkUtils.isMobileDataEnabled(mContext);
-        doCarrierNetworkAction(isToggleAction, isDataEnabled);
+        doCarrierNetworkAction(isToggleAction, isDataEnabled, defaultSubId);
     }
 
     @VisibleForTesting
-    void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled) {
+    void doCarrierNetworkAction(boolean isToggleAction, boolean isDataEnabled, int subId) {
         final NetworkProviderWorker worker = getWorker();
         if (worker == null) {
             return;
         }
 
         if (isToggleAction) {
-            worker.setCarrierNetworkEnabled(isDataEnabled);
+            worker.setCarrierNetworkEnabledIfNeeded(isDataEnabled, subId);
             return;
         }
 
diff --git a/src/com/android/settings/network/telephony/MobileDataDialogFragment.java b/src/com/android/settings/network/telephony/MobileDataDialogFragment.java
index 0292c6b..aa772ad 100644
--- a/src/com/android/settings/network/telephony/MobileDataDialogFragment.java
+++ b/src/com/android/settings/network/telephony/MobileDataDialogFragment.java
@@ -131,7 +131,8 @@
             case TYPE_DISABLE_DIALOG:
                 MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, false /* enabled */,
                         false /* disableOtherSubscriptions */);
-                if (mWifiPickerTrackerHelper != null) {
+                if (mWifiPickerTrackerHelper != null
+                        && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) {
                     mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false);
                 }
                 break;
@@ -139,7 +140,8 @@
                 mSubscriptionManager.setDefaultDataSubId(mSubId);
                 MobileNetworkUtils.setMobileDataEnabled(getContext(), mSubId, true /* enabled */,
                         true /* disableOtherSubscriptions */);
-                if (mWifiPickerTrackerHelper != null) {
+                if (mWifiPickerTrackerHelper != null
+                        && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) {
                     mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
                 }
                 break;
diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
index 78bc0a0..1ac121e 100644
--- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
+++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java
@@ -110,7 +110,8 @@
         if (!mNeedDialog) {
             // Update data directly if we don't need dialog
             MobileNetworkUtils.setMobileDataEnabled(mContext, mSubId, isChecked, false);
-            if (mWifiPickerTrackerHelper != null) {
+            if (mWifiPickerTrackerHelper != null
+                    && !mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(mSubId)) {
                 mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked);
             }
             return true;
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 6e89c8a..f54c18b 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -38,6 +38,7 @@
 import com.android.settings.datausage.BillingCyclePreferenceController;
 import com.android.settings.datausage.DataUsageSummaryPreferenceController;
 import com.android.settings.network.ActiveSubsciptionsListener;
+import com.android.settings.network.CarrierWifiTogglePreferenceController;
 import com.android.settings.network.telephony.cdma.CdmaSubscriptionPreferenceController;
 import com.android.settings.network.telephony.cdma.CdmaSystemSelectPreferenceController;
 import com.android.settings.network.telephony.gsm.AutoSelectPreferenceController;
@@ -159,6 +160,7 @@
         use(EnabledNetworkModePreferenceController.class).init(getLifecycle(), mSubId);
         use(DataServiceSetupPreferenceController.class).init(mSubId);
         use(Enable2gPreferenceController.class).init(mSubId);
+        use(CarrierWifiTogglePreferenceController.class).init(getLifecycle(), mSubId);
 
         final WifiCallingPreferenceController wifiCallingPreferenceController =
                 use(WifiCallingPreferenceController.class).init(mSubId);
diff --git a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
index 1c7b4df..67f0c7b 100644
--- a/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleNotificationPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import android.app.ActivityManager;
 import android.content.ContentResolver;
@@ -88,14 +88,14 @@
 
     @Override
     public boolean isChecked() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        return Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        return Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, isChecked ? ON : OFF);
+        return Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+                isChecked ? ON : OFF);
     }
 
     @Override
@@ -106,7 +106,7 @@
     class SettingObserver extends ContentObserver {
 
         private final Uri NOTIFICATION_BUBBLES_URI =
-                Settings.Global.getUriFor(NOTIFICATION_BUBBLES);
+                Settings.Secure.getUriFor(NOTIFICATION_BUBBLES);
 
         private final Preference mPreference;
 
diff --git a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
index a99155f..3dac732 100644
--- a/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
+++ b/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import android.app.ActivityManager;
 import android.content.Context;
@@ -54,7 +54,7 @@
     }
 
     private boolean areBubblesEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        return Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 }
diff --git a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
index 43f0baa..ad3a10c 100644
--- a/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleCategoryPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification.app;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import android.content.Context;
 import android.content.Intent;
@@ -67,7 +67,7 @@
 
 
     private boolean areBubblesEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        return Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 }
diff --git a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
index 3439543..0b9529b 100644
--- a/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleLinkPreferenceController.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification.app;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import android.content.Context;
 import android.content.Intent;
@@ -67,7 +67,7 @@
 
 
     private boolean areBubblesEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
+        return Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 }
diff --git a/src/com/android/settings/notification/app/BubblePreferenceController.java b/src/com/android/settings/notification/app/BubblePreferenceController.java
index 6caa95e..351b463 100644
--- a/src/com/android/settings/notification/app/BubblePreferenceController.java
+++ b/src/com/android/settings/notification/app/BubblePreferenceController.java
@@ -17,10 +17,10 @@
 package com.android.settings.notification.app;
 
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
-import android.app.ActivityManager;
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.app.NotificationChannel;
 import android.content.Context;
 import android.provider.Settings;
@@ -72,7 +72,7 @@
         if (!super.isAvailable()) {
             return false;
         }
-        if (!mIsAppPage && !isGloballyEnabled()) {
+        if (!mIsAppPage && !isEnabled()) {
             return false;
         }
         if (mChannel != null) {
@@ -101,7 +101,7 @@
             BubblePreference pref = (BubblePreference) preference;
             pref.setDisabledByAdmin(mAdmin);
             pref.setSelectedVisibility(!mHasSentInvalidMsg || mNumConversations > 0);
-            if (!isGloballyEnabled()) {
+            if (!isEnabled()) {
                 pref.setSelectedPreference(BUBBLE_PREFERENCE_NONE);
             } else {
                 pref.setSelectedPreference(backEndPref);
@@ -110,7 +110,7 @@
             // We're on the channel specific notification page which displays a toggle.
             RestrictedSwitchPreference switchpref = (RestrictedSwitchPreference) preference;
             switchpref.setDisabledByAdmin(mAdmin);
-            switchpref.setChecked(mChannel.canBubble() && isGloballyEnabled());
+            switchpref.setChecked(mChannel.canBubble() && isEnabled());
         }
     }
 
@@ -125,7 +125,7 @@
             BubblePreference pref = (BubblePreference) preference;
             if (mAppRow != null && mFragmentManager != null) {
                 final int value = (int) newValue;
-                if (!isGloballyEnabled()
+                if (!isEnabled()
                         && pref.getSelectedPreference() == BUBBLE_PREFERENCE_NONE) {
                     // if the global setting is off, toggling app level permission requires extra
                     // confirmation
@@ -145,9 +145,9 @@
         return true;
     }
 
-    private boolean isGloballyEnabled() {
+    private boolean isEnabled() {
         ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return !am.isLowRamDevice() && Settings.Global.getInt(mContext.getContentResolver(),
+        return !am.isLowRamDevice() && Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF) == SYSTEM_WIDE_ON;
     }
 
@@ -155,25 +155,27 @@
      * Used in app level prompt that confirms the user is ok with turning on bubbles
      * globally. If they aren't, undo that.
      */
-    public static void revertBubblesApproval(Context mContext, String pkg, int uid) {
+    public static void revertBubblesApproval(Context context, String pkg, int uid) {
         NotificationBackend backend = new NotificationBackend();
         backend.setAllowBubbles(pkg, uid, BUBBLE_PREFERENCE_NONE);
 
         // changing the global settings will cause the observer on the host page to reload
         // correct preference state
-        Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
+        Settings.Secure.putInt(context.getContentResolver(),
+                NOTIFICATION_BUBBLES,
+                SYSTEM_WIDE_OFF);
     }
 
     /**
      * Apply global bubbles approval
      */
-    public static void applyBubblesApproval(Context mContext, String pkg, int uid, int pref) {
+    public static void applyBubblesApproval(Context context, String pkg, int uid, int pref) {
         NotificationBackend backend = new NotificationBackend();
         backend.setAllowBubbles(pkg, uid, pref);
         // changing the global settings will cause the observer on the host page to reload
         // correct preference state
-        Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(context.getContentResolver(),
+                NOTIFICATION_BUBBLES,
+                SYSTEM_WIDE_ON);
     }
 }
diff --git a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
index 5b2a973..fb414ee 100644
--- a/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
+++ b/src/com/android/settings/notification/app/BubbleSummaryPreferenceController.java
@@ -18,7 +18,7 @@
 
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_ALL;
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import android.app.ActivityManager;
 import android.content.Context;
@@ -106,7 +106,7 @@
 
     private boolean isGloballyEnabled() {
         ActivityManager am = mContext.getSystemService(ActivityManager.class);
-        return !am.isLowRamDevice() && Settings.Global.getInt(mContext.getContentResolver(),
+        return !am.isLowRamDevice() && Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON) == ON;
     }
 }
diff --git a/src/com/android/settings/notification/app/GlobalBubblePermissionObserverMixin.java b/src/com/android/settings/notification/app/GlobalBubblePermissionObserverMixin.java
index bed0f3d..583cfe1 100644
--- a/src/com/android/settings/notification/app/GlobalBubblePermissionObserverMixin.java
+++ b/src/com/android/settings/notification/app/GlobalBubblePermissionObserverMixin.java
@@ -47,8 +47,8 @@
 
     public void onStart() {
         mContext.getContentResolver().registerContentObserver(
-                Settings.Global.getUriFor(
-                        Settings.Global.NOTIFICATION_BUBBLES),
+                Settings.Secure.getUriFor(
+                        Settings.Secure.NOTIFICATION_BUBBLES),
                 false /* notifyForDescendants */,
                 this /* observer */);
     }
diff --git a/src/com/android/settings/vpn2/VpnSettings.java b/src/com/android/settings/vpn2/VpnSettings.java
index 181b78f..cf0e4fa 100644
--- a/src/com/android/settings/vpn2/VpnSettings.java
+++ b/src/com/android/settings/vpn2/VpnSettings.java
@@ -59,6 +59,7 @@
 import com.android.internal.net.VpnProfile;
 import com.android.settings.R;
 import com.android.settings.RestrictedSettingsFragment;
+import com.android.settings.Utils;
 import com.android.settings.widget.GearPreference;
 import com.android.settings.widget.GearPreference.OnGearClickListener;
 import com.android.settingslib.RestrictedLockUtilsInternal;
@@ -129,7 +130,17 @@
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
-        inflater.inflate(R.menu.vpn, menu);
+        // Although FEATURE_IPSEC_TUNNELS should always be present in android S,
+        // keep this check here just to be safe.
+        if (Utils.isProviderModelEnabled(getContext())
+                && !getContext().getPackageManager().hasSystemFeature(
+                        PackageManager.FEATURE_IPSEC_TUNNELS)) {
+            Log.w(LOG_TAG, "FEATURE_IPSEC_TUNNELS missing from system, cannot create new VPNs");
+            return;
+        } else {
+            // By default, we should inflate this menu.
+            inflater.inflate(R.menu.vpn, menu);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/wifi/WifiPickerTrackerHelper.java b/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
index c20f355..fcae6ea 100644
--- a/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
+++ b/src/com/android/settings/wifi/WifiPickerTrackerHelper.java
@@ -17,12 +17,16 @@
 package com.android.settings.wifi;
 
 import android.content.Context;
+import android.net.wifi.WifiManager;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Looper;
+import android.os.PersistableBundle;
 import android.os.Process;
 import android.os.SimpleClock;
 import android.os.SystemClock;
+import android.telephony.CarrierConfigManager;
+import android.util.Log;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -55,9 +59,12 @@
         }
     };
 
-    private WifiPickerTracker mWifiPickerTracker;
+    protected WifiPickerTracker mWifiPickerTracker;
     // Worker thread used for WifiPickerTracker work
-    private HandlerThread mWorkerThread;
+    protected HandlerThread mWorkerThread;
+
+    protected final WifiManager mWifiManager;
+    protected final CarrierConfigManager mCarrierConfigManager;
 
     public WifiPickerTrackerHelper(@NonNull Lifecycle lifecycle, @NonNull Context context,
             @Nullable WifiPickerTracker.WifiPickerTrackerCallback listener) {
@@ -80,26 +87,49 @@
                 SCAN_INTERVAL_MILLIS,
                 listener);
 
+        mWifiManager = context.getSystemService(WifiManager.class);
+        mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
     }
 
+    /** @OnLifecycleEvent(ON_DESTROY) */
     @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
     public void onDestroy() {
         mWorkerThread.quit();
     }
 
+    /** Return the WifiPickerTracker class */
     public @NonNull WifiPickerTracker getWifiPickerTracker() {
         return mWifiPickerTracker;
     }
 
-    public boolean setCarrierNetworkEnabled(boolean enable) {
-        final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
-        if (mergedCarrierEntry == null) {
+    /** Return the enabled/disabled state of the carrier network provision */
+    public boolean isCarrierNetworkProvisionEnabled(int subId) {
+        final PersistableBundle config = mCarrierConfigManager.getConfigForSubId(subId);
+        if (config == null) {
+            Log.e(TAG, "Could not get carrier config, subId:" + subId);
             return false;
         }
-        mergedCarrierEntry.setEnabled(enable);
-        return true;
+        final boolean enabled = config.getBoolean(
+                CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL);
+        Log.i(TAG, "isCarrierNetworkProvisionEnabled:" + enabled);
+        return enabled;
     }
 
+    /** Return the enabled/disabled state of the carrier network */
+    public boolean isCarrierNetworkEnabled(int subId) {
+        return mWifiManager.isCarrierNetworkOffloadEnabled(subId, true /* merged */);
+    }
+
+    /** Enables/disables the carrier network */
+    public void setCarrierNetworkEnabled(boolean enabled) {
+        final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
+        if (mergedCarrierEntry == null) {
+            return;
+        }
+        mergedCarrierEntry.setEnabled(enabled);
+    }
+
+    /** Connect to the carrier network */
     public boolean connectCarrierNetwork(@Nullable WifiEntry.ConnectCallback callback) {
         final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
         if (mergedCarrierEntry == null || !mergedCarrierEntry.canConnect()) {
@@ -109,6 +139,15 @@
         return true;
     }
 
+    /** Return the carrier network ssid */
+    public String getCarrierNetworkSsid() {
+        final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
+        if (mergedCarrierEntry == null) {
+            return null;
+        }
+        return mergedCarrierEntry.getSsid();
+    }
+
     @VisibleForTesting
     void setWifiPickerTracker(@NonNull WifiPickerTracker wifiPickerTracker) {
         mWifiPickerTracker = wifiPickerTracker;
diff --git a/src/com/android/settings/wifi/slice/WifiScanWorker.java b/src/com/android/settings/wifi/slice/WifiScanWorker.java
index 78b0d33..4f1f64d 100644
--- a/src/com/android/settings/wifi/slice/WifiScanWorker.java
+++ b/src/com/android/settings/wifi/slice/WifiScanWorker.java
@@ -21,10 +21,6 @@
 import android.content.Context;
 import android.net.Uri;
 import android.net.wifi.WifiManager;
-import android.os.HandlerThread;
-import android.os.Process;
-import android.os.SimpleClock;
-import android.os.SystemClock;
 import android.text.TextUtils;
 
 import androidx.annotation.VisibleForTesting;
@@ -32,16 +28,12 @@
 import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.LifecycleRegistry;
 
-import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.slices.SliceBackgroundWorker;
-import com.android.settingslib.utils.ThreadUtils;
-import com.android.wifitrackerlib.MergedCarrierEntry;
+import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiEntry.WifiEntryCallback;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
-import java.time.Clock;
-import java.time.ZoneOffset;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -53,40 +45,19 @@
 
     private static final String TAG = "WifiScanWorker";
 
-    // Max age of tracked WifiEntries.
-    private static final long MAX_SCAN_AGE_MILLIS = 15_000;
-    // Interval between initiating WifiPickerTracker scans.
-    private static final long SCAN_INTERVAL_MILLIS = 10_000;
-
     @VisibleForTesting
     final LifecycleRegistry mLifecycleRegistry;
     @VisibleForTesting
     protected WifiPickerTracker mWifiPickerTracker;
-    // Worker thread used for WifiPickerTracker work
-    private final HandlerThread mWorkerThread;
+    protected WifiPickerTrackerHelper mWifiPickerTrackerHelper;
 
     public WifiScanWorker(Context context, Uri uri) {
         super(context, uri);
 
         mLifecycleRegistry = new LifecycleRegistry(this);
 
-        mWorkerThread = new HandlerThread(TAG, Process.THREAD_PRIORITY_BACKGROUND);
-        mWorkerThread.start();
-        final Clock elapsedRealtimeClock = new SimpleClock(ZoneOffset.UTC) {
-            @Override
-            public long millis() {
-                return SystemClock.elapsedRealtime();
-            }
-        };
-        mWifiPickerTracker = FeatureFactory.getFactory(context)
-                .getWifiTrackerLibProvider()
-                .createWifiPickerTracker(getLifecycle(), context,
-                        ThreadUtils.getUiThreadHandler(),
-                        mWorkerThread.getThreadHandler(),
-                        elapsedRealtimeClock,
-                        MAX_SCAN_AGE_MILLIS,
-                        SCAN_INTERVAL_MILLIS,
-                        this);
+        mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mLifecycleRegistry, context, this);
+        mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker();
 
         mLifecycleRegistry.markState(Lifecycle.State.INITIALIZED);
         mLifecycleRegistry.markState(Lifecycle.State.CREATED);
@@ -108,7 +79,6 @@
     @Override
     public void close() {
         mLifecycleRegistry.markState(Lifecycle.State.DESTROYED);
-        mWorkerThread.quit();
     }
 
     @Override
@@ -199,17 +169,15 @@
         super.updateResults(resultList);
     }
 
-    public void setCarrierNetworkEnabled(boolean enable) {
-        final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
-        if (mergedCarrierEntry != null) {
-            mergedCarrierEntry.setEnabled(enable);
+    /** Enables/disables the carrier network if the carrier network provision disabled */
+    public void setCarrierNetworkEnabledIfNeeded(boolean enabled, int subId) {
+        if (!mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(subId)) {
+            mWifiPickerTrackerHelper.setCarrierNetworkEnabled(enabled);
         }
     }
 
+    /** Connect to the carrier network */
     public void connectCarrierNetwork() {
-        final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
-        if (mergedCarrierEntry != null && mergedCarrierEntry.canConnect()) {
-            mergedCarrierEntry.connect(null /* ConnectCallback */);
-        }
+        mWifiPickerTrackerHelper.connectCarrierNetwork(null /* ConnectCallback */);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
index c2cc609..8c9d6b6 100644
--- a/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/AccessibilitySettingsTest.java
@@ -19,35 +19,55 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.isNull;
+import static org.mockito.Mockito.atLeast;
 import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import static java.util.Collections.singletonList;
+
 import android.accessibilityservice.AccessibilityServiceInfo;
 import android.accessibilityservice.AccessibilityShortcutInfo;
 import android.content.ComponentName;
+import android.content.ContentResolver;
 import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.os.Build;
+import android.os.Bundle;
 import android.provider.Settings;
 import android.view.accessibility.AccessibilityManager;
 
+import androidx.fragment.app.FragmentActivity;
+import androidx.preference.PreferenceManager;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.internal.content.PackageMonitor;
 import com.android.settings.R;
 import com.android.settings.testutils.XmlTestUtils;
 import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+import com.android.settings.testutils.shadow.ShadowFragment;
+import com.android.settings.testutils.shadow.ShadowUserManager;
 import com.android.settingslib.RestrictedPreference;
 
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
+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;
 import org.robolectric.shadow.api.Shadow;
 import org.robolectric.shadows.ShadowAccessibilityManager;
@@ -55,15 +75,14 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
 public class AccessibilitySettingsTest {
-    private static final String DUMMY_PACKAGE_NAME = "com.mock.example";
-    private static final String DUMMY_CLASS_NAME = DUMMY_PACKAGE_NAME + ".mock_a11y_service";
-    private static final ComponentName DUMMY_COMPONENT_NAME = new ComponentName(DUMMY_PACKAGE_NAME,
-            DUMMY_CLASS_NAME);
+    private static final String PACKAGE_NAME = "com.android.test";
+    private static final String CLASS_NAME = PACKAGE_NAME + ".test_a11y_service";
+    private static final ComponentName COMPONENT_NAME = new ComponentName(PACKAGE_NAME,
+            CLASS_NAME);
     private static final int ON = 1;
     private static final int OFF = 0;
     private static final String EMPTY_STRING = "";
@@ -72,24 +91,35 @@
     private static final String DEFAULT_LABEL = "default label";
     private static final Boolean SERVICE_ENABLED = true;
     private static final Boolean SERVICE_DISABLED = false;
-
-    private Context mContext;
-    private AccessibilitySettings mSettings;
-    private ShadowAccessibilityManager mShadowAccessibilityManager;
-    private AccessibilityServiceInfo mServiceInfo;
+    @Rule
+    public final MockitoRule mocks = MockitoJUnit.rule();
+    @Spy
+    private final Context mContext = ApplicationProvider.getApplicationContext();
+    @Spy
+    private final AccessibilityServiceInfo mServiceInfo = getMockAccessibilityServiceInfo(
+            PACKAGE_NAME, CLASS_NAME);
+    @Spy
+    private final AccessibilitySettings mFragment = new AccessibilitySettings();
     @Mock
     private AccessibilityShortcutInfo mShortcutInfo;
+    @Mock
+    private FragmentActivity mActivity;
+    @Mock
+    private ContentResolver mContentResolver;
+    @Mock
+    private PreferenceManager mPreferenceManager;
+    private ShadowAccessibilityManager mShadowAccessibilityManager;
 
     @Before
     public void setup() {
-        MockitoAnnotations.initMocks(this);
-
-        mContext = spy(RuntimeEnvironment.application);
-        mSettings = spy(new AccessibilitySettings());
-        mServiceInfo = spy(getMockAccessibilityServiceInfo());
         mShadowAccessibilityManager = Shadow.extract(AccessibilityManager.getInstance(mContext));
         mShadowAccessibilityManager.setInstalledAccessibilityServiceList(new ArrayList<>());
-        doReturn(mContext).when(mSettings).getContext();
+        when(mFragment.getContext()).thenReturn(mContext);
+        when(mFragment.getActivity()).thenReturn(mActivity);
+        when(mActivity.getContentResolver()).thenReturn(mContentResolver);
+        when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
+        when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
+        mContext.setTheme(R.style.Theme_AppCompat);
     }
 
     @Test
@@ -216,11 +246,11 @@
 
     @Test
     public void createAccessibilityServicePreferenceList_hasOneInfo_containsSameKey() {
-        final String key = DUMMY_COMPONENT_NAME.flattenToString();
+        final String key = COMPONENT_NAME.flattenToString();
         final AccessibilitySettings.RestrictedPreferenceHelper helper =
                 new AccessibilitySettings.RestrictedPreferenceHelper(mContext);
         final List<AccessibilityServiceInfo> infoList = new ArrayList<>(
-                Collections.singletonList(mServiceInfo));
+                singletonList(mServiceInfo));
 
         final List<RestrictedPreference> preferenceList =
                 helper.createAccessibilityServicePreferenceList(infoList);
@@ -231,12 +261,12 @@
 
     @Test
     public void createAccessibilityActivityPreferenceList_hasOneInfo_containsSameKey() {
-        final String key = DUMMY_COMPONENT_NAME.flattenToString();
+        final String key = COMPONENT_NAME.flattenToString();
         final AccessibilitySettings.RestrictedPreferenceHelper helper =
                 new AccessibilitySettings.RestrictedPreferenceHelper(mContext);
         setMockAccessibilityShortcutInfo(mShortcutInfo);
         final List<AccessibilityShortcutInfo> infoList = new ArrayList<>(
-                Collections.singletonList(mShortcutInfo));
+                singletonList(mShortcutInfo));
 
         final List<RestrictedPreference> preferenceList =
                 helper.createAccessibilityActivityPreferenceList(infoList);
@@ -245,21 +275,94 @@
         assertThat(preference.getKey()).isEqualTo(key);
     }
 
-    private AccessibilityServiceInfo getMockAccessibilityServiceInfo() {
+    @Test
+    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
+    public void onCreate_haveRegisterToSpecificUrisAndActions() {
+        final ArgumentCaptor<IntentFilter> captor = ArgumentCaptor.forClass(IntentFilter.class);
+        final IntentFilter intentFilter;
+        mFragment.onAttach(mContext);
+
+        mFragment.onCreate(Bundle.EMPTY);
+
+        verify(mContentResolver).registerContentObserver(
+                eq(Settings.Secure.getUriFor(Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS)),
+                anyBoolean(),
+                any(SettingsContentObserver.class));
+        verify(mContentResolver).registerContentObserver(eq(Settings.Secure.getUriFor(
+                Settings.Secure.ACCESSIBILITY_SHORTCUT_TARGET_SERVICE)), anyBoolean(),
+                any(SettingsContentObserver.class));
+        verify(mActivity, atLeast(1)).registerReceiver(any(PackageMonitor.class), captor.capture(),
+                isNull(), any());
+        intentFilter = captor.getAllValues().get(/* first time */ 0);
+        assertThat(intentFilter.hasAction(Intent.ACTION_PACKAGE_ADDED)).isTrue();
+        assertThat(intentFilter.hasAction(Intent.ACTION_PACKAGE_REMOVED)).isTrue();
+    }
+
+    @Test
+    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
+    public void onDestroy_unregisterObserverAndReceiver() {
+        setupFragment();
+        mFragment.onPause();
+        mFragment.onStop();
+
+        mFragment.onDestroy();
+
+        verify(mContentResolver).unregisterContentObserver(any(SettingsContentObserver.class));
+        verify(mActivity).unregisterReceiver(any(PackageMonitor.class));
+
+    }
+
+    @Test
+    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
+    public void onContentChanged_updatePreferenceInForeground_preferenceUpdated() {
+        setupFragment();
+        mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
+                singletonList(mServiceInfo));
+
+        mFragment.onContentChanged();
+
+        RestrictedPreference preference = mFragment.getPreferenceScreen().findPreference(
+                COMPONENT_NAME.flattenToString());
+
+        assertThat(preference).isNotNull();
+
+    }
+
+    @Test
+    @Config(shadows = {ShadowFragment.class, ShadowUserManager.class})
+    public void onContentChanged_updatePreferenceInBackground_preferenceUpdated() {
+        setupFragment();
+        mFragment.onPause();
+        mFragment.onStop();
+
+        mShadowAccessibilityManager.setInstalledAccessibilityServiceList(
+                singletonList(mServiceInfo));
+
+        mFragment.onContentChanged();
+        mFragment.onStart();
+
+        RestrictedPreference preference = mFragment.getPreferenceScreen().findPreference(
+                COMPONENT_NAME.flattenToString());
+
+        assertThat(preference).isNotNull();
+
+    }
+
+    private AccessibilityServiceInfo getMockAccessibilityServiceInfo(String packageName,
+            String className) {
         final ApplicationInfo applicationInfo = new ApplicationInfo();
         final ServiceInfo serviceInfo = new ServiceInfo();
-        applicationInfo.packageName = DUMMY_PACKAGE_NAME;
-        serviceInfo.packageName = DUMMY_PACKAGE_NAME;
-        serviceInfo.name = DUMMY_CLASS_NAME;
+        applicationInfo.packageName = packageName;
+        serviceInfo.packageName = packageName;
+        serviceInfo.name = className;
         serviceInfo.applicationInfo = applicationInfo;
 
         final ResolveInfo resolveInfo = new ResolveInfo();
         resolveInfo.serviceInfo = serviceInfo;
-
         try {
             final AccessibilityServiceInfo info = new AccessibilityServiceInfo(resolveInfo,
                     mContext);
-            info.setComponentName(DUMMY_COMPONENT_NAME);
+            info.setComponentName(new ComponentName(PACKAGE_NAME, CLASS_NAME));
             return info;
         } catch (XmlPullParserException | IOException e) {
             // Do nothing
@@ -274,11 +377,18 @@
         when(activityInfo.loadLabel(any())).thenReturn(DEFAULT_LABEL);
         when(mockInfo.loadSummary(any())).thenReturn(DEFAULT_SUMMARY);
         when(mockInfo.loadDescription(any())).thenReturn(DEFAULT_DESCRIPTION);
-        when(mockInfo.getComponentName()).thenReturn(DUMMY_COMPONENT_NAME);
+        when(mockInfo.getComponentName()).thenReturn(COMPONENT_NAME);
     }
 
     private void setInvisibleToggleFragmentType(AccessibilityServiceInfo info) {
         info.getResolveInfo().serviceInfo.applicationInfo.targetSdkVersion = Build.VERSION_CODES.R;
         info.flags |= AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON;
     }
+
+    private void setupFragment() {
+        mFragment.onAttach(mContext);
+        mFragment.onCreate(Bundle.EMPTY);
+        mFragment.onStart();
+        mFragment.onResume();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
index d811726..c8bbba3 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryChartPreferenceControllerTest.java
@@ -381,6 +381,58 @@
         assertThat(pref.getSummary()).isNull();
     }
 
+    @Test
+    public void testValidateUsageTime_returnTrueIfBatteryDiffEntryIsValid() {
+        assertThat(BatteryChartPreferenceController.validateUsageTime(
+            createBatteryDiffEntry(
+                /*foregroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS,
+                /*backgroundUsageTimeInMs=*/ DateUtils.MINUTE_IN_MILLIS)))
+            .isTrue();
+    }
+
+    @Test
+    public void testValidateUsageTime_foregroundTimeExceedThreshold_returnFalse() {
+        assertThat(BatteryChartPreferenceController.validateUsageTime(
+            createBatteryDiffEntry(
+                /*foregroundUsageTimeInMs=*/ DateUtils.HOUR_IN_MILLIS * 3,
+                /*backgroundUsageTimeInMs=*/ 0)))
+            .isFalse();
+    }
+
+    @Test
+    public void testValidateUsageTime_backgroundTimeExceedThreshold_returnFalse() {
+        assertThat(BatteryChartPreferenceController.validateUsageTime(
+            createBatteryDiffEntry(
+                /*foregroundUsageTimeInMs=*/ 0,
+                /*backgroundUsageTimeInMs=*/ DateUtils.HOUR_IN_MILLIS * 3)))
+            .isFalse();
+    }
+
+    @Test
+    public void testValidateSlotTimestamp_emptyContent_returnTrue() {
+        assertThat(BatteryChartPreferenceController.validateSlotTimestamp(
+            new ArrayList<Long>())).isTrue();
+    }
+
+    @Test
+    public void testValidateSlotTimestamp_returnExpectedResult() {
+        final List<Long> slotTimestampList =
+            Arrays.asList(
+                Long.valueOf(0),
+                Long.valueOf(DateUtils.HOUR_IN_MILLIS),
+                Long.valueOf(DateUtils.HOUR_IN_MILLIS * 2 + DateUtils.MINUTE_IN_MILLIS),
+                Long.valueOf(DateUtils.HOUR_IN_MILLIS * 3 + DateUtils.MINUTE_IN_MILLIS * 2));
+        // Verifies the testing data is correct before we added invalid data into it.
+        assertThat(BatteryChartPreferenceController.validateSlotTimestamp(slotTimestampList))
+            .isTrue();
+
+        // Insert invalid timestamp into the list.
+        slotTimestampList.add(
+            Long.valueOf(DateUtils.HOUR_IN_MILLIS * 4 + DateUtils.MINUTE_IN_MILLIS * 3));
+        assertThat(BatteryChartPreferenceController.validateSlotTimestamp(slotTimestampList))
+            .isFalse();
+    }
+
     private static Map<Long, List<BatteryHistEntry>> createBatteryHistoryMap(int size) {
         final Map<Long, List<BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         for (int index = 0; index < size; index++) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
index 819a223..e4a86b1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHistEntryTest.java
@@ -187,6 +187,16 @@
             .isFalse();
     }
 
+    @Test
+    public void testIsSystemEntry_returnExpectedResult() {
+        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isSystemEntry())
+            .isTrue();
+        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isSystemEntry())
+            .isFalse();
+        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isSystemEntry())
+            .isFalse();
+    }
+
     private static BatteryHistEntry createEntry(int consumerType) {
         return new BatteryHistEntry(getContentValuesWithType(consumerType));
     }
diff --git a/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java
deleted file mode 100644
index 432a68d..0000000
--- a/tests/robotests/src/com/android/settings/gestures/DeviceControlsPreferenceControllerTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.provider.Settings;
-
-import com.android.settings.core.BasePreferenceController;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowPackageManager;
-
-@RunWith(RobolectricTestRunner.class)
-public class DeviceControlsPreferenceControllerTest {
-
-    private Context mContext;
-    private DeviceControlsPreferenceController mController;
-    private ShadowPackageManager mShadowPackageManager;
-
-    private static final String KEY_GESTURE_PANEL = "gesture_device_controls";
-    private static final String ENABLED_SETTING =
-            DeviceControlsPreferenceController.ENABLED_SETTING;
-
-    @Before
-    public void setUp() {
-        mContext = RuntimeEnvironment.application;
-        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
-        mController = new DeviceControlsPreferenceController(mContext, KEY_GESTURE_PANEL);
-    }
-
-    @Test
-    public void testIsChecked_panelEnabled() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), ENABLED_SETTING, 1);
-        assertThat(mController.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testIsChecked_panelDisabled() {
-        Settings.Secure.putInt(
-                mContext.getContentResolver(), ENABLED_SETTING, 0);
-        assertThat(mController.isChecked()).isFalse();
-    }
-
-    @Test
-    public void getAvailabilityStatus_hasSystemFeature_panelAvailable() {
-        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_hasntSystemFeature_panelUnsupported() {
-        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, false);
-
-        assertThat(mController.getAvailabilityStatus())
-                .isEqualTo(BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
-    }
-
-    @Test
-    public void isSliceable_correctKey() {
-        final DeviceControlsPreferenceController controller =
-                new DeviceControlsPreferenceController(mContext,
-                        DeviceControlsPreferenceController.TOGGLE_KEY);
-        assertThat(controller.isSliceable()).isTrue();
-    }
-
-    @Test
-    public void isSliceable_incorrectKey() {
-        final DeviceControlsPreferenceController controller =
-                new DeviceControlsPreferenceController(mContext, "bad_key");
-        assertThat(controller.isSliceable()).isFalse();
-    }
-
-    @Test
-    public void isPublicSlice_returnTrue() {
-        assertThat(mController.isPublicSlice()).isTrue();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/DeviceControlsSettingsTest.java b/tests/robotests/src/com/android/settings/gestures/DeviceControlsSettingsTest.java
deleted file mode 100644
index 2ec0f1d..0000000
--- a/tests/robotests/src/com/android/settings/gestures/DeviceControlsSettingsTest.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.gestures;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.provider.SearchIndexableResource;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public class DeviceControlsSettingsTest {
-
-    private DeviceControlsSettings mSettings;
-
-    @Before
-    public void setUp() {
-        mSettings = new DeviceControlsSettings();
-    }
-
-    @Test
-    public void testSearchIndexProvider_shouldIndexResource() {
-        final List<SearchIndexableResource> indexRes =
-                DeviceControlsSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
-                        RuntimeEnvironment.application, true /* enabled */);
-
-        assertThat(indexRes).isNotNull();
-        assertThat(indexRes.get(0).xmlResId).isEqualTo(mSettings.getPreferenceScreenResId());
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java
index 7fa248c..4ed0a01 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerSummaryTest.java
@@ -21,7 +21,6 @@
 import android.annotation.StringRes;
 import android.content.ContentResolver;
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.provider.Settings;
 
 import com.android.settings.R;
@@ -31,8 +30,6 @@
 import org.junit.runner.RunWith;
 import org.robolectric.ParameterizedRobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowPackageManager;
 
 import java.util.Arrays;
 import java.util.Collection;
@@ -41,53 +38,32 @@
 public class PowerMenuPreferenceControllerSummaryTest {
 
     private static final String KEY_GESTURE_POWER_MENU = "gesture_power_menu";
-    private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
-    private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
     private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
     private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
 
     @ParameterizedRobolectricTestRunner.Parameters(
-            name = "ctrls available={0}, ctrls enabled={1}, cards available={2}, cards enabled={3}")
+            name = "cards available={0}, cards enabled={1}")
     public static Collection data() {
         return Arrays.asList(new Object[][]{
-                // controls available, controls enabled, cards available, cards enabled, summary
-                {false, false, false, false, R.string.power_menu_none},
-                {false, false, false, true, R.string.power_menu_none},
-                {false, false, true, false, R.string.power_menu_none},
-                {false, false, true, true, R.string.power_menu_cards_passes},
-                {false, true, false, false, R.string.power_menu_none},
-                {false, true, false, true, R.string.power_menu_none},
-                {false, true, true, false, R.string.power_menu_none},
-                {false, true, true, true, R.string.power_menu_cards_passes},
-                {true, false, false, false, R.string.power_menu_none},
-                {true, false, false, true, R.string.power_menu_none},
-                {true, false, true, false, R.string.power_menu_none},
-                {true, false, true, true, R.string.power_menu_cards_passes},
-                {true, true, false, false, R.string.power_menu_device_controls},
-                {true, true, false, true, R.string.power_menu_device_controls},
-                {true, true, true, false, R.string.power_menu_device_controls},
-                {true, true, true, true, R.string.power_menu_cards_passes_device_controls}
+                // cards available, cards enabled, summary
+                {false, false, R.string.power_menu_none},
+                {false, true, R.string.power_menu_none},
+                {true, false, R.string.power_menu_none},
+                {true, true, R.string.power_menu_cards_passes}
         });
     }
 
     private Context mContext;
     private PowerMenuPreferenceController mController;
-    private ShadowPackageManager mShadowPackageManager;
 
-    private boolean mControlsAvailable;
-    private boolean mControlsEnabled;
     private boolean mCardsAvailable;
     private boolean mCardsEnabled;
     private @StringRes int mSummaryRes;
 
     public PowerMenuPreferenceControllerSummaryTest(
-            boolean controlsAvailable,
-            boolean controlsEnabled,
             boolean cardsAvailable,
             boolean cardsEnabled,
             @StringRes int summaryRes) {
-        mControlsAvailable = controlsAvailable;
-        mControlsEnabled = controlsEnabled;
         mCardsAvailable = cardsAvailable;
         mCardsEnabled = cardsEnabled;
         mSummaryRes = summaryRes;
@@ -96,15 +72,12 @@
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
-        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         mController = new PowerMenuPreferenceController(mContext, KEY_GESTURE_POWER_MENU);
     }
 
     @Test
     public void getSummary_possiblyAvailableAndEnabled() {
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, mControlsAvailable);
         ContentResolver cr = mContext.getContentResolver();
-        Settings.Secure.putInt(cr, CONTROLS_ENABLED, mControlsEnabled ? 1 : 0);
         Settings.Secure.putInt(cr, CARDS_AVAILABLE, mCardsAvailable ? 1 : 0);
         Settings.Secure.putInt(cr, CARDS_ENABLED, mCardsEnabled ? 1 : 0);
 
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
index fc45ddb..d734975 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPreferenceControllerTest.java
@@ -23,7 +23,6 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.provider.Settings;
 
@@ -34,19 +33,14 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
-import org.robolectric.Shadows;
-import org.robolectric.shadows.ShadowPackageManager;
 
 @RunWith(RobolectricTestRunner.class)
 public class PowerMenuPreferenceControllerTest {
     private Context mContext;
     private Resources mResources;
     private PowerMenuPreferenceController mController;
-    private ShadowPackageManager mShadowPackageManager;
 
     private static final String KEY_GESTURE_POWER_MENU = "gesture_power_menu";
-    private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
-    private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
     private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
     private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
 
@@ -59,14 +53,12 @@
             com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                 .thenReturn(true);
         when(mContext.getResources()).thenReturn(mResources);
-        mShadowPackageManager = Shadows.shadowOf(mContext.getPackageManager());
         mController = new PowerMenuPreferenceController(mContext, KEY_GESTURE_POWER_MENU);
     }
 
     @Test
     public void getAvailabilityStatus_allAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                     .thenReturn(true);
@@ -78,7 +70,6 @@
     @Test
     public void getAvailabilityStatus_onlyCardsAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                     .thenReturn(false);
@@ -88,45 +79,8 @@
     }
 
     @Test
-    public void getAvailabilityStatus_onlyControlsAvailable_available() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
-        when(mResources.getBoolean(
-                com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
-                    .thenReturn(false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_controlsAndCardsAvailable_available() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
-        when(mResources.getBoolean(
-                com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
-                    .thenReturn(false);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
-    public void getAvailabilityStatus_controlsAndAssistAvailable_available() {
-        Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, true);
-        when(mResources.getBoolean(
-                com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
-                    .thenReturn(true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
-
-    @Test
     public void getAvailabilityStatus_cardsAndAssistAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 1);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                     .thenReturn(true);
@@ -138,7 +92,6 @@
     @Test
     public void getAvailabilityStatus_onlyAssistAvailable_available() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                     .thenReturn(true);
@@ -150,7 +103,6 @@
     @Test
     public void getAvailabilityStatus_allUnavailable_unavailable() {
         Settings.Secure.putInt(mContext.getContentResolver(), CARDS_AVAILABLE, 0);
-        mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, false);
         when(mResources.getBoolean(
                 com.android.internal.R.bool.config_longPressOnPowerForAssistantSettingAvailable))
                     .thenReturn(false);
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java
index 40b94eb..e1430fc 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerAvailabilityTest.java
@@ -46,32 +46,23 @@
 @RunWith(ParameterizedRobolectricTestRunner.class)
 public class PowerMenuPrivacyPreferenceControllerAvailabilityTest {
 
-    private static final String CONTROLS_ENABLED = Settings.Secure.CONTROLS_ENABLED;
     private static final String CONTROLS_FEATURE = PackageManager.FEATURE_CONTROLS;
     private static final String CARDS_ENABLED = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
     private static final String CARDS_AVAILABLE = Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
 
     @ParameterizedRobolectricTestRunner.Parameters(
-            name = "ctrls available={0}, ctrls enabled={1}, cards available={2}, cards enabled={3}")
+            name = "ctrls available={0} cards available={1}, cards enabled={2}")
     public static Collection data() {
         return Arrays.asList(new Object[][]{
-                // controls available, controls enabled, cards available, cards enabled, available
-                {false, false, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, false, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, false, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, false, true, true, BasePreferenceController.AVAILABLE},
-                {false, true, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, true, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, true, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {false, true, true, true, BasePreferenceController.AVAILABLE},
-                {true, false, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {true, false, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {true, false, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
-                {true, false, true, true, BasePreferenceController.AVAILABLE},
-                {true, true, false, false, BasePreferenceController.AVAILABLE},
-                {true, true, false, true, BasePreferenceController.AVAILABLE},
-                {true, true, true, false, BasePreferenceController.AVAILABLE},
-                {true, true, true, true, BasePreferenceController.AVAILABLE}
+                // controls available, cards available, cards enabled, available
+                {false, false, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, false, true, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, true, false, BasePreferenceController.DISABLED_DEPENDENT_SETTING},
+                {false, true, true, BasePreferenceController.AVAILABLE},
+                {true, false, false, BasePreferenceController.AVAILABLE},
+                {true, false, true, BasePreferenceController.AVAILABLE},
+                {true, true, false, BasePreferenceController.AVAILABLE},
+                {true, true, true, BasePreferenceController.AVAILABLE}
         });
     }
 
@@ -83,19 +74,16 @@
     private LockPatternUtils mLockPatternUtils;
 
     private boolean mControlsAvailable;
-    private boolean mControlsEnabled;
     private boolean mCardsAvailable;
     private boolean mCardsEnabled;
     private int mAvailable;
 
     public PowerMenuPrivacyPreferenceControllerAvailabilityTest(
             boolean controlsAvailable,
-            boolean controlsEnabled,
             boolean cardsAvailable,
             boolean cardsEnabled,
             int available) {
         mControlsAvailable = controlsAvailable;
-        mControlsEnabled = controlsEnabled;
         mCardsAvailable = cardsAvailable;
         mCardsEnabled = cardsEnabled;
         mAvailable = available;
@@ -120,7 +108,6 @@
     public void getAvailabilityStatus_possiblyAvailableAndEnabled() {
         mShadowPackageManager.setSystemFeature(CONTROLS_FEATURE, mControlsAvailable);
         ContentResolver cr = mContext.getContentResolver();
-        Settings.Secure.putInt(cr, CONTROLS_ENABLED, mControlsEnabled ? 1 : 0);
         Settings.Secure.putInt(cr, CARDS_AVAILABLE, mCardsAvailable ? 1 : 0);
         Settings.Secure.putInt(cr, CARDS_ENABLED, mCardsEnabled ? 1 : 0);
 
diff --git a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
index 994a3ee..5c0ffa1 100644
--- a/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/PowerMenuPrivacyPreferenceControllerTest.java
@@ -54,7 +54,6 @@
     private static final String CARDS_AVAILABLE_KEY =
             Settings.Secure.GLOBAL_ACTIONS_PANEL_AVAILABLE;
     private static final String CARDS_ENABLED_KEY = Settings.Secure.GLOBAL_ACTIONS_PANEL_ENABLED;
-    private static final String CONTROLS_ENABLED_KEY = Settings.Secure.CONTROLS_ENABLED;
 
     private Context mContext;
     private ContentResolver mContentResolver;
@@ -171,18 +170,8 @@
         mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
         Settings.Secure.putInt(mContentResolver, CARDS_AVAILABLE_KEY, 1);
         Settings.Secure.putInt(mContentResolver, CARDS_ENABLED_KEY, 1);
-        Settings.Secure.putInt(mContentResolver, CONTROLS_ENABLED_KEY, 1);
 
         assertThat(mController.getAvailabilityStatus()).isEqualTo(
                 BasePreferenceController.DISABLED_DEPENDENT_SETTING);
     }
-
-    @Test
-    public void getAvailabilityStatus_controlsDeletedSecure_retursAvailable() {
-        Settings.Secure.putString(mContentResolver, CONTROLS_ENABLED_KEY, null);
-        mShadowPackageManager.setSystemFeature(PackageManager.FEATURE_CONTROLS, true);
-
-        assertThat(mController.getAvailabilityStatus()).isEqualTo(
-                BasePreferenceController.AVAILABLE);
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
index 871de0f..4f38c46 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleNotificationPreferenceControllerTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
@@ -91,7 +91,7 @@
     @Test
     public void updateState_settingIsOn_preferenceSetChecked() {
         final TwoStatePreference preference = mock(TwoStatePreference.class);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
         mController.updateState(preference);
 
@@ -101,8 +101,8 @@
     @Test
     public void updateState_settingIsOff_preferenceSetUnchecked() {
         final TwoStatePreference preference = mock(TwoStatePreference.class);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
-        assertThat(Settings.Global.getInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, ON)).isEqualTo(OFF);
 
         mController.updateState(preference);
@@ -112,24 +112,24 @@
 
     @Test
     public void isChecked_settingIsOff_shouldReturnFalse() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
         assertThat(mController.isChecked()).isFalse();
     }
 
     @Test
     public void isChecked_settingIsOn_shouldReturnTrue() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void setChecked_setFalse_disablesSetting() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
         mController.setChecked(false);
-        int updatedValue = Settings.Global.getInt(mContext.getContentResolver(),
+        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, -1);
 
         assertThat(updatedValue).isEqualTo(OFF);
@@ -137,10 +137,10 @@
 
     @Test
     public void setChecked_setTrue_enablesSetting() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
         mController.setChecked(true);
-        int updatedValue = Settings.Global.getInt(mContext.getContentResolver(),
+        int updatedValue = Settings.Secure.getInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, -1);
 
         assertThat(updatedValue).isEqualTo(ON);
diff --git a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
index 88de7ac..3b4e90f 100644
--- a/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/BubbleSummaryNotificationPreferenceControllerTest.java
@@ -16,7 +16,7 @@
 
 package com.android.settings.notification;
 
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
@@ -61,14 +61,14 @@
 
     @Test
     public void getSummary_NOTIFICATION_BUBBLESIsOff_returnOffString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, OFF);
 
         assertThat(mController.getSummary()).isEqualTo("Off");
     }
 
     @Test
     public void getSummary_NOTIFICATION_BUBBLESIsOff_returnOnString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, ON);
 
         String onString = mContext.getString(R.string.notifications_bubble_setting_on_summary);
         assertThat(mController.getSummary()).isEqualTo(onString);
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
index f4f99c7..e04402c 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubblePreferenceControllerTest.java
@@ -23,7 +23,7 @@
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
 import static android.app.NotificationManager.IMPORTANCE_LOW;
 import static android.app.NotificationManager.IMPORTANCE_NONE;
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_OFF;
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_ON;
@@ -71,8 +71,8 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.shadow.api.Shadow;
-import org.robolectric.shadows.ShadowApplication;
 import org.robolectric.shadows.ShadowActivityManager;
+import org.robolectric.shadows.ShadowApplication;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -124,7 +124,7 @@
 
     @Test
     public void isAvailable_notIfAppBlocked() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.banned = true;
         mController.onResume(appRow, mock(NotificationChannel.class), null, null, null, null, null);
@@ -133,7 +133,7 @@
 
     @Test
     public void isAvailable_notIfChannelBlocked() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_NONE);
@@ -143,7 +143,7 @@
 
     @Test
     public void isAvailable_channel_notIfAppOff() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.bubblePreference = BUBBLE_PREFERENCE_NONE;
         NotificationChannel channel = mock(NotificationChannel.class);
@@ -157,7 +157,7 @@
     public void isNotAvailable_ifOffGlobally_app() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -181,7 +181,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertFalse(mController.isAvailable());
@@ -191,7 +191,7 @@
     public void isAvailable_ifNotLowRam() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         final ShadowActivityManager activityManager =
                 Shadow.extract(mContext.getSystemService(ActivityManager.class));
@@ -203,7 +203,7 @@
     public void isAvailable_app_evenIfOffGlobally() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mAppPageController.onResume(appRow, null, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
 
         assertTrue(mAppPageController.isAvailable());
@@ -213,7 +213,7 @@
     public void isAvailable_app() {
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         mController.onResume(appRow, null, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -226,7 +226,7 @@
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
         mController.onResume(appRow, channel, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -237,8 +237,9 @@
         appRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
+
         mController.onResume(appRow, channel, null, null, null, null, null);
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -251,7 +252,7 @@
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null, null, null,
                 ImmutableList.of(NotificationChannel.EDIT_CONVERSATION));
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertTrue(mController.isAvailable());
     }
@@ -263,7 +264,7 @@
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         mController.onResume(appRow, channel, null, null, null, null, new ArrayList<>());
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
 
         assertFalse(mController.isAvailable());
     }
@@ -298,7 +299,7 @@
 
     @Test
     public void updateState_channel_channelNotBlockable() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         NotificationChannel channel = mock(NotificationChannel.class);
@@ -313,7 +314,7 @@
 
     @Test
     public void updateState_channel() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         NotificationChannel channel = mock(NotificationChannel.class);
@@ -334,7 +335,7 @@
 
     @Test
     public void updateState_app() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.label = "App!";
@@ -360,7 +361,7 @@
 
     @Test
     public void updateState_app_offGlobally() {
-        Settings.Global.putInt(mContext.getContentResolver(),
+        Settings.Secure.putInt(mContext.getContentResolver(),
                 NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
@@ -375,7 +376,7 @@
 
     @Test
     public void onPreferenceChange_on_channel() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_SELECTED;
@@ -395,7 +396,7 @@
 
     @Test
     public void onPreferenceChange_off_channel() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_SELECTED;
@@ -416,7 +417,7 @@
 
     @Test
     public void onPreferenceChange_app_all() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_NONE;
@@ -435,7 +436,7 @@
 
     @Test
     public void testOnPreferenceChange_app_all_offGlobally() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
@@ -456,7 +457,7 @@
 
     @Test
     public void onPreferenceChange_app_selected() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
@@ -475,7 +476,7 @@
 
     @Test
     public void onPreferenceChange_app_none() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
@@ -494,7 +495,7 @@
 
     @Test
     public void onPreferenceChange_dependentFieldListenerCalled() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
         appRow.pkg = "a";
         appRow.bubblePreference = BUBBLE_PREFERENCE_ALL;
diff --git a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
index 911f9a2..5859a3e 100644
--- a/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/BubbleSummaryPreferenceControllerTest.java
@@ -21,7 +21,7 @@
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_NONE;
 import static android.app.NotificationManager.BUBBLE_PREFERENCE_SELECTED;
 import static android.app.NotificationManager.IMPORTANCE_HIGH;
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
+import static android.provider.Settings.Secure.NOTIFICATION_BUBBLES;
 
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_OFF;
 import static com.android.settings.notification.app.BubblePreferenceController.SYSTEM_WIDE_ON;
@@ -96,7 +96,7 @@
 
     @Test
     public void isAvailable_NOTIFICATION_BUBBLESisOn_shouldReturnTrue() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
         assertTrue(mController.isAvailable());
@@ -104,7 +104,7 @@
 
     @Test
     public void isAvailable_NOTIFICATION_BUBBLESisOn_neverSentMsg_shouldReturnFalse() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
         when(mBackend.hasSentValidMsg(anyString(), anyInt())).thenReturn(false);
 
@@ -113,7 +113,7 @@
 
     @Test
     public void isAvailable_NOTIFICATION_BUBBLESisOff_shouldReturnFalse() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
@@ -122,7 +122,7 @@
 
     @Test
     public void isAvailable_nonNullChannelNOTIFICATION_BUBBLESisOff_shouldReturnFalse() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
@@ -133,7 +133,7 @@
 
     @Test
     public void isAvailable_defaultChannelNOTIFICATION_BUBBLESisOn_shouldReturnTrue() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         NotificationChannel channel = mock(NotificationChannel.class);
         when(channel.getImportance()).thenReturn(IMPORTANCE_HIGH);
         when(channel.getId()).thenReturn(DEFAULT_CHANNEL_ID);
@@ -144,7 +144,7 @@
 
     @Test
     public void isAvailable_lowRam_shouldReturnFalse() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
         final ShadowActivityManager activityManager =
@@ -155,7 +155,7 @@
 
     @Test
     public void isAvailable_notLowRam_shouldReturnTrue() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
         mController.onResume(mAppRow, null, null, null, null, null, null);
 
         final ShadowActivityManager activityManager =
@@ -176,7 +176,7 @@
 
     @Test
     public void getSummary_NOTIFICATION_BUBBLESIsOff_returnsNoneString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_OFF);
 
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
@@ -188,7 +188,7 @@
 
     @Test
     public void getSummary_BUBBLE_PREFERENCE_NONEisSelected_returnsNoneString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_ON);
 
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
@@ -201,7 +201,7 @@
 
     @Test
     public void getSummary_BUBBLE_PREFERENCE_ALLisSelected_returnsAllString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_ON);
 
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
@@ -214,7 +214,7 @@
 
     @Test
     public void getSummary_BUBBLE_PREFERENCE_SELECTEDisSelected_returnsSelectedString() {
-        Settings.Global.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
+        Settings.Secure.putInt(mContext.getContentResolver(), NOTIFICATION_BUBBLES,
                 SYSTEM_WIDE_ON);
 
         NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
diff --git a/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java b/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
index 2a8d265..9d57d4a 100644
--- a/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/slice/WifiScanWorkerTest.java
@@ -22,12 +22,13 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import androidx.lifecycle.Lifecycle;
 
-import com.android.wifitrackerlib.MergedCarrierEntry;
+import com.android.settings.wifi.WifiPickerTrackerHelper;
 import com.android.wifitrackerlib.WifiEntry;
 import com.android.wifitrackerlib.WifiPickerTracker;
 
@@ -44,11 +45,13 @@
 @RunWith(RobolectricTestRunner.class)
 public class WifiScanWorkerTest {
 
+    private static final int SUB_ID = 2;
+
     private WifiScanWorker mWifiScanWorker;
     @Mock
     WifiPickerTracker mWifiPickerTracker;
     @Mock
-    MergedCarrierEntry mMergedCarrierEntry;
+    WifiPickerTrackerHelper mWifiPickerTrackerHelper;
 
     @Before
     public void setUp() {
@@ -56,7 +59,8 @@
 
         mWifiScanWorker = new WifiScanWorker(RuntimeEnvironment.application, WIFI_SLICE_URI);
         mWifiScanWorker.mWifiPickerTracker = mWifiPickerTracker;
-        when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
+        mWifiScanWorker.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper;
+        when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(false);
     }
 
     @Test
@@ -110,22 +114,33 @@
     }
 
     @Test
-    public void setCarrierNetworkEnabled_shouldCallMergedCarrierEntrySetEnabled() {
-        mWifiScanWorker.setCarrierNetworkEnabled(true);
+    public void setCarrierNetworkEnabledIfNeeded_shouldSetCarrierNetworkEnabled() {
+        mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID);
 
-        verify(mMergedCarrierEntry).setEnabled(true);
+        verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(true);
 
-        mWifiScanWorker.setCarrierNetworkEnabled(false);
+        mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID);
 
-        verify(mMergedCarrierEntry).setEnabled(false);
+        verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(false);
     }
 
     @Test
-    public void connectCarrierNetwork_shouldCallMergedCarrierEntryConnect() {
-        when(mMergedCarrierEntry.canConnect()).thenReturn(true);
+    public void setCarrierNetworkEnabledIfNeeded_enabledProvision_neverSetCarrierNetworkEnabled() {
+        when(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).thenReturn(true);
 
+        mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(true, SUB_ID);
+
+        verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(true);
+
+        mWifiScanWorker.setCarrierNetworkEnabledIfNeeded(false, SUB_ID);
+
+        verify(mWifiPickerTrackerHelper, never()).setCarrierNetworkEnabled(false);
+    }
+
+    @Test
+    public void connectCarrierNetwork_shouldConnectCarrierNetwork() {
         mWifiScanWorker.connectCarrierNetwork();
 
-        verify(mMergedCarrierEntry).connect(any());
+        verify(mWifiPickerTrackerHelper).connectCarrierNetwork(any());
     }
 }
diff --git a/tests/unit/src/com/android/settings/network/CarrierWifiTogglePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/CarrierWifiTogglePreferenceControllerTest.java
new file mode 100644
index 0000000..4deea3f
--- /dev/null
+++ b/tests/unit/src/com/android/settings/network/CarrierWifiTogglePreferenceControllerTest.java
@@ -0,0 +1,183 @@
+/*
+ * 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.network;
+
+import static com.android.settings.core.BasePreferenceController.AVAILABLE;
+import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+import android.os.Looper;
+
+import androidx.lifecycle.Lifecycle;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceManager;
+import androidx.preference.PreferenceScreen;
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.settings.wifi.WifiPickerTrackerHelper;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+@RunWith(AndroidJUnit4.class)
+public class CarrierWifiTogglePreferenceControllerTest {
+
+    private static final int SUB_ID = 2;
+    private static final String SSID = "ssid";
+
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Mock
+    public WifiPickerTrackerHelper mWifiPickerTrackerHelper;
+
+    private Context mContext;
+    private CarrierWifiTogglePreferenceController mController;
+    private PreferenceScreen mScreen;
+    private Preference mTogglePreference;
+    private Preference mNetworkPreference;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+
+        mController = new CarrierWifiTogglePreferenceController(mContext,
+                CarrierWifiTogglePreferenceController.CARRIER_WIFI_TOGGLE_PREF_KEY);
+        mController.init(mock(Lifecycle.class), SUB_ID);
+        mController.mIsProviderModelEnabled = true;
+        mController.mIsCarrierProvisionWifiEnabled = true;
+        doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid();
+        mController.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper;
+        if (Looper.myLooper() == null) {
+            Looper.prepare();
+        }
+        final PreferenceManager preferenceManager = new PreferenceManager(mContext);
+        mScreen = preferenceManager.createPreferenceScreen(mContext);
+        mTogglePreference = new Preference(mContext);
+        mTogglePreference.setKey(
+                CarrierWifiTogglePreferenceController.CARRIER_WIFI_TOGGLE_PREF_KEY);
+        mScreen.addPreference(mTogglePreference);
+        mNetworkPreference = new Preference(mContext);
+        mNetworkPreference.setKey(
+                CarrierWifiTogglePreferenceController.CARRIER_WIFI_NETWORK_PREF_KEY);
+        mScreen.addPreference(mNetworkPreference);
+    }
+
+    @Test
+    public void getAvailabilityStatus_providerModelDisable_returnUnavailable() {
+        mController.mIsProviderModelEnabled = false;
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_carrierProvisionWifiEnabled_returnAvailable() {
+        mController.mIsCarrierProvisionWifiEnabled = true;
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
+    }
+
+    @Test
+    public void getAvailabilityStatus_carrierProvisionWifiDisabled_returnUnavailable() {
+        mController.mIsCarrierProvisionWifiEnabled = false;
+
+        assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    public void isChecked_carrierNetworkEnabled_returnTrue() {
+        doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID);
+
+        assertThat(mController.isChecked()).isEqualTo(true);
+    }
+
+    @Test
+    public void isChecked_carrierNetworkDisabled_returnFalse() {
+        doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID);
+
+        assertThat(mController.isChecked()).isEqualTo(false);
+    }
+
+    @Test
+    public void setChecked_checked_shouldSetCarrierNetworkEnabled() {
+        mController.setChecked(true);
+
+        verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(true);
+    }
+
+    @Test
+    public void setChecked_unchecked_shouldSetCarrierNetworkDisabled() {
+        mController.setChecked(false);
+
+        verify(mWifiPickerTrackerHelper).setCarrierNetworkEnabled(false);
+    }
+
+    @Test
+    public void displayPreference_carrierNetworkEnabled_showCarrierNetwork() {
+        doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID);
+
+        mController.displayPreference(mScreen);
+
+        assertThat(mController.mCarrierNetworkPreference).isEqualTo(mNetworkPreference);
+        assertThat(mNetworkPreference.isVisible()).isTrue();
+        assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID);
+    }
+
+    @Test
+    public void displayPreference_carrierNetworkDisabled_hideCarrierNetwork() {
+        doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID);
+
+        mController.displayPreference(mScreen);
+
+        assertThat(mController.mCarrierNetworkPreference).isEqualTo(mNetworkPreference);
+        assertThat(mNetworkPreference.isVisible()).isFalse();
+    }
+
+    @Test
+    public void onWifiStateChanged_carrierNetworkVisible_shouldSetSummary() {
+        mController.mCarrierNetworkPreference = mNetworkPreference;
+        mNetworkPreference.setVisible(true);
+        mNetworkPreference.setSummary(null);
+
+        mController.onWifiEntriesChanged();
+
+        assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID);
+    }
+
+    @Test
+    public void onWifiEntriesChanged_carrierNetworkVisible_shouldSetSummary() {
+        mController.mCarrierNetworkPreference = mNetworkPreference;
+        mNetworkPreference.setVisible(true);
+        mNetworkPreference.setSummary(null);
+
+        mController.onWifiEntriesChanged();
+
+        assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
index a323ed6..c516f0c 100644
--- a/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
+++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceTest.java
@@ -70,6 +70,7 @@
     private static final Uri PROVIDER_MODEL_SLICE_URI =
             Uri.parse("content://com.android.settings.slices/action/provider_model");
     private static final int MOCK_SLICE_LEVEL = 3;
+    private static final int SUB_ID = 2;
 
     private Context mContext;
     private MockProviderModelSlice mMockProviderModelSlice;
@@ -359,23 +360,23 @@
     @Test
     public void doCarrierNetworkAction_toggleActionSetDataEnabled_setCarrierNetworkEnabledTrue() {
         mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */,
-                true /* isDataEnabled */);
+                true /* isDataEnabled */, SUB_ID);
 
-        verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(true);
+        verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(true, SUB_ID);
     }
 
     @Test
     public void doCarrierNetworkAction_toggleActionSetDataDisabled_setCarrierNetworkEnabledFalse() {
         mMockProviderModelSlice.doCarrierNetworkAction(true /* isToggleAction */,
-                false /* isDataEnabled */);
+                false /* isDataEnabled */, SUB_ID);
 
-        verify(mMockNetworkProviderWorker).setCarrierNetworkEnabled(false);
+        verify(mMockNetworkProviderWorker).setCarrierNetworkEnabledIfNeeded(false, SUB_ID);
     }
 
     @Test
     public void doCarrierNetworkAction_primaryActionAndDataEnabled_connectCarrierNetwork() {
         mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */,
-                true /* isDataEnabled */);
+                true /* isDataEnabled */, SUB_ID);
 
         verify(mMockNetworkProviderWorker).connectCarrierNetwork();
     }
@@ -383,7 +384,7 @@
     @Test
     public void doCarrierNetworkAction_primaryActionAndDataDisabled_notConnectCarrierNetwork() {
         mMockProviderModelSlice.doCarrierNetworkAction(false /* isToggleAction */,
-                false /* isDataEnabled */);
+                false /* isDataEnabled */, SUB_ID);
 
         verify(mMockNetworkProviderWorker, never()).connectCarrierNetwork();
     }
diff --git a/tests/unit/src/com/android/settings/wifi/WifiPickerTrackerHelperTest.java b/tests/unit/src/com/android/settings/wifi/WifiPickerTrackerHelperTest.java
index 2991550..70ad0f0 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiPickerTrackerHelperTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiPickerTrackerHelperTest.java
@@ -20,12 +20,18 @@
 
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyLong;
+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 static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.net.wifi.WifiManager;
 import android.os.HandlerThread;
+import android.os.PersistableBundle;
+import android.telephony.CarrierConfigManager;
 
 import androidx.lifecycle.Lifecycle;
 import androidx.test.core.app.ApplicationProvider;
@@ -47,9 +53,15 @@
 @RunWith(AndroidJUnit4.class)
 public class WifiPickerTrackerHelperTest {
 
+    private static final int SUB_ID = 2;
+
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
     @Mock
+    public WifiManager mWifiManager;
+    @Mock
+    public CarrierConfigManager mCarrierConfigManager;
+    @Mock
     public WifiPickerTracker mWifiPickerTracker;
     @Mock
     public MergedCarrierEntry mMergedCarrierEntry;
@@ -59,16 +71,24 @@
     private WifiPickerTrackerHelper mWifiPickerTrackerHelper;
 
     private FakeFeatureFactory mFeatureFactory;
+    private PersistableBundle mCarrierConfig;
 
     @Before
     public void setUp() {
+        final Context context = spy(ApplicationProvider.getApplicationContext());
+        when(context.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
+        when(context.getSystemService(CarrierConfigManager.class))
+                .thenReturn(mCarrierConfigManager);
+        mCarrierConfig = new PersistableBundle();
+        doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         when(mFeatureFactory.wifiTrackerLibProvider
                 .createWifiPickerTracker(
                         any(), any(), any(), any(), any(), anyLong(), anyLong(), any()))
                 .thenReturn(mWifiPickerTracker);
         mWifiPickerTrackerHelper = new WifiPickerTrackerHelper(mock(Lifecycle.class),
-                ApplicationProvider.getApplicationContext(), null);
+                context, null);
     }
 
     @Test
@@ -87,24 +107,63 @@
     }
 
     @Test
-    public void setCarrierNetworkEnabled_returnTrueAndSetEnabled() {
+    public void isCarrierNetworkProvisionEnabled_getNullConfig_returnFalse() {
+        doReturn(null).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
+
+        assertThat(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).isFalse();
+    }
+
+    @Test
+    public void isCarrierNetworkProvisionEnabled_returnCorrect() {
+        mCarrierConfig.putBoolean(
+                CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL, true);
+
+        assertThat(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).isTrue();
+
+        mCarrierConfig.putBoolean(
+                CarrierConfigManager.KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL, false);
+
+        assertThat(mWifiPickerTrackerHelper.isCarrierNetworkProvisionEnabled(SUB_ID)).isFalse();
+    }
+
+    @Test
+    public void isCarrierNetworkEnabled_returnCorrect() {
+        doReturn(true).when(mWifiManager).isCarrierNetworkOffloadEnabled(SUB_ID, true /* merged */);
+
+        assertThat(mWifiPickerTrackerHelper.isCarrierNetworkEnabled(SUB_ID)).isTrue();
+
+        doReturn(false).when(mWifiManager)
+                .isCarrierNetworkOffloadEnabled(SUB_ID, true /* merged */);
+
+        assertThat(mWifiPickerTrackerHelper.isCarrierNetworkEnabled(SUB_ID)).isFalse();
+    }
+
+    @Test
+    public void setCarrierNetworkEnabled_shouldSetCorrect() {
         mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
         when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(mMergedCarrierEntry);
 
-        assertThat(mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true)).isTrue();
+        mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
+
         verify(mMergedCarrierEntry).setEnabled(true);
 
-        assertThat(mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false)).isTrue();
+        mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false);
+
         verify(mMergedCarrierEntry).setEnabled(false);
     }
 
     @Test
-    public void setCarrierNetworkEnabled_mergedCarrierEntryIsNull_returnFalse() {
+    public void setCarrierNetworkEnabled_mergedCarrierEntryIsNull_shouldNotSet() {
         mWifiPickerTrackerHelper.setWifiPickerTracker(mWifiPickerTracker);
         when(mWifiPickerTracker.getMergedCarrierEntry()).thenReturn(null);
 
-        assertThat(mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true)).isFalse();
-        assertThat(mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false)).isFalse();
+        mWifiPickerTrackerHelper.setCarrierNetworkEnabled(true);
+
+        verify(mMergedCarrierEntry, never()).setEnabled(true);
+
+        mWifiPickerTrackerHelper.setCarrierNetworkEnabled(false);
+
+        verify(mMergedCarrierEntry, never()).setEnabled(true);
     }
 
     @Test
