Merge "Update the API usage to get total size of devices" into udc-qpr-dev
diff --git a/Android.bp b/Android.bp
index 71e0542..31895db 100644
--- a/Android.bp
+++ b/Android.bp
@@ -83,6 +83,7 @@
         "net-utils-framework-common",
         "app-usage-event-protos-lite",
         "battery-event-protos-lite",
+        "battery-usage-slot-protos-lite",
         "power-anomaly-event-protos-lite",
         "settings-contextual-card-protos-lite",
         "settings-log-bridge-protos-lite",
diff --git a/res-product/values-zh-rCN/strings.xml b/res-product/values-zh-rCN/strings.xml
index 4fe2b24..31a9183 100644
--- a/res-product/values-zh-rCN/strings.xml
+++ b/res-product/values-zh-rCN/strings.xml
@@ -94,12 +94,12 @@
     <string name="security_settings_face_enroll_introduction_control_consent_message" product="default" msgid="6983939010814873996"></string>
     <string name="security_settings_face_enroll_introduction_control_consent_message" product="tablet" msgid="6983939010814873996"></string>
     <string name="security_settings_face_enroll_introduction_control_consent_message" product="device" msgid="6983939010814873996"></string>
-    <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"您可以通过刷脸来解锁手机或在应用内验证自己的身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置一张面孔。如需添加另一张面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您非常相似的人,例如您的孪生兄弟姐妹,可能也能解锁您的手机。"</string>
-    <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
-    <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
-    <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"您可以通过刷脸来解锁手机或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,即使您闭上眼睛,手机可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
-    <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,即使您闭上眼睛,平板电脑可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
-    <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录帐号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,即使您闭上眼睛,设备可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
+    <string name="security_settings_face_settings_footer" product="default" msgid="3036403896485044957">"您可以通过刷脸来解锁手机或在应用内验证自己的身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置一张面孔。如需添加另一张面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您非常相似的人,例如您的孪生兄弟姐妹,可能也能解锁您的手机。"</string>
+    <string name="security_settings_face_settings_footer" product="tablet" msgid="3467711032275909082">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
+    <string name="security_settings_face_settings_footer" product="device" msgid="6237815625247917310">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
+    <string name="security_settings_face_settings_footer_attention_not_supported" product="default" msgid="8266896471278294942">"您可以通过刷脸来解锁手机或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,即使您闭上眼睛,手机可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
+    <string name="security_settings_face_settings_footer_attention_not_supported" product="tablet" msgid="6932278790700490818">"您可以通过刷脸来解锁平板电脑或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,即使您闭上眼睛,平板电脑可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
+    <string name="security_settings_face_settings_footer_attention_not_supported" product="device" msgid="2559602951942339212">"您可以通过刷脸来解锁设备或在应用内验证身份,例如在登录账号或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,即使您闭上眼睛,设备可能也会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
     <string name="security_settings_face_settings_footer_class3" product="default" msgid="7050076350282827484">"您可以通过刷脸来解锁手机或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视手机可能会让手机意外解锁。\n\n如果有人将手机对准您的脸,手机可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的手机。"</string>
     <string name="security_settings_face_settings_footer_class3" product="tablet" msgid="8013245173915280810">"您可以通过刷脸来解锁平板电脑或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视平板电脑可能会让平板电脑意外解锁。\n\n如果有人将平板电脑对准您的脸,平板电脑可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的平板电脑。"</string>
     <string name="security_settings_face_settings_footer_class3" product="device" msgid="4411845832787210264">"您可以通过刷脸来解锁设备或验证身份,例如在登录应用或批准购买交易时。\n\n注意:\n一次只能设置 1 张面孔。如需添加其他面孔,请先删除当前的面孔。\n\n目视设备可能会让设备意外解锁。\n\n如果有人将设备对准您的脸,设备可能会解锁。\n\n此外,长相与您极为相似的人(例如您的孪生兄弟姐妹),或许也能解锁您的设备。"</string>
@@ -247,9 +247,9 @@
     <string name="storage_wizard_migrate_v2_body" product="default" msgid="3807501187945770401">"您可以将文件、媒体和特定应用移至此<xliff:g id="NAME">^1</xliff:g>。\n\n这项移动操作将释放 <xliff:g id="SIZE">^2</xliff:g> 的手机存储空间,大约需要 <xliff:g id="DURATION">^3</xliff:g>的时间完成。"</string>
     <string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5326017162943304749">"请将此平板电脑保持在充电状态"</string>
     <string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="8041162611685970218">"请将此手机保持在充电状态"</string>
-    <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"此操作会清除您平板电脑"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 帐号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
-    <string name="main_clear_desc" product="default" msgid="1888412491866186706">"此操作会清除您手机"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 帐号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
-    <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"您目前已登录以下帐号:\n"</string>
+    <string name="main_clear_desc" product="tablet" msgid="5778614597513856716">"此操作会清除您平板电脑"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 账号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
+    <string name="main_clear_desc" product="default" msgid="1888412491866186706">"此操作会清除您手机"<b>"内部存储空间"</b>"中的所有数据,包括:\n\n"<li>"您的 Google 账号"</li>\n<li>"系统和应用的数据和设置"</li>\n<li>"已下载的应用"</li></string>
+    <string name="main_clear_accounts" product="default" msgid="3604029744509330786">\n\n"您目前已登录以下账号:\n"</string>
     <string name="main_clear_other_users_present" product="default" msgid="7750368595882863399">\n\n"此设备上目前还有其他用户。\n"</string>
     <string name="main_clear_desc_erase_external_storage" product="nosdcard" msgid="5834269984459195918">\n\n"如需清除音乐、照片和其他用户数据,您需要清空该 "<b>"USB 存储设备"</b>"。"</string>
     <string name="main_clear_desc_erase_external_storage" product="default" msgid="2891180770413959600">\n\n"如需清除音乐、图片和其他用户数据,您需要清空该 "<b>"SD 卡"</b>"。"</string>
@@ -301,16 +301,16 @@
     <string name="battery_usage_screen_footer" product="device" msgid="6488857833906266507">"设备充电时,系统不会衡量电池用量和设备使用时间"</string>
     <string name="credentials_install_summary" product="nosdcard" msgid="8585932964626513863">"从存储设备安装证书"</string>
     <string name="credentials_install_summary" product="default" msgid="879796378361350092">"从SD卡安装证书"</string>
-    <string name="really_remove_account_message" product="tablet" msgid="5134483498496943623">"移除该帐号会从平板电脑中删除所有相关的邮件、联系人以及其他数据。"</string>
-    <string name="really_remove_account_message" product="default" msgid="6681864753604250818">"移除该帐号会从手机中删除所有相关的邮件、联系人以及其他数据。"</string>
-    <string name="really_remove_account_message" product="device" msgid="1482438683708606820">"移除该帐号后,设备上的相关消息、联系人和其他数据也将全部删除!"</string>
-    <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="7137933271689383781">"您在网络上对自己的帐号进行的所有更改都会自动同步到您的平板电脑。\n\n有些帐号还可以将您在平板电脑上进行的所有更改自动同步到网络上。Google 帐号就支持此类双向同步。"</string>
-    <string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"您在网络上对自己的帐号进行的所有更改都会自动同步到您的手机。\n\n有些帐号还可以将您在手机上进行的所有更改自动同步到网络上。Google 帐号就支持此类双向同步。"</string>
+    <string name="really_remove_account_message" product="tablet" msgid="5134483498496943623">"移除该账号会从平板电脑中删除所有相关的邮件、联系人以及其他数据。"</string>
+    <string name="really_remove_account_message" product="default" msgid="6681864753604250818">"移除该账号会从手机中删除所有相关的邮件、联系人以及其他数据。"</string>
+    <string name="really_remove_account_message" product="device" msgid="1482438683708606820">"移除该账号后,设备上的相关消息、联系人和其他数据也将全部删除!"</string>
+    <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="7137933271689383781">"您在网络上对自己的账号进行的所有更改都会自动同步到您的平板电脑。\n\n有些账号还可以将您在平板电脑上进行的所有更改自动同步到网络上。Google 账号就支持此类双向同步。"</string>
+    <string name="data_usage_auto_sync_on_dialog" product="default" msgid="7207326473052484970">"您在网络上对自己的账号进行的所有更改都会自动同步到您的手机。\n\n有些账号还可以将您在手机上进行的所有更改自动同步到网络上。Google 账号就支持此类双向同步。"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="5609616352941038118">"当移动数据流量的使用量达到您设置的上限时,您的平板电脑将关闭移动数据网络。\n\n由于流量用量是由您的平板电脑计算的,而您的运营商对流量用量的计算方式可能有所不同,因此建议您设置一个保守的上限值。"</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="4552449053646826676">"当移动数据流量的使用量达到您设置的上限时,您的手机将关闭移动数据网络。\n\n由于流量用量是由您的手机计算的,而您的运营商对流量用量的计算方式可能有所不同,因此建议您设置一个保守的上限值。"</string>
-    <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"通过添加新用户来共享您的设备。每个用户都将在您的设备上拥有个人空间,以便使用自定义的主屏幕、帐号、应用和设置等。"</string>
-    <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"通过添加新用户来共享您的平板电脑。每个用户都将在您的平板电脑上拥有个人空间,以便使用自定义的主屏幕、帐号、应用和设置等。"</string>
-    <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"通过添加新用户,您可以与他人共用一部手机。每个用户都将在您的手机上拥有个人空间,并可自行设定主屏幕、帐号、应用和设置等。"</string>
+    <string name="user_settings_footer_text" product="device" msgid="8543171604218174424">"通过添加新用户来共享您的设备。每个用户都将在您的设备上拥有个人空间,以便使用自定义的主屏幕、账号、应用和设置等。"</string>
+    <string name="user_settings_footer_text" product="tablet" msgid="4749331578207116797">"通过添加新用户来共享您的平板电脑。每个用户都将在您的平板电脑上拥有个人空间,以便使用自定义的主屏幕、账号、应用和设置等。"</string>
+    <string name="user_settings_footer_text" product="default" msgid="5440172971747221370">"通过添加新用户,您可以与他人共用一部手机。每个用户都将在您的手机上拥有个人空间,并可自行设定主屏幕、账号、应用和设置等。"</string>
     <string name="user_cannot_manage_message" product="tablet" msgid="5566619500245432179">"只有平板电脑的机主可以管理用户。"</string>
     <string name="user_cannot_manage_message" product="default" msgid="8596259161937605316">"只有手机的机主可以管理用户。"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="6880861846664267876">"您将丢失自己在这台平板电脑上的空间和数据,此操作无法撤消。"</string>
diff --git a/res/layout/battery_tips_card.xml b/res/layout/battery_tips_card.xml
index 2fa5bf2..dde559d 100644
--- a/res/layout/battery_tips_card.xml
+++ b/res/layout/battery_tips_card.xml
@@ -28,7 +28,6 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginTop="8dp"
-            android:maxLines="2"
             android:textAlignment="viewStart"
             android:textAppearance="?android:attr/textAppearanceLarge"
             android:textColor="?android:attr/textColorPrimary" />
@@ -45,7 +44,7 @@
                 style="@style/Widget.Material3.Button.TextButton"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_gravity="end"
+                android:layout_gravity="end|center_vertical"
                 android:paddingHorizontal="16dp"
                 android:layout_marginEnd="8dp"
                 android:text="@string/battery_tips_card_dismiss_button"
@@ -59,7 +58,7 @@
                 android:paddingHorizontal="16dp"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_gravity="end"
+                android:layout_gravity="end|center_vertical"
                 android:text="@string/battery_tips_card_action_button"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:textColor="?android:attr/textColorPrimary"
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 581c5d4..042468e 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Ná 1 minuut"</item>
     <item msgid="1574040255478150028">"Ná 5 minute"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 2db4a67..486c01d 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deel tans Wi‑Fi met hierdie toestel …"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Koppel tans …"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Deel warmkol"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifieer dat dit jy is"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifieer dat dit jy is"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-wagwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Warmkolwagwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Outokoppel"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Jou wagwoord vergeet?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Jou patroon vergeet?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Jou PIN vergeet?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gebruik jou toestelpatroon om voort te gaan"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Voer jou toestel-PIN in om voort te gaan"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Voer jou toestelwagwoord in om voort te gaan"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gebruik jou werkpatroon om voort te gaan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teken jou patroon om voort te gaan"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Voer jou PIN in om voort te gaan"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Voer jou wagwoord in om voort te gaan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teken jou werkpatroon om voort te gaan"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Voer jou werk-PIN in om voort te gaan"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Voer jou werkwagwoord in om voort te gaan"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Gebruik jou toestelpatroon vir bykomende sekuriteit"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Oudio vanaf versoenbare media word meer meesleurend"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kopnasporing"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Oudio verander wanneer jy jou kop beweeg om natuurliker te klink"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Netwerkaflaaikoerslimiet"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stel netwerkbandwydte se binnedringingkoerslimiet op wat op alle netwerke wat \'n internetverbinding verskaf, toegepas word."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Stel netwerkaflaaikoerslimiet op"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deïnstalleer app"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps wat in die afgelope # maand geïnstalleer is}other{Apps wat in die afgelope # maande geïnstalleer is}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps wat meer as # maand gelede geïnstalleer is}other{Apps wat meer as # maande gelede geïnstalleer is}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspekverhouding"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Kies ’n aspekverhouding om hierdie app in te bekyk as dit nie ontwerp is om op jou <xliff:g id="DEVICE_NAME">%1$s</xliff:g> te pas nie"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Voorgestelde apps"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps wat jy geïgnoreer het"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appverstek"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Volskerm"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halfskerm"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Toestelaspekverhouding"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Die app sal herbegin as jy die aspekverhouding verander. Jy kan ongestoorde veranderinge verloor."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Vingerafdruksensor"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Flitskennisgewings"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Meer oor flitskennisgewings"</string>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index 03f79b4..ba6582a 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ከ1 ደቂቃ በኋላ"</item>
     <item msgid="1574040255478150028">"ከ5 ደቂቃዎች በኋላ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 54bd1bf..59f8082 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ከዚህ መሣሪያ ጋር Wi‑Fi በማጋራት ላይ…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"በመገናኘት ላይ…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"መገናኛ ነጥብን አጋራ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"እርስዎ መሆንዎን ያረጋግጡ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"እርስዎ መሆንዎን ያረጋግጡ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"የWi-Fi ይለፍ ቃል፦ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"የመገናኛ ነጥብ የይለፍ ቃል፦ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"በራስ-ሰር ተገናኝ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"የእርስዎን የይለፍ ቃል ረሱት?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"የእርስዎን ስርዓተ-ጥለት ረሱት?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"የእርስዎን ፒን ረሱት?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ለመቀጠል የመሣሪያዎን ስርዓተ ጥለት ይጠቀሙ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ለመቀጠል የመሣሪያዎን ፒን ያስገቡ"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ለመቀጠል የመሣሪያዎን ይለፍ ቃል ያስገቡ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ለመቀጠል የሥራ ስርዓተ-ጥለትዎን ይጠቀሙ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ለመቀጠል የእርስዎን ሥርዓተ ጥለት ይሳሉ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ለመቀጠል የእርስዎን ፒን ያስገቡ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ለመቀጠል የይለፍ ቃልዎን ያስገቡ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ለመቀጠል ሥራዎን ሥርዓተ ጥለት ይሳሉ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ለመቀጠል የሥራ ፒንዎን ያስገቡ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ለመቀጠል የሥራ ይለፍ ቃልዎን ያስገቡ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ለተጨማሪ ደህንነት፣ የእርስዎን መሣሪያ ሥርዓተ ጥለት ይጠቀሙ"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ከተኳኋኝ ሚዲያ የሚመጣው ድምፅ ይበልጥ መሳጭ ይሆናል"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"የጭንቅላት ክትትል"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ጭንቅላትዎን ወደ ይበልጥ ተፈጥሯዊ ድምፅ ሲያንቀሳቅሱት ኦዲዮው ይቀየራል"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"የአውታረ መረብ የማውረድ ፍጥነት ገደብ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"የበይነመረብ ግንኙነትን በሚሰጡ ሁሉም አውታረ መረቦች ላይ የሚተገበረውን የአውታረ መረብ መተላለፊያ ይዘት ማስገቢያ ፍጥነት ገደብ ያዋቅሩ።"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"የአውታረ መረብ የማውረድ ፍጥነት ገደብን ያዋቅሩ"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"መተግበሪያን አራግፍ"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ባለፈው # ወር ውስጥ የተጫኑ መተግበሪያዎች}one{ባለፈው # ወር ውስጥ የተጫኑ መተግበሪያዎች}other{ባለፉት # ወራት ውስጥ የተጫኑ መተግበሪያዎች}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ከ# ወር በላይ በፊት የተጫኑ መተግበሪያዎች}one{ከ# ወር በላይ በፊት የተጫኑ መተግበሪያዎች}other{ከ# ወራት በላይ በፊት የተጫኑ መተግበሪያዎች}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"ምጥጥነ ገፅታ"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ይህ መተግበሪያ ለእርስዎ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> እንዲሆን ካልተነደፈ እሱን ለመመልከት ምጥጥነ ገፅታን ይምረጡ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"በአስተያየት የተጠቆሙ መተግበሪያዎች"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"የሻሯቸው መተግበሪያዎች"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"የመተግበሪያ ነባሪ"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ሙሉ ገጽ ዕይታ"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ግማሽ ማያ ገጽ"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"የመሣሪያ ምጥጥነ ገፅታ"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"የምጥጥነ ገፅታውን ሲለውጡ መተግበሪያው እንደገና ይጀምራል። ያልተቀመጡ ለውጦችን ሊያጡ ይችላሉ።"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"የጣት አሻራ ዳሳሽ"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"የብልጭታ ማሳወቂያዎች"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ስለብልጭታ ማሳወቂያዎች"</string>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 966767e..8cd1e01 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"بعد دقيقة واحدة"</item>
     <item msgid="1574040255478150028">"بعد 5 دقائق"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 9746acf..4bdea5e 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"‏جارٍ مشاركة Wi‑Fi مع هذا الجهاز…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"جارٍ الاتصال…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"مشاركة نقطة الاتصال"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"إثبات هويتك"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"التحقق من هويتك"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"‏كلمة مرور Wi-Fi هي:  <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"كلمة مرور نقطة الاتصال: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"اتصال تلقائي"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"هل نسيت كلمة المرور؟"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"هل نسيت النقش؟"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"هل نسيت رقم التعريف الشخصي؟"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"استخدِم النقش الذي اخترته على جهازك للمتابعة."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"للمتابعة، أدخِل رقم التعريف الشخصي للجهاز."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"أدخل كلمة مرور الجهاز للمتابعة."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"استخدم نقش ملفك الشخصي الخاص بالعمل للمتابعة."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"يجب رسم النقش للمتابعة."</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"يجب إدخال رقم التعريف الشخصي للمتابعة."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"يجب إدخال كلمة المرور للمتابعة."</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"يجب رسم نقش ملفك الشخصي الخاص بالعمل للمتابعة."</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"أدخل رقم التعريف الشخصي لملفك الشخصي للعمل للمتابعة."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"أدخل كلمة مرور ملفك الشخصي للعمل للمتابعة."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"استخدام نقش للجهاز لزيادة الأمان"</string>
@@ -4669,6 +4669,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"الصوت الصادر من الوسائط المتوافقة يصبح أكثر وضوحًا."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"تتبُّع حركة الرأس"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"يتغيّر الصوت بينما تُحرك رأسك ليبدو طبيعيًا جدًا."</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"الحد الأقصى لمعدّل تنزيل الشبكة"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"يمكنك ضبط الحد الأقصى لحركة البيانات الواردة في معدّل نقل البيانات للشبكة والذي يتم تطبيقه على جميع الشبكات التي توفّر اتصالاً بالإنترنت."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ضبط الحد الأقصى لمعدّل تنزيل الشبكة"</string>
@@ -4685,7 +4697,7 @@
     <string name="bluetooth_find_broadcast_summary" msgid="3907899428626210673">"محتوى البث الذي تستمع إليه"</string>
     <string name="bluetooth_find_broadcast" msgid="1768337775649457586">"البحث عن عمليات بث"</string>
     <string name="bluetooth_find_broadcast_button_leave" msgid="7881206581147104908">"مغادرة البث"</string>
-    <string name="bluetooth_find_broadcast_button_scan" msgid="3995664694641895189">"إجراء مسح ضوئي لرمز الاستجابة السريعة"</string>
+    <string name="bluetooth_find_broadcast_button_scan" msgid="3995664694641895189">"مسح رمز الاستجابة السريعة ضوئيًا"</string>
     <string name="find_broadcast_password_dialog_title" msgid="3176988702535737484">"إدخال كلمة المرور"</string>
     <string name="find_broadcast_password_dialog_connection_error" msgid="47873617983439400">"يتعذّر الاتصال. يُرجى إعادة المحاولة."</string>
     <string name="find_broadcast_password_dialog_password_error" msgid="243855327674765">"كلمة مرور غير صحيحة"</string>
@@ -4701,24 +4713,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"إلغاء تثبيت التطبيق"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{التطبيقات التي تم تثبيتها خلال آخر شهر}zero{التطبيقات التي تم تثبيتها خلال آخر # شهر}two{التطبيقات التي تم تثبيتها خلال آخر شهرَين}few{التطبيقات التي تم تثبيتها خلال آخر # شهور}many{التطبيقات التي تم تثبيتها خلال آخر # شهرًا}other{التطبيقات التي تم تثبيتها خلال آخر # شهر}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{التطبيقات التي تم تثبيتها قبل أكثر من شهر واحد}zero{التطبيقات التي تم تثبيتها قبل أكثر من # شهر}two{التطبيقات التي تم تثبيتها قبل أكثر من شهرَين}few{التطبيقات التي تم تثبيتها قبل أكثر من # شهور}many{التطبيقات التي تم تثبيتها قبل أكثر من # شهرًا}other{التطبيقات التي تم تثبيتها قبل أكثر من # شهر}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"نسبة العرض إلى الارتفاع"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"يمكنك اختيار نسبة العرض إلى الارتفاع لهذا التطبيق في حال لم يكن مصمّمًا ليلائم جهاز <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"التطبيقات المقترَحة"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"التطبيقات التي تم فيها إلغاء نسبة العرض إلى الارتفاع"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"نسبة العرض إلى الارتفاع التلقائية في التطبيق"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ملء الشاشة"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"نصف الشاشة"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"نسبة العرض إلى الارتفاع في الجهاز"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ستتم إعادة تشغيل التطبيق عند تغيير نسبة العرض إلى الارتفاع. يُرجى العِلم أنّك قد تفقد التغييرات التي يتم حفظها."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"أداة استشعار بصمة الإصبع"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"الإشعارات المصحوبة بوميض"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"لمحة عن الإشعارات المصحوبة بوميض"</string>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index 702d076..003e126 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"১ মিনিটৰ পাছত"</item>
     <item msgid="1574040255478150028">"৫ মিনিটৰ পাছত"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 67d5ebc..696819e 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"এই ডিভাইচটোৰ সৈতে ৱাই-ফাই শ্বেয়াৰ কৰি থকা হৈছে…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"সংযোগ কৰি থকা হৈছে…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"হ’টস্প’ট শ্বেয়াৰ কৰক"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"এইজন আপুনিয়েই বুলি সত্যাপন কৰক"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"এইজন আপুনি বুলি ভেৰিফাই কৰক"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ৱাই-ফাইৰ পাছৱৰ্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"হটস্পটৰ পাছৱৰ্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"স্বয়ং-সংযোগ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"আপোনাৰ পাছৱর্ডটো পাহৰিলে নেকি?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"আপোনাৰ আর্হিটো পাহৰিলে নেকি?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"আপোনাৰ পিনটো পাহৰিলে নেকি?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ আৰ্হিটো দিয়ক।"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ পিন দিয়ক"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"অব্যাহত ৰাখিবলৈ আপোনাৰ ডিভাইচৰ পাছৱৰ্ডটো দিয়ক"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"অব্যাহত ৰাখিবলৈ আপোনাৰ কৰ্মস্থানৰ আৰ্হিটো ব্যৱহাৰ কৰক"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"অব্যাহত ৰাখিবলৈ আপোনাৰ আৰ্হিটো অংকন কৰক"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"অব্যাহত ৰাখিবলৈ আপোনাৰ পিনটো দিয়ক"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"অব্যাহত ৰাখিবলৈ আপোনাৰ পাছৱৰ্ডটো দিয়ক"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"অব্যাহত ৰাখিবলৈ আপোনাৰ কৰ্মস্থানৰ আৰ্হিটো অংকন কৰক"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"অব্যাহত ৰাখিবলৈ আপোনাৰ কৰ্মস্থানৰ পিন লিখক"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"অব্যাহত ৰাখিবলৈ আপোনাৰ কৰ্মস্থানৰ পাছৱৰ্ড লিখক"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"অতিৰিক্ত সুৰক্ষাৰ বাবে আপোনাৰ ডিভাইচ আৰ্হি ব্যৱহাৰ কৰক"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"সমিল মিডিয়াৰ পৰা অহা অডিঅ’ অধিক ইমাৰ্ছিভ হৈ পৰে"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হে’ড ট্ৰেকিং"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"আপুনি নিজৰ মূৰটো লৰচৰ কৰিলে শ্ৰৱণৰ অভিজ্ঞতা অধিক স্বতঃস্ফূৰ্ত কৰিবলৈ অডিঅ’ সলনি হয়"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"নেটৱৰ্কৰ ডাউনল’ডৰ হাৰৰ সীমা"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"নেটৱৰ্কৰ বেণ্ডৱিথ ইনগ্ৰেছৰ হাৰৰ সীমা কনফিগাৰ কৰক, যিটো ইণ্টাৰনেট সংযোগ প্ৰদান কৰা আটাইবোৰ নেটৱৰ্কত প্ৰযোজ্য হয়।"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"নেটৱৰ্কৰ ডাউনল’ডৰ হাৰৰ সীমা কনফিগাৰ কৰক"</string>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index ed6a3f2..2464dad 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 dəqiqə sonra"</item>
     <item msgid="1574040255478150028">"5 dəqiqə sonra"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 8b19001..6c453c6 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi bu cihazla paylaşılır…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Qoşulur..."</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot\'u paylaşın"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Siz olduğunuzu doğrulayın"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Siz olduğunuzu təsdiqləyin"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi parolu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot parolu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Avtomatik bağlantı"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Parolu unutmusunuz?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Modeli unutmusunuz?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN\'i unutmusunuz?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Davam etmək üçün cihaz modelinizi istifadə edin"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Davam etmək üçün cihaz PİN kodunu daxil edin"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Davam etmək üçün cihaz parolunu daxil edin"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Davam etmək üçün iş modelinizi istifadə edin"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Modeli çəkərək davam edin"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"PIN-i daxil edərək davam edin"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Parolu daxil edərək davam edin"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"İş modelini çəkərək davam edin"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Davam etmək üçün iş PİN kodunu yazın"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Davam etmək üçün iş parolunu daxil edin"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Əlavə edilmiş təhlükəsizlik üçün cihaz modelini istifadə edin"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyğun mediadan gələn audio daha immersiv olur"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Baş izləməsi"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Daha təbii səslənmək üçün başınızı hərəkət etdirdikcə səs dəyişir"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Şəbəkə endirmə sürəti limiti"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"İnternet bağlantısı təmin edən bütün şəbəkələrə tətbiq edilən şəbəkə zolaq genişliyi giriş sürəti limitini konfiqurasiya edin."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Şəbəkə endirmə sürəti limitini konfiqurasiya edin"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Tətbiqi sistemdən silin"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Son # ay ərzində quraşdırılmış tətbiqlər}other{Son # ay ərzində quraşdırılmış tətbiqlər}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Minimum # ay əvvəl quraşdırılmış tətbiqlər}other{Minimum # ay əvvəl quraşdırılmış tətbiqlər}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Tərəflər nisbəti"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> cihazına uyğun deyilsə, bu tətbiqə baxmaq üçün tərəflər nisbəti seçin"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Təklif edilən tətbiqlər"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Əvəzlədiyiniz tətbiqlər"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Tətbiq defoltu"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Tam ekran"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Yarımekran"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Cihazın tərəflər nisbəti"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Tərəflər nisbətini dəyişdikdə tətbiq yenidən başladılacaq. Yadda saxlanmayan dəyişikliklər itə bilər."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Barmaq izi sensoru"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"İşıqlı bildirişlər"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"İşıqlı bildirişlər haqqında"</string>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index bee9f81..83819ee 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Posle 1 minuta"</item>
     <item msgid="1574040255478150028">"Posle 5 minuta"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 5ceb5f9..5875df7 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deli se Wi‑Fi sa ovim uređajem…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezuje se…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Delite hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite svoj identitet"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Lozinka za WiFi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lozinka hotspota: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste lozinku?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste šablon?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Koristite šablon za uređaj da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite lozinku uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Koristite šablon za poslovni profil da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte šablon da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite lozinku da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte šablon za posao da biste nastavili"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite PIN za poslovni profil da biste nastavili"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Unesite lozinku za poslovni profil da biste nastavili"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Radi veće bezbednosti koristite šablon za uređaj"</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk kompatibilnih medija postaje realističniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se menja kako pomerate glavu da bi delovao prirodnije"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje brzine preuzimanja na mreži"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurišite ograničenje brzine dolaznog propusnog opsega mreže koje se primenjuje na sve mreže koje pružaju internet vezu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurišite ograničenje brzine preuzimanja na mreži"</string>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index 9b85ddc..89a5538 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Праз 1 хвіліну"</item>
     <item msgid="1574040255478150028">"Праз 5 хвілін"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 8aacfbd..9cd0a86 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi абагульваецца з гэтай прыладай…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ідзе падключэнне…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Абагульванне хот-спота"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Пацвердзіце, што гэта вы"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Пацвердзіце, што гэта вы"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль хот-спота: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Аўтаматычнае падключэнне"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забылі пароль?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забылі ўзор разблакіроўкі?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забылі PIN-код?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Каб працягнуць, выкарыстайце ўзор разблакіроўкі прылады"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Каб працягнуць, увядзіце PIN-код прылады"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Каб працягнуць, увядзіце пароль прылады"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Каб працягнуць, выкарыстайце ўзор свайго працоўнага профілю"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Каб працягнуць, увядзіце ўзор разблакіроўкі"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Каб працягнуць, увядзіце PIN-код"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Каб працягнуць, увядзіце пароль"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Каб працягнуць, увядзіце ўзор разблакіроўкі для працоўнага профілю"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Каб працягнуць, увядзіце PIN-код свайго працоўнага профілю."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Каб працягнуць, увядзіце пароль свайго працоўнага профілю"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Для большай бяспекі выкарыстоўвайце ўзор разблакіроўкі прылады"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Гук з сумяшчальных мультымедыйных прылад стварае больш глыбокі эфект прысутнасці"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Адсочванне рухаў галавы"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Калі вы рухаеце галавой, гук змяняецца. Дзякуючы гэтаму вы чуеце больш натуральнае гучанне"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Абмежаванне хуткасці спампоўвання праз сетку"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Наладзьце абмежаванне ўваходнай паласы прапускання для ўсіх сетак, якія забяспечваюць падключэнне да інтэрнэту."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Наладзьце абмежаванне хуткасці спампоўвання праз сетку"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Выдаліць праграму"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Праграмы, усталяваныя за апошні # месяц}one{Праграмы, усталяваныя за апошні # месяц}few{Праграмы, усталяваныя за апошнія # месяцы}many{Праграмы, усталяваныя за апошнія # месяцаў}other{Праграмы, усталяваныя за апошнія # месяца}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Праграмы, усталяваныя больш як # месяц назад}one{Праграмы, усталяваныя больш як # месяц назад}few{Праграмы, усталяваныя больш як # месяцы назад}many{Праграмы, усталяваныя больш як # месяцаў назад}other{Праграмы, усталяваныя больш як # месяца назад}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Суадносіны бакоў"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Калі праграма не аптымізавана для вашай прылады (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>), выберыце суадносіны бакоў, якія вам падыходзяць"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Прапанаваныя праграмы"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Праграмы з перавызначаным вамі значэннем"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандартнае значэнне для праграмы"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Поўнаэкранны рэжым"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Палова экрана"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Суадносіны бакоў на прыладзе"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Калі вы зменіце суадносіны бакоў, праграма перазапусціцца. Незахаваныя змяненні могуць быць страчаны."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер адбіткаў пальцаў"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Флэш-апавяшчэнні"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Пра флэш-апавяшчэнні"</string>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 5031ee1..a646f78 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"След 1 минута"</item>
     <item msgid="1574040255478150028">"След 5 минути"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Включете адаптивната яркост с цел удължаване на живота на батерията"</item>
+    <item msgid="2256666063790193306">"Намалете времето за изчакване на екрана с цел удължаване на живота на батерията"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 44e14e6..13aa563 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi-Fi мрежата се споделя с това устройство…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Свързва се…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Споделяне на точката за достъп"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потвърдете, че това сте вие"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потвърдете, че сте вие"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Парола за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Парола за точката за достъп: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматично свързване"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забравили сте паролата?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забравили сте фигурата?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забравили сте ПИН кода?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Използвайте фигурата за устройството си, за да продължите"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Въведете ПИН кода за устройството си, за да продължите"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Въведете паролата за устройството си, за да продължите"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Използвайте служебната си фигура, за да продължите"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Начертайте фигурата си, за да продължите"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Въведете ПИН кода си, за да продължите"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Въведете паролата си, за да продължите"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Начертайте служебната си фигура, за да продължите"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Въведете служебния си ПИН код, за да продължите"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Въведете служебната си парола, за да продължите"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"За допълнителна сигурност използвайте фигурата за устройството си"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукът от съвместимите източници става по-реалистичен"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Проследяване на движенията на главата"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукът се променя, докато движите главата си, с цел да бъде по-естествен"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Тип аудиоустройство"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Неизвестно"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Високоговорител"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Слушалки"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Комплект за автомобил"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Друго"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничение за мрежата за скоростта при изтегляне"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигуриране на ограничението за скорост на мрежовата пропускателна способност за входящи данни, което се прилага за всички мрежи, осигуряващи връзка с интернет."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигуриране на ограничението за мрежата за скоростта при изтегляне"</string>
@@ -4697,24 +4703,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Деинсталиране на приложението"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Приложения, инсталирани през последния # месец}other{Приложения, инсталирани през последните # месеца}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, инсталирани преди повече от # месец}other{Приложения, инсталирани преди повече от # месеца}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Съотношение"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Изберете съотношение за показване на това приложение, ако то не е оптимизирано за устройството ви <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложени приложения"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Приложения, които сте заменили"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандартно за приложението"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Цял екран"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половин екран"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Съотношение за устройството"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Когато промените съотношението, приложението ще се рестартира. Възможно е да изгубите незапазените промени."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сензор за отпечатъци"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Известия с премигване"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Всичко за известията с премигване"</string>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index d977a18..cb8df36 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"১ মিনিট পর"</item>
     <item msgid="1574040255478150028">"৫ মিনিট পর"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index eee3399..e11e9a8 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"এই ডিভাইসটি ওয়াই-ফাই-এর সাথে কানেক্ট করা আছে…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"কানেক্ট হচ্ছে…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"হটস্পট শেয়ার করুন"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"এটি যে আপনি তা যাচাই করুন"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"আপনার পরিচয় যাচাই করুন"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ওয়াই-ফাইয়ের পাসওয়ার্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"হটস্পটের পাসওয়ার্ড: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"অটো-কানেক্ট"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"পাসওয়ার্ড ভুলে গেছেন?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"প্যাটার্ন ভুলে গেছেন?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"পিন ভুলে গেছেন?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"চালিয়ে যেতে আপনার ডিভাইসের প্যাটার্ন ব্যবহার করুন"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"চালিয়ে যেতে আপনার ডিভাইসের পিন লিখুন"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"চালিয়ে যেতে আপনার ডিভাইসের পাসওয়ার্ড লিখুন"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"চালিয়ে যেতে আপনার কর্মস্থলের প্যাটার্ন ব্যবহার করুন"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"চালিয়ে যেতে আপনার প্যাটার্ন আঁকুন"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"চালিয়ে যেতে আপনার পিন লিখুন"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"চালিয়ে যেতে আপনার পাসওয়ার্ড লিখুন"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"চালিয়ে যেতে আপনার অফিসের প্যাটার্ন আঁকুন"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"চালিয়ে যেতে আপনার অফিসের পিন লিখুন"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"চালিয়ে যেতে আপনার কর্মস্থলের পাসওয়ার্ড লিখুন"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"অতিরিক্ত নিরাপত্তার জন্য, আপনার ডিভাইসের প্যাটার্ন ব্যবহার করুন"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"মানানসই মিডিয়ার অডিও আরও বেশি শ্রবণযোগ্য"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"হেড ট্র্যাকিং"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"মাথা নাড়াচাড়া করার সাথে সাথে অডিও পরিবর্তন হয় যাতে আরও স্বাভাবিক শব্দ হয়"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"নেটওয়ার্কের জন্য নির্দিষ্ট করা ডাউনলোড করার হার"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"নেটওয়ার্ক ব্যান্ডউইথ ইনগ্রেস নির্দিষ্ট করা ডেটা ট্রাফিকের হারকে কনফিগার করুন। এটি ইন্টারনেট কানেকশন দেয় এমন সব নেটওয়ার্কের ক্ষেত্রে প্রযোজ্য।"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"নেটওয়ার্কের জন্য নির্দিষ্ট করা ডাউনলোড করার হার কনফিগার করুন"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"অ্যাপ আনইনস্টল করুন"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}one{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}other{শেষ # মাসের মধ্যে ইনস্টল করা অ্যাপ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}one{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}other{# মাসেরও বেশি সময় আগে অ্যাপ ইনস্টল করা হয়েছে}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"অ্যাস্পেক্ট রেশিও"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"অ্যাপটি যদি আপনার <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-এ কাজ করার মতো করে ডিজাইন করা না হয়ে থাকে, তাহলে এটি দেখার জন্য অ্যাস্পেক্ট রেশিও বেছে নিন"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"সাজেস্ট করা অ্যাপ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"আপনার ওভাররাইড করা অ্যাপ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"অ্যাপ ডিফল্ট"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ফুল স্ক্রিন"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"অর্ধেক স্ক্রিন"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ডিভাইসের অ্যাস্পেক্ট রেশিও"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"১৬:৯"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"৩:২"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"৪:৩"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"আপনি অ্যাস্পেক্ট রেশিও পরিবর্তন করলে, অ্যাপ রিস্টার্ট হবে। সেভ না করা পরিবর্তন আপনি হারাতে পারেন।"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ফিঙ্গারপ্রিন্ট সেন্সর"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ফ্ল্যাশ নোটিফিকেশন"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ফ্ল্যাশ বিজ্ঞপ্তি সম্পর্কে"</string>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 2a21b78..78ac02b 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nakon 1 min"</item>
     <item msgid="1574040255478150028">"Nakon 5 min"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 60e6b84..320de3a 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Dijeljenje WiFi mreže s ovim uređajem…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezivanje…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dijeljenje pristupne tačke"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite svoj identitet"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Lozinka WiFi mreže: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lozinka pristupne tačke: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste lozinku?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste uzorak?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Unesite uzorak uređaja da nastavite"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da nastavite"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite lozinku uređaja da nastavite"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Za nastavak, unesite radni uzorak"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte obrazac da nastavite"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da nastavite"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite lozinku da nastavite"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte obrazac radnog profila da nastavite"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite radni PIN da nastavite"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Za nastavak, unesite radnu lozinku."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za dodatnu sigurnost, unesite uzorak uređaja"</string>
@@ -4666,6 +4666,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk iz kompatibilnih medija postaje prostraniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja dok pomjerate glavu radi prirodnijeg zvuka"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audio uređaja"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalice"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Komplet za automobil"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje stope preuzimanja mreže"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte ograničenje stope ulaza propusnosti mreže koje se primjenjuje na sve mreže koje pružaju internetsku vezu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurirajte ograničenje stope preuzimanja mreže"</string>
@@ -4698,24 +4704,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deinstaliraj aplikaciju"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije instalirane u proteklom mjesecu}one{Aplikacije instalirane u proteklom # mjesecu}few{Aplikacije instalirane u protekla # mjeseca}other{Aplikacije instalirane u proteklih # mjeseci}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije instalirane prije # mjesec}one{Aplikacije instalirane prije # mjesec}few{Aplikacije instalirane prije # mjeseca}other{Aplikacije instalirane prije # mjeseci}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Format slike"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Odaberite format slike u kojem će se aplikacija prikazivati ako nije namijenjena da stane na uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije koje ste zaobišli"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Zadano za aplikaciju"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Prikaz preko cijelog ekrana"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pola ekrana"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format slike uređaja"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija će se ponovo pokrenuti kada promijenite format slike. Možda ćete izgubiti nesačuvane promjene."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor za otisak prsta"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Obavještenja blicanjem"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Informacije o obavještenjima blicanjem"</string>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 3dfd06f..c29c514 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Després d\'1 minut"</item>
     <item msgid="1574040255478150028">"Després de 5 minuts"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index 4614758..4a0e406 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"S\'està compartint la Wi‑Fi amb aquest dispositiu…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"S\'està connectant…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Comparteix el punt d\'accés Wi‑Fi"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica la teva identitat"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica la teva identitat"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contrasenya de la Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contrasenya del punt d\'accés Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexió automàtica"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Has oblidat la contrasenya?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Has oblidat el patró?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Has oblidat el PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utilitza el patró del dispositiu per continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introdueix el PIN del dispositiu per continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introdueix la contrasenya del dispositiu per continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilitza el patró de la feina per continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dibuixa el patró per continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introdueix el PIN per continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introdueix la contrasenya per continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dibuixa el patró de treball per continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introdueix el PIN de la feina per continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introdueix la contrasenya de la feina per continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Per a més seguretat, utilitza el patró del dispositiu"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'àudio dels continguts multimèdia compatibles esdevé més immersiu"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguiment del cap"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'àudio canvia a mesura que mous el cap per sonar més natural"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límit de velocitat de baixada de la xarxa"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límit de velocitat d\'entrada de l\'amplada de banda de la xarxa que s\'aplica a totes les xarxes que proporcionen connexió a Internet"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límit de velocitat de baixada de la xarxa"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstal·la l\'aplicació"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplicacions instal·lades en el # darrer mes}other{Aplicacions instal·lades en els # darrers mesos}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplicacions instal·lades fa més d’# mes}other{Aplicacions instal·lades fa més de # mesos}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Relació d\'aspecte"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Tria una relació d\'aspecte per veure aquesta aplicació en cas que no s\'hagi dissenyat per adaptar-se al teu dispositiu (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacions suggerides"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplicacions que has anul·lat"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Configuració predeterminada de l\'aplicació"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Mitja pantalla"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Relació d\'aspecte del dispositiu"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'aplicació es reiniciarà quan canviïs la relació d\'aspecte. És possible que es perdin els canvis sense desar."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor d\'empremtes digitals"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Notificacions amb flaix"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Sobre les notificacions amb flaix"</string>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index c0b73a5..9741c06 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Po 1 minutě"</item>
     <item msgid="1574040255478150028">"Po 5 minutách"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Pokud chcete prodloužit výdrž baterie, zapněte adaptivní jas"</item>
+    <item msgid="2256666063790193306">"Pokud chcete prodloužit výdrž baterie, zkraťte interval vypnutí obrazovky"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 46efd0f..52793a2 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sdílení Wi‑Fi s tímto zařízením…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Připojování…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Sdílení hotspotu"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Ověřte svou totožnost"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrďte, že jste to vy"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Heslo k Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Heslo k hotspotu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatické připojení"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zapomněli jste heslo?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zapomněli jste gesto?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zapomněli jste PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Pokud chcete pokračovat, zadejte gesto zařízení."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Chcete-li pokračovat, zadejte PIN zařízení."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Chcete-li pokračovat, zadejte heslo zařízení."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Chcete-li pokračovat, zadejte pracovní gesto."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Pokud chcete pokračovat, zadejte gesto"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Pokud chcete pokračovat, zadejte PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Pokud chcete pokračovat, zadejte heslo"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Pokud chcete pokračovat, zadejte pracovní gesto"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Chcete-li pokračovat, zadejte pracovní PIN."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Chcete-li pokračovat, zadejte pracovní heslo."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za účelem zvýšení zabezpečení použijte gesto zařízení"</string>
@@ -4667,6 +4667,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilních mediálních zařízení bude realističtější"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledování hlavy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Při pohybu hlavou se zvuk mění, aby zněl přirozeněji"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Typ zvukového zařízení"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Neznámé"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Reproduktor"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Sluchátka"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Sada handsfree do auta"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Jiné"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limit rychlosti stahování v síti"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Možnost nakonfigurovat limit rychlosti připojení k síti u příchozích přenosů, který bude platit pro všechny sítě poskytující připojení k internetu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurace limitu rychlosti stahování v síti"</string>
@@ -4699,24 +4705,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinstalovat aplikaci"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikace nainstalované během posledního # měsíce}few{Aplikace nainstalované během posledních # měsíců}many{Aplikace nainstalované během posledního # měsíce}other{Aplikace nainstalované během posledních # měsíců}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikace nainstalované před více než # měsícem}few{Aplikace nainstalované před více než # měsíci}many{Aplikace nainstalované před více než # měsíce}other{Aplikace nainstalované před více než # měsíci}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Poměr stran"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Zvolte poměr stran, ve kterém se bude aplikace zobrazovat, pokud není určena pro rozměr obrazovky vašeho zařízení <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikace"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikace, které jste přepsali"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Výchozí možnost aplikace"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celá obrazovka"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Polovina obrazovky"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Poměr stran zařízení"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16 : 9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4 : 3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Když změníte poměr stran, aplikace se restartuje. Můžete přijít o neuložené změny."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Snímač otisků prstů"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Světelná oznámení"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Informace o světelných oznámeních"</string>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index cfc4b97..078220c 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Efter 1 minut"</item>
     <item msgid="1574040255478150028">"Efter 5 minutter"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index c675188..a349e2d 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wi-Fi med denne enhed…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Opretter forbindelse…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Del hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verificer, at det er dig"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bekræft, at det er dig"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Adgangskode til Wi-Fi-netværk: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Adgangskode til hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Opret automatisk forbindelse"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glemt din adgangskode?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glemt dit mønster?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glemt din pinkode?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Brug mønsteret til din enhed for at fortsætte"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Angiv pinkoden til din enhed for at fortsætte"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Angiv adgangskoden til din enhed for at fortsætte"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Brug mønsteret til din arbejdsprofil for at fortsætte"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tegn dit mønster for at fortsætte"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Angiv din pinkode for at fortsætte"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Angiv din adgangskode for at fortsætte"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tegn dit arbejdsmønster for at fortsætte"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Angiv pinkoden til din arbejdsprofil for at fortsætte"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Angiv adgangskoden til din arbejdsprofil for at fortsætte"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Brug mønsteret til din enhed for at opnå øget sikkerhed"</string>
@@ -2443,7 +2443,7 @@
     <string name="number_of_urls" msgid="1128699121050872188">"{count,plural, =1{# webadresse}one{# webadresse}other{# webadresser}}"</string>
     <string name="emergency_tone_title" msgid="6673118505206685168">"Ringesignal i nødsituationer"</string>
     <string name="emergency_tone_summary" msgid="2519776254708767388">"Angiv adfærd ved nødopkald"</string>
-    <string name="privacy_settings_title" msgid="6437057228255974577">"Backup"</string>
+    <string name="privacy_settings_title" msgid="6437057228255974577">"Sikkerheds­kopiering"</string>
     <string name="backup_summary_state_on" msgid="9018954639693085240">"Til"</string>
     <string name="backup_summary_state_off" msgid="5341339397224835909">"Fra"</string>
     <string name="backup_section_title" msgid="6539706829848457794">"Backup og gendannelse"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyden fra kompatible medieenheder bliver endnu bedre"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Registrering af hovedbevægelser"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden ændrer sig, når du bevæger dit hoved, for at opnå en mere naturlig lyd"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Grænse for downloadhastighed på netværket"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurer grænsen for indgående båndbredde på netværket, som vil gælde for alle netværk, der leverer internetforbindelse."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurer grænsen for downloadhastighed på netværket"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Afinstaller app"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps installeret i den seneste måned}one{Apps installeret i de seneste}other{Apps installeret i de seneste # måneder}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps, som er installeret for mere end # måned siden}one{Apps, som er installeret for mere end # måned siden}other{Apps, som er installeret for mere end # måneder siden}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Billedformat"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Vælg et billedformat for at se denne app, hvis den ikke er designet til at vises korrekt på din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåede apps"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps, du har tilsidesat"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Standardindstilling for appen"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Fuld skærm"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halv skærm"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Billedformat på enheden"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Denne app genstartes, når du ændrer billedformatet. Du mister muligvis ændringer, der ikke er gemt."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeraftrykssensor"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Lysnotifikationer"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Om lysnotifikationer"</string>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index de855c4..36d919f 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nach 1 Minute"</item>
     <item msgid="1574040255478150028">"Nach 5 Minuten"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 1f3a0f5..f86cb0a 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -122,7 +122,7 @@
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Drücken der Eingabestifttaste"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (Arbeitsprofil)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Textfelder ausfüllen"</string>
-    <string name="stylus_ignore_button" msgid="7734540973145241391">"Alle Schaltflächenaktivierungen durch Eingabestift ignorieren"</string>
+    <string name="stylus_ignore_button" msgid="7734540973145241391">"Drücken der Taste am Eingabestift ignorieren"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Eingabestift"</string>
     <string name="date_and_time" msgid="1788358029823431692">"Datum &amp; Uhrzeit"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
@@ -380,7 +380,7 @@
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gesicht, Fingerabdruck und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gesicht, Fingerabdrücke und <xliff:g id="WATCH">%s</xliff:g> hinzugefügt"</string>
     <string name="security_settings_biometric_preference_title" msgid="5012627247749093938">"Entsperrung per Gesichtserkennung &amp; Fingerabdruck"</string>
-    <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Gesichts- und Fingerabdruckentsperrung für die Arbeit"</string>
+    <string name="security_settings_work_biometric_preference_title" msgid="3121755615533533585">"Entsperrung per GesichtsU+00ADerkennung &amp; FingerU+00ADabdruck für die Arbeit"</string>
     <string name="security_settings_biometric_preference_summary_none_enrolled" msgid="213377753727694575">"Einrichtung erforderlich"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_multiple" msgid="4821859306609955966">"Gesicht und Fingerabdrücke hinzugefügt"</string>
     <string name="security_settings_biometric_preference_summary_both_fp_single" msgid="684409535278676426">"Gesicht und Fingerabdruck hinzugefügt"</string>
@@ -495,10 +495,10 @@
     <string name="encryption_settings_title" msgid="2848716008695618360">"Verschlüsselung"</string>
     <string name="encrypted_summary" msgid="545623487587251207">"Verschlüsselt"</string>
     <string name="no_screen_lock_issue_title" msgid="1814109590692792891">"Displaysperre einrichten"</string>
-    <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für zusätzliche Sicherheit kannst du eine PIN, ein Muster oder ein Passwort für dieses Gerät einrichten."</string>
+    <string name="no_screen_lock_issue_summary" msgid="2383217853510608406">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
     <string name="no_screen_lock_issue_action_label" msgid="2691229130486382863">"Displaysperre einrichten"</string>
     <string name="no_screen_lock_issue_notification_title" msgid="1214876733592830628">"Displaysperre einrichten"</string>
-    <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für zusätzliche Sicherheit kannst du eine PIN, ein Muster oder ein Passwort für dieses Gerät einrichten."</string>
+    <string name="no_screen_lock_issue_notification_text" msgid="8696194459170873345">"Für zusätzliche Sicherheit lässt sich eine PIN, ein Muster oder ein Passwort einrichten."</string>
     <string name="suggested_lock_settings_title" msgid="7836065447159730217">"Smartphone schützen"</string>
     <string name="suggested_fingerprint_lock_settings_title" msgid="3140266181874137984">"Fingerabdruck zum Entsperren hinzufügen"</string>
     <string name="lock_settings_picker_title" msgid="9219376327364915334">"Displaysperre wählen"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"WLAN wird für dieses Gerät freigegeben…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Verbindung wird hergestellt…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot teilen"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Deine Identität bestätigen"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Identität bestätigen"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WLAN-Passwort: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Passwort des Hotspots: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatische Verbindung"</string>
@@ -1440,10 +1440,14 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Passwort vergessen?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Muster vergessen?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN vergessen?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gib zum Fortfahren das Muster für dein Gerät ein"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Gib zum Fortfahren die PIN für dein Gerät ein"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Gib zum Fortfahren das Passwort für dein Gerät ein"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gib zum Fortfahren das Muster deines Arbeitsprofils ein"</string>
+    <!-- no translation found for lockpassword_confirm_your_pattern_generic (7401165571170203743) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_pin_generic (8990266101852808091) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_password_generic (8823867445451497224) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_pattern_generic_profile (7003851856761939690) -->
+    <skip />
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Gib zum Fortfahren die PIN deines Arbeitsprofils ein"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Gib zum Fortfahren das Passwort deines Arbeitsprofils ein"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Verwende das Muster für dein Gerät, um die Sicherheit zu erhöhen"</string>
@@ -1693,7 +1697,7 @@
     <string name="trackpad_bottom_right_tap_summary" msgid="8734094086900680674">"Tippe unten rechts auf das Touchpad für weitere Optionen"</string>
     <string name="trackpad_pointer_speed" msgid="7786579408631352625">"Zeigergeschwindigkeit"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Informationen zu Touchpad-Gesten"</string>
-    <string name="gesture_title_go_home" msgid="3682238648647225933">"Zum Startbildschirm"</string>
+    <string name="gesture_title_go_home" msgid="3682238648647225933">"Zum StartU+00ADbildschirm"</string>
     <string name="gesture_summary_go_home" msgid="6409031586904205741">"Wische irgendwo auf dem Touchpad mit drei Fingern nach oben"</string>
     <string name="gesture_title_go_back" msgid="6619462058488419802">"Zurück"</string>
     <string name="gesture_summary_go_back" msgid="4981604277892236888">"Wische mit drei Fingern von links oder rechts"</string>
@@ -4665,6 +4669,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Klang von kompatiblen Medien wird noch voller"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Erfassung von Kopfbewegungen"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Änderungen am Ton, während du deinen Kopf bewegst, damit er natürlicher klingt"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ratenbegrenzung für Downloads im Netzwerk"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Damit kannst du die Ratenbegrenzung für eingehenden Traffic über die Netzwerkbandbreite konfigurieren, die für alle Netzwerke angewendet wird, die eine Internetverbindung zur Verfügung stellen."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Ratenbegrenzung für Downloads im Netzwerk konfigurieren"</string>
@@ -4697,24 +4713,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"App deinstallieren"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apps, die innerhalb des letzten Monats installiert wurden}other{Apps, die innerhalb der letzten # Monate installiert wurden}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apps, die vor mehr als # Monat installiert wurden}other{Apps, die vor mehr als # Monaten installiert wurden}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Seitenverhältnis"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Wähle ein Seitenverhältnis für diese App aus, wenn sie nicht für dein Gerät (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) optimiert ist."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Vorgeschlagene Apps"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apps mit Überschreibung"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"App-Standard"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Ganzes Display"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halbes Display"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Seitenverhältnis des Geräts"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Wenn du das Seitenverhältnis änderst, wird die App neu gestartet. Dadurch gehen nicht gespeicherte Änderungen möglicherweise verloren."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingerabdrucksensor"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Aufleuchten bei Benachrichtigungen"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Infos zum Aufleuchten bei Benachrichtigungen"</string>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 2884bf0..51313dd 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Μετά από 1 λεπτό"</item>
     <item msgid="1574040255478150028">"Μετά από 5 λεπτά"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 0d9b0f3..ccc25f9 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Κοινή χρήση Wi‑Fi με αυτήν τη συσκευή…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Σύνδεση…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Κοινή χρήση σημείου πρόσβασης Wi-Fi"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Επαληθεύστε την ταυτότητά σας"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Επαλήθευση ταυτότητας"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Κωδικός πρόσβασης Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Κωδικός πρόσβασης σημείου πρόσβασης Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Αυτόματη σύνδεση"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ξεχάσατε τον κωδικό πρόσβασής σας;"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ξεχάσατε το μοτίβο σας;"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ξεχάσατε το PIN σας;"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Χρησιμοποιήστε το μοτίβο της συσκευής σας για να συνεχίσετε"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Εισαγάγετε το PIN της συσκευής σας για να συνεχίσετε"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Εισαγάγετε τον κωδικό πρόσβασης της συσκευής σας για να συνεχίσετε"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Χρησιμοποιήστε το μοτίβο εργασίας σας για να συνεχίσετε"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Σχεδιάστε το μοτίβο σας για να συνεχίσετε"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Εισαγάγετε το PIN για να συνεχίσετε"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Εισαγάγετε τον κωδικό πρόσβασης για να συνεχίσετε"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Σχεδιάστε το μοτίβο εργασίας σας για να συνεχίσετε"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Εισαγάγετε το PIN εργασίας σας για να συνεχίσετε"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Εισαγάγετε τον κωδικό πρόσβασης εργασίας σας για να συνεχίσετε"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Για πρόσθετη ασφάλεια, εισαγάγετε το μοτίβο της συσκευής σας"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ο ήχος από συμβατά μέσα γίνεται πιο καθηλωτικός"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Παρακολούθηση κίνησης κεφαλιού"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ο ήχος αλλάζει καθώς κινείτε το κεφάλι σας προκειμένου να ακούγεται πιο φυσικός"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Όριο ρυθμού λήψης δικτύου"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Διαμορφώστε το όριο του ρυθμού εισόδου εύρους ζώνης του δικτύου που εφαρμόζεται σε όλα τα δίκτυα που παρέχουν συνδεσιμότητα στο διαδίκτυο."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Διαμόρφωση ορίου ρυθμού λήψης δικτύου"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Απεγκατάσταση εφαρμογής"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Εφαρμογές που εγκαταστάθηκαν τον τελευταίο # μήνα}other{Εφαρμογές που εγκαταστάθηκαν τους τελευταίους # μήνες}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Εφαρμογές που εγκαταστάθηκαν περισσότερο από # μήνα πριν}other{Εφαρμογές που εγκαταστάθηκαν περισσότερο από # μήνες πριν}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Λόγος διαστάσεων"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Επιλέξτε έναν λόγο διαστάσεων για την προβολή αυτής της εφαρμογής, στην περίπτωση που δεν έχει σχεδιαστεί για να προβάλλεται σωστά στη συσκευή <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Προτεινόμενες εφαρμογές"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Εφαρμογές που έχετε παρακάμψει"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Προεπιλογή εφαρμογής"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Πλήρης οθόνη"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Μισή οθόνη"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Λόγος διαστάσεων συσκευής"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Θα γίνει επανεκκίνηση της εφαρμογής μόλις αλλάξετε τον λόγο διαστάσεων. Μπορεί να χάσετε τις μη αποθηκευμένες αλλαγές."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Αισθητήρας δακτυλικών αποτυπωμάτων"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Ειδοποιήσεις με λάμψη"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Σχετικά με τις ειδοποιήσεις με λάμψη"</string>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+    <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 635a22e..5065f45 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 46c29b1..74fd37a 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"After 1 minute"</item>
     <item msgid="1574040255478150028">"After 5 minutes"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+    <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index c2c53b7..2cfceb4 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify it\'s you"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgot your PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Audio Device Type"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Unknown"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Headphones"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Car Kit"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Other"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide internet connectivity."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+    <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 9485394..6c07e59 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 7f5af74..fd4e4cd 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"After one minute"</item>
     <item msgid="1574040255478150028">"After five minutes"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Turn on adaptive brightness to extend battery life"</item>
+    <item msgid="2256666063790193306">"Reduce screen timeout to extend battery life"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 231edb6..3fadc70 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Sharing Wi‑Fi with this device…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connecting…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Share hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verify that it\'s you"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verify that it\'s you"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot password: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Forgot your password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Forgot your pattern?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Forgotten your PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use your device pattern to continue"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Enter your device PIN to continue"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Enter your device password to continue"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use your work pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Draw your pattern to continue"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Enter your PIN to continue"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Enter your password to continue"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Draw your work pattern to continue"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Enter your work PIN to continue"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Enter your work password to continue"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"For added security, use your device pattern"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio from compatible media becomes more immersive"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Head tracking"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio changes as you move your head to sound more natural"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Network download rate limit"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure the network bandwidth ingress rate limit which is applied to all networks that provide Internet connectivity."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configure network download rate limit"</string>
diff --git a/res/values-en-rXC/arrays.xml b/res/values-en-rXC/arrays.xml
index d7800e6..1447251 100644
--- a/res/values-en-rXC/arrays.xml
+++ b/res/values-en-rXC/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‎‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‎‏‎After 1 minute‎‏‎‎‏‎"</item>
     <item msgid="1574040255478150028">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‏‏‎‎‎After 5 minutes‎‏‎‎‏‎"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‏‏‏‎‏‏‎‏‏‎‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‎‎‏‎‎‏‏‎‎‏‏‎‏‏‎‎‏‎Turn on adaptive brightness to extend battery life‎‏‎‎‏‎"</item>
+    <item msgid="2256666063790193306">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‏‏‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‏‎‏‏‏‎‏‎‏‎‎‏‏‎‏‎‎Reduce screen timeout to extend battery life‎‏‎‎‏‎"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index c05f3a5..f1ad5a7 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‏‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‎‎‏‎‏‏‎‏‎‏‏‎Sharing Wi‑Fi with this device…‎‏‎‎‏‎"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‎‎‎‎‎‎‏‏‎‎‎‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‎‏‎‎‏‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‎‏‎Connecting…‎‏‎‎‏‎"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎Share hotspot‎‏‎‎‏‎"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‎‎‏‎‎‎‏‎‏‏‎‏‎‎‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎Verify that it\'s you‎‏‎‎‏‎"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‎‎‏‏‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‎‎‏‏‎‏‏‎‎‏‏‎‏‏‏‎‎‎‎‎‎‏‏‎Verify it\'s you‎‏‎‎‏‎"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‏‎‎‏‏‎‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‎‎‏‎‏‏‎‏‎‏‏‎‏‏‎‏‎Wi‑Fi password: ‎‏‎‎‏‏‎<xliff:g id="PASSWORD">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‎‎‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‎‎‏‎‎‎Hotspot password: ‎‏‎‎‏‏‎<xliff:g id="PASSWORD">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‏‏‏‎‏‏‏‏‎‏‏‎‎‎‎‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‎‎‎Auto‑connect‎‏‎‎‏‎"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‎‎‎‏‏‎‎‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‏‏‏‎Forgot your password?‎‏‎‎‏‎"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‎‏‏‎‏‎‎‏‏‎‎‏‎‏‏‏‏‎‏‏‏‎‎‎Forgot your pattern?‎‏‎‎‏‎"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‏‏‏‎‎‎‎‎‏‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‎‎‎Forgot your PIN?‎‏‎‎‏‎"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‎Use your device pattern to continue‎‏‎‎‏‎"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‏‏‎‎Enter your device PIN to continue‎‏‎‎‏‎"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‏‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎Enter your device password to continue‎‏‎‎‏‎"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‎‎Use your work pattern to continue‎‏‎‎‏‎"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‏‏‎‏‏‏‏‏‏‎‏‏‏‎‎‏‎‏‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‏‎‏‏‏‏‏‎Draw your pattern to continue‎‏‎‎‏‎"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‎‎‎‎‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‎‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‏‎‏‏‎Enter your PIN to continue‎‏‎‎‏‎"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‏‏‏‎‏‎‎‎‏‎‏‎‎‎‏‏‏‏‏‎‎‎‎‏‎‎‎‎Enter your password to continue‎‏‎‎‏‎"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‏‏‏‎‎‎‏‎‎‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‎‎‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‏‎‎Draw your work pattern to continue‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‏‎‏‎‏‎‎‎‏‎‏‎‏‎‏‎‎‏‎‎‏‎‏‏‏‎‎‏‏‏‏‎‏‎‎‎‎‎‏‎‎‏‎‏‎‎‎‏‏‎‎‎‏‏‏‏‎‏‏‏‎Enter your work PIN to continue‎‏‎‎‏‎"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‏‏‎‎‏‎‏‎‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‏‎‏‎‏‎‎‎‎‎‎‎‎‏‎‎‎‎‏‏‎Enter your work password to continue‎‏‎‎‏‎"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎For added security, use your device pattern‎‏‎‎‏‎"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‎‏‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‎‎‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‎‏‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎Audio from compatible media becomes more immersive‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‎‎‎‎‏‏‏‎Head tracking‎‏‎‎‏‎"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‎‏‎‏‎‏‎‎‎‎‎‎‏‏‎‎‏‏‏‎‏‎‏‎‎‎‏‎‏‎‎‎‎‏‏‏‏‏‏‏‎‎‏‏‎Audio changes as you move your head to sound more natural‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎‏‏‎‎‏‎‏‏‏‏‏‏‎‏‎‏‎‎‏‎‎‎‏‏‎‏‏‏‎‏‎‎‏‏‎‏‎‏‏‏‎‎Audio Device Type‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‏‏‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‎‎‏‏‏‎‏‏‏‏‏‎‎Unknown‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‎‎‎‏‎‏‏‏‏‎‎‎Speaker‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‎‎‎‎‏‎‎‎‏‎‎‎‏‏‎‎‎‏‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎Headphones‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‏‏‎‏‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‏‏‏‎‏‎Car Kit‎‏‎‎‏‎"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‎‎‎‎‏‎‏‏‎Other‎‏‎‎‏‎"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‏‏‎‎‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‎‎Network download rate limit‎‏‎‎‏‎"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‏‎‎‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‎‏‎‏‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‏‏‏‏‎‎‎‏‏‎Configure the network bandwidth ingress rate limit which is applied to all networks that provide internet connectivity.‎‏‎‎‏‎"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‎‎‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎Configure network download rate limit‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 8032bde..f24fd25 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Después de 1 minuto"</item>
     <item msgid="1574040255478150028">"Después de 5 minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index f2f8b4f..6d7b6f9 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartiendo Wi-Fi con este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartir hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica tu identidad"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica tu identidad"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contraseña de Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contraseña del hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectar automáticamente"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"¿Olvidaste la contraseña?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"¿Olvidaste el patrón?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"¿Olvidaste el PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Para continuar, usa el patrón del dispositivo"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Para continuar, ingresa el PIN del dispositivo"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Para continuar, ingresa la contraseña del dispositivo"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Usa tu patrón de trabajo para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Para continuar, ingresa tu patrón"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Para continuar, ingresa tu PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Para continuar, ingresa tu contraseña"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Para continuar, ingresa tu patrón de trabajo"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Para continuar, ingresa tu PIN de trabajo"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Para continuar, ingresa la contraseña de tu perfil de trabajo"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para mayor seguridad, usa el patrón de tu dispositivo"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio de contenido multimedia compatible se hace más envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de audio"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconocido"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Bocina"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auriculares"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit para autos"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Otro"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de tasa de descarga de la red"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límite de tasa de entrada de ancho de banda de la red, que se aplica a todas las redes que brindan conexión a Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límite de tasa de descarga de la red"</string>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index caf220d..0768dc2 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 26f99d6..b48a2f3 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartiendo Wi‑Fi con este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Comparte el punto de acceso"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica que eres tú"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifica que eres tú"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contraseña de la red Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contraseña del punto de acceso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexión automática"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"¿Has olvidado la contraseña?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"¿Has olvidado el patrón?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"¿Has olvidado el PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utiliza el patrón del dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introduce el PIN del dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduce la contraseña del dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utiliza tu patrón del trabajo para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dibuja tu patrón para continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introduce tu PIN para continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introduce tu contraseña para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dibuja tu patrón de trabajo para continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introduce tu PIN de trabajo para continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduce la contraseña de tu perfil de trabajo para continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para mayor seguridad, utiliza el patrón del dispositivo"</string>
@@ -1693,7 +1693,7 @@
     <string name="trackpad_bottom_right_tap_summary" msgid="8734094086900680674">"Toca la esquina inferior derecha del panel táctil para ver más"</string>
     <string name="trackpad_pointer_speed" msgid="7786579408631352625">"Velocidad del puntero"</string>
     <string name="trackpad_touch_gesture" msgid="8641725062131922497">"Consultar gestos del panel táctil"</string>
-    <string name="gesture_title_go_home" msgid="3682238648647225933">"Ir a Inicio"</string>
+    <string name="gesture_title_go_home" msgid="3682238648647225933">"Ir a inicio"</string>
     <string name="gesture_summary_go_home" msgid="6409031586904205741">"Desliza tres dedos hacia arriba en el panel táctil"</string>
     <string name="gesture_title_go_back" msgid="6619462058488419802">"Ir atrás"</string>
     <string name="gesture_summary_go_back" msgid="4981604277892236888">"Desliza tres dedos desde la izquierda o la derecha"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"El audio del contenido multimedia compatible se hace más inmersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimiento de cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"El audio cambia a medida que mueves la cabeza para sonar más natural"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de frecuencia de descarga de la red"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura el límite de frecuencia de entrada del ancho de banda de la red, que se aplica a todas las redes que ofrecen conexión a Internet"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura el límite de frecuencia de descarga de la red"</string>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index bdc9736..0bda7f6 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 minuti pärast"</item>
     <item msgid="1574040255478150028">"5 minuti pärast"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 192221e..ba7d3e5 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"WiFi-võrgu jagamine selle seadmega …"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ühendamine …"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Kuumkoha jagamine"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Kinnitage, et see olete teie"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Kinnitage oma isik"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WiFi-võrgu parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Kuumkoha parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaatne ühendamine"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Kas unustasite parooli?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Kas unustasite mustri?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Kas unustasite PIN-koodi?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jätkamiseks kasutage seadme mustrit"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jätkamiseks sisestage seadme PIN-kood"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jätkamiseks sisestage seadme parool"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jätkamiseks kasutage oma tööprofiili mustrit"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Jätkamiseks joonistage oma muster"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Jätkamiseks sisestage oma PIN-kood"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Jätkamiseks sisestage oma parool"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Jätkamiseks joonistage oma tööprofiili muster"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jätkamiseks sisestage oma tööprofiili PIN-kood"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jätkamiseks sisestage oma tööprofiili parool"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Lisaturvalisuse jaoks kasutage seadme mustrit"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ühilduva meedia heli muutub ruumilisemaks"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pea jälgimine"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Heli muutub pead liigutades, et kõla oleks loomulikum"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Võrgu allalaadimiskiiruse limiit"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Seadistage võrgu ribalaiuse kasutusmäära limiit, mis rakendatakse kõikidele võrkudele, mis võrguühendust pakuvad."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Seadistage võrgu allalaadimiskiiruse limiit"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalli rakendus"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Rakendused, mis installiti viimase # kuu jooksul}other{Rakendused, mis installiti viimase # kuu jooksul}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Rakendused, mis installiti rohkem kui # kuu tagasi}other{Rakendused, mis installiti rohkem kui # kuud tagasi}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Kuvasuhe"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Kui rakendus ei ole loodud teie seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> jaoks sobima, siis valige rakenduse vaatamiseks kuvasuhe"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Soovitatud rakendused"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Rakendused, mille olete alistanud"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Rakenduse vaikeseade"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Täisekraan"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pool ekraani"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Seadme kuvasuhe"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"See rakendus lähtestatakse, kui muudate kuvasuhet. Salvestamata muudatused võivad kaduma minna."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sõrmejäljeandur"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Vilkuvad märguanded"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Teave vilkuvate märguannete kohta"</string>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index ae23035..d0aa35b 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Minutu bat igarotakoan"</item>
     <item msgid="1574040255478150028">"Bost minutu igarotakoan"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 186d889..a6b277c 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Gailu honekin wifi-konexioa partekatzen…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Konektatzen…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partekatu wifi-gunea"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Egiaztatu zeu zarela"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Egiaztatu zeu zarela"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-sareko pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Wifi-guneko pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Konexio automatikoa"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Pasahitza ahaztu zaizu?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Eredua ahaztu zaizu?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PINa ahaztu zaizu?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Aurrera egiteko, marraztu gailuaren eredua"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Aurrera egiteko, idatzi gailuaren PINa"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Aurrera egiteko, idatzi gailuaren pasahitza"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Aurrera egiteko, marraztu laneko eredua"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Aurrera egiteko, marraztu eredua"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Aurrera egiteko, idatzi PINa"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Aurrera egiteko, idatzi pasahitza"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Aurrera egiteko, marraztu laneko profilaren eredua"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Aurrera egiteko, idatzi laneko PINa"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Aurrera egiteko, idatzi laneko pasahitza"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Segurtasuna bermatzeko, marraztu gailuaren eredua"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Euskarri bateragarrietako audioa murgiltzaileagoa da"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Buruaren jarraipena"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Burua mugitu ahala audioa aldatu egiten da, soinua naturalagoa izan dadin"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Sarearen deskargatzeko abiaduraren muga"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfiguratu sarearen banda-zabalerari dagokion sarrera-abiaduraren muga, zeina Interneteko konexioa eskaintzen duten sare guztiei aplikatzen baitzaie."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguratu sarearen deskargatzeko abiaduraren muga"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalatu aplikazioa"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Azken # hilabetean instalatutako aplikazioak}other{Azken # hilabeteetan instalatutako aplikazioak}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Duela # hilabete baino gehiago instalatutako aplikazioak}other{Duela # hilabete baino gehiago instalatutako aplikazioak}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspektu-erlazioa"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Aplikazioa <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailura doitzeko diseinatu ez bada, aukeratu aplikazioa ikusteko aspektu-erlazio bat"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Iradokitako aplikazioak"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aspektu-erlazioa ordeztu zaien aplikazioak"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Aplikazioen balio lehenetsia"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantaila osoa"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pantaila erdia"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Gailuaren aspektu-erlazioa"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aspektu-erlazioa aldatzean berrabiaraziko da aplikazioa. Litekeena da gorde gabeko aldaketak galtzea."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Hatz-marken sentsorea"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Argi-jakinarazpenak"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Argi-jakinarazpenei buruz"</string>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index c04d2b7..138bcde 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"پس‌از ۱ دقیقه"</item>
     <item msgid="1574040255478150028">"پس‌از ۵ دقیقه"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 90674ea..b9579f4 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -649,7 +649,7 @@
     <string name="bluetooth_device_context_disconnect" msgid="4464167389972513232">"قطع اتصال"</string>
     <string name="bluetooth_device_context_pair_connect" msgid="2406032703622371826">"مرتبط‌سازی و اتصال"</string>
     <string name="bluetooth_empty_list_bluetooth_off" msgid="316627049372961941">"با بلوتوث روشن، دستگاهتان می‌تواند با دستگاه‌های بلوتوث اطراف در ارتباط باشد."</string>
-    <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"وقتی بلوتوث روشن است، دستگاهتان می‌تواند با دیگر دستگاه‌های بلوتوث اطراف ارتباط برقرار کند.\n\nبرای بهبود تجربه استفاده از دستگاه، برنامه‌ها و سرویس‌ها همچنان می‌توانند در هرزمانی دستگاه‌های اطراف را اسکن کنند، حتی وقتی بلوتوث خاموش باشد. برای مثال، از این ویژگی می‌توان برای بهبود ویژگی‌ها و سرویس‌های مکان‌مبنا استفاده کرد. می‌توانید این ویژگی را در تنظیمات اسکن بلوتوث تغییر دهید."</string>
+    <string name="bluetooth_scanning_on_info_message" msgid="786648535600075223">"وقتی بلوتوث روشن است، دستگاهتان می‌تواند با دیگر دستگاه‌های بلوتوث اطراف ارتباط برقرار کند.\n\nبرای بهبود تجربه استفاده از دستگاه، برنامه‌ها و سرویس‌ها همچنان می‌توانند در هرزمانی دستگاه‌های اطراف را اسکن کنند، حتی وقتی بلوتوث خاموش باشد. برای مثال، از این ویژگی می‌توان برای بهبود ویژگی‌ها و سرویس‌های مکان‌مبنا استفاده کرد. می‌توانید این ویژگی را در تنظیمات اسکن دستگاه‌های بلوتوث تغییر دهید."</string>
     <string name="bluetooth_scan_change" msgid="1744636222637390367">"تغییر"</string>
     <string name="device_details_title" msgid="1155622417516195481">"جزئیات دستگاه"</string>
     <string name="bluetooth_device_keyboard_settings_preference_title" msgid="3411693160917620519">"تنظیمات صفحه‌کلید"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"‏درحال هم‌رسانی Wi‑Fi با این دستگاه…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"درحال اتصال…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"هم‌رسانی نقطه اتصال"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"تأیید اینکه این فرد شما هستید"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"تأیید کنید این شمایید"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"‏گذرواژه Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"گذرواژه نقطه اتصال: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"اتصال خودکار"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"گذرواژه را فراموش کردید؟"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"الگو را فراموش کردید؟"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"پین خود را فراموش کرده‌اید؟"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"برای ادامه دادن، از الگوی دستگاهتان استفاده کنید"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"برای ادامه، کد پین دستگاهتان را وارد کنید"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"برای ادامه گذرواژه دستگاهتان را وارد کنید"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"برای ادامه، الگوی کاری‌تان را وارد کنید"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"برای ادامه، الگو را وارد کنید"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"برای ادامه، پین را وارد کنید"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"برای ادامه، گذرواژه را وارد کنید"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"برای ادامه، الگوی کاری را وارد کنید"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"برای ادامه، پین کاری‌تان را وارد کنید"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"برای ادامه، گذرواژه کاری‌تان را وارد کنید"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"برای امنیت بیشتر، از الگوی دستگاهتان استفاده کنید"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"صدای رسانه‌های سازگار فراگیرتر می‌شود"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ردیابی سر"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"با حرکت سرتان، صدا تغییر می‌کند تا طبیعی‌تر شنیده شود"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"محدودیت نرخ بارگیری شبکه"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"برای نرخ ورودی پهنای باند شبکه، محدودیت پیکربندی کنید. این محدودیت بر همه شبکه‌هایی که اتصال اینترنت ارائه می‌دهند اعمال می‌شود."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"پیکربندی محدودیت نرخ بارگیری شبکه"</string>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index a1707fe..b4f3ebe 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 minuutin kuluttua"</item>
     <item msgid="1574040255478150028">"5 minuutin kuluttua"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index c52e796..c73c79b 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Jaetaan Wi-Fi-yhteys tämän laitteen kanssa…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Yhdistetään…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Jaa hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Henkilöllisyyden vahvistaminen"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Vahvista henkilöllisyys"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-verkon salasana: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspotin salasana: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaattinen yhdistäminen"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Unohditko salasanasi?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Unohditko kuviosi?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Unohditko PIN-koodisi?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jatka piirtämällä kuvio"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jatka lisäämällä laitteesi PIN-koodi"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jatka antamalla laitteesi salasana"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jatka piirtämällä työprofiilisi kuvio."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Jatka piirtämällä kuvio"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Jatka lisäämällä PIN-koodi"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Jatka lisäämällä salasana"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Jatka piirtämällä työprofiilisi kuvio"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jatka lisäämällä työprofiilisi PIN-koodi"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jatka antamalla työprofiilisi salasana."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Turvallisuussyistä pyydämme antamaan laitteen kuvion."</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Median audiosta tulee yhteensopivilla laitteilla immersiivisempää"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pään liikkeiden seuranta"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio muuttuu pääsi liikkeen mukana kuulostaakseen luonnollisemmalta"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Verkon latausnopeuden rajoitus"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Määritä verkon kaistanleveyden sisääntulonopeus, jota sovelletaan kaikkiin verkkoihin, jotka tarjoavat internetyhteyden"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Määritä verkon latausnopeuden rajoitus"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Poista sovellus"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Viimeisen # kuukauden aikana asennetut sovellukset}other{Viimeisten # kuukauden aikana asennetut sovellukset}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Yli # kuukausi sitten asennetut sovellukset}other{Yli # kuukautta sitten asennetut sovellukset}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Kuvasuhde"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Valitse kuvasuhde sovellukselle, jos sitä ei ole suunniteltu sopimaan laitteellesi (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ehdotetut sovellukset"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Ohitetut sovellukset"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sovelluksen oletus"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Koko näyttö"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Puolikas näyttö"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Laitteen kuvasuhde"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Sovellus käynnistyy uudelleen, kun muutat kuvasuhdetta. Voit menettää tallentamattomat muutokset."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sormenjälkitunnistin"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Valoilmoitukset"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Tietoa valoilmoituksista"</string>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 185a9a6..0af0206 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7d941e8..bec33b9 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -122,7 +122,7 @@
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Appui du bouton supérieur"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (profil professionnel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Écrire dans les champs de texte"</string>
-    <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer tous les appuis d\'un stylet sur les boutons"</string>
+    <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer toutes les pressions sur les boutons du stylet"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylet"</string>
     <string name="date_and_time" msgid="1788358029823431692">"Date et heure"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Serveur mandataire"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Partage du Wi‑Fi avec cet appareil en cours…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connexion en cours…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partager le point d\'accès"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Vérifier qu\'il s\'agit bien de vous"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmer que c\'est bien vous"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mot de passe Wi-Fi : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mot de passe du point d\'accès : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexion automatique"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Mot de passe oublié?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Schéma oublié?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"NIP oublié?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Entrez le schéma de l\'appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Entrez le NIP de l\'appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Entrez le mot de passe de l\'appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Entrez le schéma de votre profil professionnel pour continuer"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dessinez votre schéma pour continuer"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Entrez votre NIP pour continuer"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Entrez votre mot de passe pour continuer"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dessinez le schéma de votre profil professionnel pour continuer"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Entrez le NIP de votre profil professionnel pour continuer"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Entrez le mot de passe de votre profil professionnel pour continuer"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pour plus de sécurité, tracez le schéma de votre appareil"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des supports compatibles devient plus immersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi de la tête"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son est modifié en fonction des mouvements de votre tête pour produire un son plus naturel"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitation du taux de téléchargement sur le réseau"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurez la limitation du taux d\'entrée sur la bande passante qui est appliquée à tous les réseaux qui fournissent une connectivité Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du taux de téléchargement sur le réseau"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'application"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applications installées au cours du dernier mois}one{Applications installées au cours du dernier (#) mois}other{Applications installées au cours des # derniers mois}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applications installées il y a plus de # mois}one{Applications installées il y a plus de # mois}other{Applications installées il y a plus de # mois}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Proportions"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Choisissez les proportions pour visualiser cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applications suggérées"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Applications que vous avez remplacées"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Application par défaut"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Moitié de l\'écran"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proportions de l\'appareil"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'application redémarrera lorsque vous aurez modifié les proportions. Vous pourriez perdre des modifications non enregistrées."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Capteur d\'empreintes digitales"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Notifications lumineuses"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"À propos des notifications lumineuses"</string>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 561dfed..1d501e9 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Après 1 minute"</item>
     <item msgid="1574040255478150028">"Après 5 minutes"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 508906b5..c6c1d49 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -506,7 +506,7 @@
     <string name="lock_settings_picker_update_lock_title" msgid="536853138943415927">"Choisir un nouveau verrouillage de l\'écran"</string>
     <string name="lock_settings_picker_new_profile_lock_title" msgid="2270462215256413800">"Choisir le verrouillage des applis pro"</string>
     <string name="lock_settings_picker_update_profile_lock_title" msgid="5929068163516308927">"Choisir un nouveau verrouillage de profil pro"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Pour plus de sécurité, définissez une méthode secondaire pour déverrouiller l\'écran"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="1105247657304421299">"Pour plus de sécurité, définissez une méthode secondaire pour verrouiller l\'écran"</string>
     <string name="lock_settings_picker_biometric_message" msgid="2609666443527262781">"Choisissez une méthode secondaire pour le verrouillage de l\'écran"</string>
     <string name="lock_settings_picker_admin_restricted_personal_message" msgid="3532653662159888328">"Si vous oubliez le verrouillage de l\'écran, votre administrateur ne peut pas le réinitialiser."</string>
     <string name="lock_settings_picker_admin_restricted_personal_message_action" msgid="5956615234246626264">"Définir un autre verrouillage pour le profil pro"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Partage du Wi‑Fi avec cet appareil…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connexion…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partager le point d\'accès"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmer votre identité"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmer que c\'est bien vous"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mot de passe Wi-Fi : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mot de passe du point d\'accès : <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connexion automatique"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Mot de passe oublié ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Schéma oublié ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Code oublié ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utilisez le schéma de votre appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Saisissez le code de votre appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Saisissez le mot de passe de votre appareil pour continuer"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilisez le schéma de votre profil professionnel pour continuer."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dessinez votre schéma pour continuer."</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Saisissez votre code PIN pour continuer."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Saisissez votre mot de passe pour continuer."</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dessinez votre schéma professionnel pour continuer."</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Saisissez le code PIN de votre profil professionnel pour continuer."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Saisissez le mot de passe du profil professionnel pour continuer."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pour plus de sécurité, utilisez le schéma de l\'appareil"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Le son des appareils multimédias compatibles devient plus immersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Suivi des mouvements de la tête"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Le son change quand vous bougez la tête pour un son plus naturel"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitation du débit de téléchargement du réseau"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurer la limite du débit en entrée de la bande passante réseau, qui est appliquée à tous les réseaux offrant une connectivité Internet"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurer la limitation du débit de téléchargement du réseau"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Désinstaller l\'appli"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Applis installées depuis # mois}one{Applis installées depuis # mois}other{Applis installées depuis # mois}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Applis installées il y a plus de # mois}one{Applis installées il y a plus de # mois}other{Applis installées il y a plus de # mois}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Format"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Sélectionnez un format dans lequel afficher cette application si elle n\'a pas été conçue pour s\'adapter à votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Applis suggérées"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Applis que vous avez ignorées"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Paramètre par défaut de l\'appli"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Plein écran"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Moitié de l\'écran"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format de l\'appareil"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Si vous modifiez le format, l\'application redémarrera. Vous risquez de perdre les modifications non enregistrées."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Lecteur d\'empreinte digitale"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Notifications avec flash"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"À propos des notifications avec flash"</string>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 0a49979..6eafeda 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Tras 1 minuto"</item>
     <item msgid="1574040255478150028">"Tras 5 minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 5801d1d..63636e3 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartindo a wifi con este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartir zona wifi"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica a túa identidade"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verificar que es ti"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Contrasinal da rede wifi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Contrasinal da zona wifi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectar automaticamente"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueciches o contrasinal?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueciches o padrón?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueciches o PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Utiliza o padrón do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Escribe o PIN do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduce o contrasinal do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utiliza o padrón do traballo para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Debuxa o padrón para continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Mete o PIN para continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Mete o contrasinal para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Debuxa o padrón do perfil de traballo para continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Escribe o PIN do traballo para continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduce o contrasinal do traballo para continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Utiliza o padrón do dispositivo para conseguir unha maior seguranza"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O audio dos contidos multimedia compatibles ofréceche unha experiencia máis envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Seguimento da cabeza"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Para ofrecerche unha experiencia máis natural, o audio cambia a medida que moves a cabeza"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Límite de velocidade de descarga da rede"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura o límite de velocidade de entrada da largura de banda da rede, que se aplica a todas as redes que fornecen conectividade a Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar o límite de velocidade de descarga da rede"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Desinstalar aplicación"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplicacións instaladas no último mes}other{Aplicacións instaladas nos últimos # meses}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplicacións instaladas hai máis de # mes}other{Aplicacións instaladas hai máis de # meses}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporción"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Selecciona unha proporción para ver esta aplicación no caso de que non se deseñase para adaptarse ao teu dispositivo (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplicacións recomendadas"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplicacións que ignoraches"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Opción predeterminada da aplicación"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pantalla completa"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Media pantalla"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proporción do dispositivo"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"A aplicación reiniciarase cando cambies a proporción. Podes perder os cambios que non estean gardados."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor de impresión dixital"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Notificacións con luz"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Acerca das notificacións con luz"</string>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index e1457d7..92bf8f6 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 મિનિટ પછી"</item>
     <item msgid="1574040255478150028">"5 મિનિટ પછી"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index aca8cc9..287dca9 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"આ ડિવાઇસ સાથે વાઇ-ફાઇ શેર કરી રહ્યાં છીએ…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"કનેક્ટ થઈ રહ્યું છે…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"હૉટસ્પૉટ શેર કરો"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"એ તમે જ છો તે ચકાસો"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"પોતાની ખાતરી કરો"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"વાઇ-ફાઇનો પાસવર્ડ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"હૉટસ્પૉટનો પાસવર્ડ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ઑટોમૅટિક રીતે કનેક્ટ કરો"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"તમારો પાસવર્ડ ભૂલી ગયાં?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"તમારા પૅટર્નને ભૂલી ગયાં?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"તમારો પિન ભૂલી ગયાં?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"આગળ વધવા માટે તમારી ડિવાઇસ પૅટર્નનો ઉપયોગ કરો"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"આગળ વધવા માટે તમારો ડિવાઇસ પિન દાખલ કરો"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ચાલુ રાખવા માટે તમારા ડિવાઇસનો પાસવર્ડ દાખલ કરો"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ચાલુ રાખવા માટે તમારી કાર્ય પેટર્નનો ઉપયોગ કરો"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ચાલુ રાખવા માટે તમારી પૅટર્ન દોરો"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ચાલુ રાખવા માટે તમારો પિન દાખલ કરો"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ચાલુ રાખવા માટે તમારો પાસવર્ડ દાખલ કરો"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ચાલુ રાખવા માટે તમારી ઑફિસની પ્રોફાઇલ માટેની પૅટર્ન દોરો"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"આગળ વધવા માટે તમારો કાર્ય પિન દાખલ કરો"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ચાલુ રાખવા માટે તમારો કાર્ય પાસવર્ડ દાખલ કરો"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"વધારાની સુરક્ષા માટે, તમારા ઉપકરણની પેટર્નનો ઉપયોગ કરો"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"સુસંગત મીડિયાનો ઑડિયો વધુ ઇમર્સિવ બને છે"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"હેડ ટ્રૅકિંગ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"વધુ નૈસર્ગિક અવાજ માટે, જેમ તમે તમારું માથું હલાવશો તેમ અવાજમાં ફેરફાર થતો જશે"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"નેટવર્કની ડાઉનલોડ કરવાના દરની મર્યાદા"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ઇન્ટરનેટ કનેક્ટિવિટી પ્રદાન કરતા બધા નેટવર્ક પર લાગુ થતી નેટવર્ક બૅન્ડવિડ્થના પ્રવેશવાના દરની મર્યાદા ગોઠવો."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"નેટવર્કના ડાઉનલોડ કરવાના દરની મર્યાદા ગોઠવો"</string>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 3453830..3639bfe 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"एक मिनट बाद"</item>
     <item msgid="1574040255478150028">"पांच मिनट बाद"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index c24caa8..2d62415 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"इस डिवाइस के साथ वाई-फ़ाई शेयर किया जा रहा है…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"कनेक्ट हो रहा है…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हॉटस्पॉट शेयर करें"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"पुष्टि करें कि यह आप ही हैं"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"अपनी पहचान की पुष्टि करें"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"वाई-फ़ाई पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हॉटस्पॉट का पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"अपने-आप कनेक्ट हो जाए"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"अपना पासवर्ड भूल गए हैं?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"अपना पैटर्न भूल गए हैं?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"अपना पिन भूल गए हैं?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"जारी रखने के लिए अपने डिवाइस के पैटर्न का इस्तेमाल करें"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"जारी रखने के लिए अपने डिवाइस का पिन डालें"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"जारी रखने के लिए अपने डिवाइस का पासवर्ड डालें"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"जारी रखने के लिए अपने काम पैटर्न का उपयोग करें"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"जारी रखने के लिए अपना पैटर्न ड्रॉ करें"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"जारी रखने के लिए अपना पिन डालें"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"जारी रखने के लिए अपना पासवर्ड डालें"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"जारी रखने के लिए, अपनी वर्क प्रोफ़ाइल का पैटर्न ड्रॉ करें"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"जारी रखने के लिए अपनी वर्क प्रोफ़ाइल का पिन डालें"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"जारी रखने की लिए, अपने वर्क प्रोफ़ाइल का पासवर्ड डालें"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"अतिरिक्त सुरक्षा के लिए, अपने पैटर्न का इस्तेमाल करें"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"डिवाइस के साथ काम करने वाले मीडिया पर, ऑडियो का आनंद बेहतर तरीके से लिया जा सकता है"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"सिर के हिलने को ट्रैक करें"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"जब आपका सिर उस तरफ़ घूमता है जहां से आवाज़ आ रही है, तब ऑडियो की आवाज़ ज़्यादा बेहतर सुनाई देती है"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"नेटवर्क के लिए तय की गई डाउनलोड करने की दर की सीमा"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"नेटवर्क बैंडविड्थ के इन्ग्रेस डेटा ट्रैफ़िक की दर की सीमा को कॉन्फ़िगर करें. यह उन सभी नेटवर्क पर लागू होती है जो इंटरनेट कनेक्टिविटी देते हैं."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"नेटवर्क के लिए तय की गई डाउनलोड करने की दर की सीमा को कॉन्फ़िगर करें"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ऐप्लिकेशन अनइंस्टॉल करें"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}one{पिछले # महीने में इंस्टॉल किए गए ऐप्लिकेशन}other{पिछले # महीनों में इंस्टॉल किए गए ऐप्लिकेशन}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}one{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}other{ऐप्लिकेशन, # महीने से भी पहले इंस्टॉल किए गए}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"आसपेक्ट रेशियो"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"अगर आपके <xliff:g id="DEVICE_NAME">%1$s</xliff:g> की स्क्रीन में ऐप्लिकेशन का आसपेक्ट रेशियो फ़िट नहीं हो रहा है, तो ऐप्लिकेशन के हिसाब से इसे बदलें"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"सुझाए गए ऐप्लिकेशन"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"वे ऐप्लिकेशन जिन्हें आपने ओवरराइड किया है"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ऐप्लिकेशन का डिफ़ॉल्ट आसपेक्ट रेशियो"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"फ़ुल स्क्रीन"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"आधी स्क्रीन"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"डिवाइस का आसपेक्ट रेशियो"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) बदलने पर ऐप्लिकेशन रीस्टार्ट हो जाएगा. इससे वे बदलाव मिट सकते हैं जिन्हें सेव नहीं किया गया है."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"फ़िंगरप्रिंट सेंसर"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"फ़्लैश के साथ मिलने वाली सूचनाएं"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"फ़्लैश के साथ मिलने वाली सूचनाओं की जानकारी"</string>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index b3545d5..9ce91fe 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Nakon 1 minute"</item>
     <item msgid="1574040255478150028">"Nakon 5 minuta"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 47f2d38..f60504c 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Dijeljenje Wi-Fija s ovim uređajem…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezivanje…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dijelite žarišnu točku"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potvrdite da ste to vi"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potvrdite da ste to vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Zaporka Wi-Fi mreže: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Zaporka žarišne točke: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatsko povezivanje"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zaboravili ste zaporku?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zaboravili ste uzorak?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zaboravili ste PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Unesite uzorak uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Unesite PIN uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Unesite zaporku uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Unesite uzorak radnog profila da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Nacrtajte uzorak da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Unesite PIN da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Unesite zaporku da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Nacrtajte radni uzorak da biste nastavili"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Unesite poslovni PIN da biste nastavili"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Unesite zaporku radnog profila da biste nastavili"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Za dodatnu sigurnost upotrijebite uzorak uređaja"</string>
@@ -4666,6 +4666,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk s kompatibilnih medija postaje realističniji"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Praćenje glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvuk se mijenja kako pomičete glavu kako bi prirodnije zvučao"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Vrsta audiouređaja"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Nepoznato"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Zvučnik"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Slušalice"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Komplet za auto"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Drugo"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograničenje brzine preuzimanja s mreže"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte ograničenje ulazne brzine propusnosti mreže koje se primjenjuje na sve mreže koje pružaju internetsku vezu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguracija ograničenja brzine preuzimanja s mreže"</string>
@@ -4698,24 +4704,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Deinstaliraj aplikaciju"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije instalirane u posljednji # mjesec}one{Aplikacije instalirane u posljednji # mjesec}few{Aplikacije instalirane u posljednja # mjeseca}other{Aplikacije instalirane u posljednjih # mjeseci}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije instalirane prije više od # mjeseca}one{Aplikacije instalirane prije više od # mjeseca}few{Aplikacije instalirane prije više od # mjeseca}other{Aplikacije instalirane prije više od # mjeseci}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Omjer slike"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Odaberite omjer slike za pregled ove aplikacije ako nije osmišljena da odgovara uređaju <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predložene aplikacije"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije koje ste nadjačali"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Zadano za aplikaciju"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Cijeli zaslon"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Pola zaslona"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Omjer slike uređaja"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija će se ponovno pokrenuti kad promijenite omjer slike. Možda ćete izgubiti nespremljene promjene."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor otiska prsta"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Bljeskajuće obavijesti"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"O bljeskajućim obavijestima"</string>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index 5651324..c76088e 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 perc után"</item>
     <item msgid="1574040255478150028">"5 perc után"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 968d3ba..9df55c8 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi megosztása ezzel az eszközzel…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Csatlakozás…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot megosztása"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Igazolja, hogy Ön az"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Igazolja, hogy Ön az"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-jelszó: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot jelszava: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatikus csatlakozás"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Elfelejtette jelszavát?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Elfelejtette mintáját?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Elfelejtette PIN-kódját?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"A folytatáshoz használja eszköze feloldó mintáját"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"A folytatáshoz írja be eszköze PIN-kódját"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"A folytatáshoz írja be eszköze jelszavát"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"A folytatáshoz használja munkaprofil-feloldási mintáját"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"A folytatáshoz rajzolja le a mintáját"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"A folytatáshoz adja meg PIN-kódját"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"A folytatáshoz adja meg a jelszavát"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"A folytatáshoz rajzolja le munkaprofilja mintáját"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"A folytatáshoz írja be munkaprofilja PIN-kódját"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"A folytatáshoz írja be munkaprofilja jelszavát"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"A nagyobb biztonság érdekében használja az eszköz feloldó mintáját"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"A kompatibilis médiatartalmak hangja térhatású"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Fejkövetés"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Feje mozgatásával változik a hang, hogy természetesebbnek tűnjön"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Hálózat letöltési sebességére vonatkozó korlátozás"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurálhatja a hálózati sávszélesség beáramlási értékének korlátozását, amely az internetkapcsolatot biztosító minden hálózatra vonatkozik."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Hálózat letöltési sebességére vonatkozó korlátozás konfigurálása"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Alkalmazás eltávolítása"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Az elmúlt # hónapban telepített alkalmazások}other{Az elmúlt # hónapban telepített alkalmazások}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Az alkalmazások # hónapnál régebben lettek telepítve}other{Az alkalmazások # hónapnál régebben lettek telepítve}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Méretarány"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Válasszon méretarányt az alkalmazás megtekintéséhez, amennyiben nem megfelelő a méretaránya az Ön <xliff:g id="DEVICE_NAME">%1$s</xliff:g> eszközén."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Javasolt alkalmazások"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Ön által felülírt alkalmazások"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Alkalmazás alapértelmezett értéke"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Teljes képernyő"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Fél képernyő"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Eszköz méretaránya"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Az alkalmazás újraindul a méretarány módosításakor. A nem mentett módosításai elveszhetnek."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Ujjlenyomat-érzékelő"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Villogó értesítések"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"A villogó értesítésekről"</string>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index fb38c9b..7696f74 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 րոպեից"</item>
     <item msgid="1574040255478150028">"5 րոպեից"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 64dd30d..010d9e6 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Սարքը միանում է Wi‑Fi-ին…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Միացում…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ընդհանուր թեժ կետ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Հաստատեք, որ դա դուք եք"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Հաստատեք ձեր ինքնությունը"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi-ի գաղտնաբառ՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Թեժ կետի գաղտնաբառը՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ավտոմատ միացում"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Մոռացել եմ գաղտնաբառը"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Մոռացել եմ նախշը"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Մոռացել եմ PIN-ը"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Շարունակելու համար օգտագործեք սարքի նախշը"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Շարունակելու համար մուտքագրեք սարքի PIN կոդը"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Շարունակելու համար մուտքագրեք սարքի գաղտնաբառը"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Շարունակելու համար օգտագործեք աշխատանքային պրոֆիլի նախշը"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Շարունակելու համար գծեք ձեր նախշը"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Շարունակելու համար մուտքագրեք ձեր PIN կոդը"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Շարունակելու համար մուտքագրեք ձեր գաղտնաբառը"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Շարունակելու համար գծեք ձեր աշխատանքային պրոֆիլի նախշը"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Շարունակելու համար մուտքագրեք աշխատանքային պրոֆիլի PIN կոդը"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Շարունակելու համար մուտքագրեք աշխատանքային պրոֆիլի գաղտնաբառը"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Լրացուցիչ ապահովության համար օգտագործեք ձեր սարքի նախշը"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Համատեղելի մեդիա սարքերի ձայնը դառնում է ավելի արտահայտիչ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Գլխի շարժումների հետագծում"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Երբ դուք շարժում եք ձեր գլուխը, ձայնը դառնում է ավելի բնական"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Մուտքային թրաֆիկի սահմանաչափ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Կարգավորեք մուտքային թրաֆիկի թողունակության սահմանաչափ։ Այս կարգավորումը կիրառվում է բոլոր ցանցերի նկատմամբ, որոնք տրամադրում են ինտերնետ կապ։"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Կարգավորեք մուտքային թրաֆիկի սահմանաչափ"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Ապատեղադրել հավելվածը"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}one{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}other{Հավելվածներ, որոնք տեղադրվել են վերջին # ամսվա ընթացքում}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}one{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}other{Հավելվածներ, որոնք տեղադրվել են ավելի քան # ամիս առաջ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Կողմերի հարաբերակցություն"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Եթե հավելվածը օպտիմալացված չէ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի համար, ապա ընտրեք կողմերի համապատասխան հարաբերակցությունը։"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Առաջարկվող հավելվածներ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Հավելվածներ, որոնց կողմերի հարաբերակցությունը փոխարինել եք"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Հավելվածի կանխադրված տարբերակ"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Լիաէկրան"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Կիսաէկրան"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Սարքի կողմերի հարաբերակցությունը"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Երբ թարմացնեք կողմերի հարաբերակցությունը, հավելվածը կվերագործարկվի։ Որոշ փոփոխություններ կարող են չպահպանվել։"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Մատնահետքերի սկաներ"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Թարթող ծանուցումներ"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Թարթող ծանուցումների մասին"</string>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 15ed51f..f7657a5 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Setelah 1 menit"</item>
     <item msgid="1574040255478150028">"Setelah 5 menit"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 7488c57..47bf764 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Membagikan Wi‑Fi kepada perangkat ini…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Menyambungkan…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Bagikan hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifikasi bahwa ini adalah Anda"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifikasi bahwa ini memang Anda"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Sandi Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Sandi hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Hubungkan otomatis"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Lupa sandi?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Lupa pola?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Lupa PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gunakan pola perangkat untuk melanjutkan"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Masukkan PIN perangkat untuk melanjutkan"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Masukkan sandi perangkat untuk melanjutkan"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gunakan pola profil kerja untuk melanjutkan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Gambar pola untuk melanjutkan"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Masukkan PIN untuk melanjutkan"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Masukkan sandi untuk melanjutkan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Gambar pola profil kerja untuk melanjutkan"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Masukkan PIN profil kerja untuk melanjutkan"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Masukkan sandi profil kerja untuk melanjutkan"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Untuk keamanan tambahan, gunakan pola perangkat"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio dari perangkat media yang kompatibel menjadi lebih imersif"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pelacakan gerak kepala"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio akan berubah saat Anda menggerakkan kepala agar terdengar lebih alami"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Batas kecepatan download jaringan"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurasi batas kecepatan masuk bandwidth jaringan yang diterapkan ke semua jaringan yang menyediakan koneksi internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurasi batas kecepatan download jaringan"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Uninstal aplikasi"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikasi yang diinstal dalam # bulan terakhir}other{Aplikasi yang diinstal dalam # bulan terakhir}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikasi diinstal lebih dari # bulan lalu}other{Aplikasi diinstal lebih dari # bulan lalu}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Rasio aspek"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Pilih rasio aspek untuk melihat aplikasi ini jika aplikasi belum didesain agar sesuai dengan <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplikasi yang disarankan"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikasi yang rasio aspeknya diganti"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Default aplikasi"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Layar penuh"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Setengah layar"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Rasio aspek perangkat"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikasi akan dimulai ulang saat Anda mengubah rasio aspek. Anda mungkin akan kehilangan perubahan yang belum disimpan."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor sidik jari"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Notifikasi flash"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Tentang notifikasi flash"</string>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index d6ece01..fe71916 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Eftir 1 mínútu"</item>
     <item msgid="1574040255478150028">"Eftir 5 mínútur"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index f865217..188af27 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deilir Wi‑Fi með þessu tæki…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Tengist…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Deila heitum reit"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Staðfestu að þetta sért þú"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Staðfestu hver þú ert"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi aðgangsorð: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Aðgangsorð fyrir heitan reit: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Sjálfvirk tenging"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Gleymt aðgangsorð?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Gleymdirðu mynstrinu?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Gleymdirðu PIN-númerinu?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Teiknaðu mynstur tækisins til að halda áfram"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Sláðu inn PIN-númer tækisins til að halda áfram"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Sláðu inn aðgangsorðið þitt fyrir tækið til að halda áfram"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Notaðu vinnumynstrið þitt til að halda áfram"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teiknaðu mynstrið þitt til að halda áfram"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Sláðu inn PIN-númerið þitt til að halda áfram."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Sláðu inn aðgangsorðið þitt til að halda áfram"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teiknaðu mynstrið fyrir vinnuprófílinn til að halda áfram"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Sláðu inn PIN-númerið þitt fyrir vinnuna til að halda áfram"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Sláðu inn vinnuaðgangsorðið þitt til að halda áfram"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Notaðu mynstur tækisins til að gæta fyllsta öryggis"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Hljómgæði samhæfs efnis verða betri"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rakning höfuðs"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Hljóðið aðlagast höfuðhreyfingum til að allt hljómi sem eðlilegast"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Niðurhalsmörk netkerfis"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stilla inntaksmörk bandvíddar netkerfis sem notuð eru fyrir öll netkerfi sem veita nettengingu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Stilla niðurhalsmörk netkerfis"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Fjarlægja forrit"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Forrit sem voru sett upp á síðasta # mánuði}one{Forrit sem voru sett upp á síðasta # mánuði}other{Forrit sem voru sett upp á síðustu # mánuðum}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Forrit sem voru sett upp fyrir # mánuði}one{Forrit sem voru sett upp fyrir # mánuði}other{Forrit sem voru sett upp fyrir # mánuðum}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Myndhlutfall"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Veldu myndhlutfall fyrir þetta forrit ef það er ekki sniðið að <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Tillögur að forritum"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Forrit sem þú hefur hnekkt"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Sjálfgefið í forriti"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Allur skjárinn"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Hálfur skjárinn"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Myndhlutfall tækis"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Forritið verður endurræst þegar þú breytir myndhlutfallinu. Óvistaðar breytingar gætu glatast."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingrafaralesari"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Flasstilkynningar"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Um flasstilkynningar"</string>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index b246a4c..903b71b 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Dopo 1 minuto"</item>
     <item msgid="1574040255478150028">"Dopo 5 minuti"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 37ef738..c62911e 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Condivisione della rete Wi‑Fi con questo dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Connessione…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Condividi hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifica la tua identità"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Dimostra che sei tu"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Password Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Password hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Connessione automatica"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Hai dimenticato la password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Hai dimenticato la sequenza?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Hai dimenticato il PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Inserisci la sequenza del dispositivo per continuare"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Per continuare devi inserire il PIN del dispositivo"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Per continuare devi inserire la password del dispositivo"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Per continuare devi utilizzare la sequenza del tuo profilo di lavoro"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Inserisci la sequenza per continuare"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Inserisci il PIN per continuare"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Inserisci la password per continuare"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Inserisci la sequenza di lavoro per continuare"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Per continuare devi inserire il PIN del tuo profilo di lavoro"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Per continuare devi inserire la password del tuo profilo di lavoro"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Per maggiore sicurezza, usa la sequenza del dispositivo"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"L\'audio dei dispositivi multimediali compatibili diventa più immersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Rilevamento dei movimenti della testa"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"L\'audio cambia in base ai movimenti della testa per sembrare più naturale"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limite di velocità di download della rete"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configura il limite di velocità in entrata della larghezza di banda della rete applicato a tutte le reti che forniscono una connessione a Internet"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configura il limite di velocità di download della rete"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Disinstalla app"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{App installate nell\'ultimo mese}other{App installate negli ultimi # mesi}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{App installate più di # mese fa}other{App installate più di # mesi fa}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Proporzioni"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Scegli le proporzioni per visualizzare questa app se non è stata progettata per adattarsi al tuo dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"App consigliate"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"App sottoposte a override"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Valore predefinito dell\'app"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Schermo intero"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Metà schermo"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Proporzioni del dispositivo"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"L\'app si riavvierà quando modifichi le proporzioni. Potresti perdere le modifiche non salvate."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensore di impronte digitali"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Flash di notifica"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Informazioni sul flash di notifica"</string>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 9d016bb..32727df 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"לאחר דקה אחת"</item>
     <item msgid="1574040255478150028">"לאחר 5 דקות"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 8f78e68..4e24907 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -255,7 +255,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="6054103701535557342">"בטעינה…"</string>
     <string name="location_settings_footer_general" msgid="1040507068701188821">"אפליקציות עם ההרשאה \"מכשירים בקרבת מקום\" יכולות להעריך את המיקום היחסי של המכשירים המחוברים."</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"הגישה למיקום מושבתת עבור אפליקציות ושירותים. אם מתקשרים למספר חירום או שולחים אליו הודעת טקסט, ייתכן שפרטי מיקום המכשיר יישלחו לצוותי חירום."</string>
-    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"קריאת מידע נוסף על הגדרות מיקום."</string>
+    <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"למידע נוסף על הגדרות המיקום"</string>
     <string name="account_settings_title" msgid="9138880127246241885">"חשבונות"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"אבטחה"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"הצפנה ופרטי כניסה"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"‏מתבצע שיתוף Wi‑Fi עם מכשיר זה…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"בתהליך התחברות…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"שיתוף של נקודת אינטרנט"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"אימות זהותך"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"אימות הזהות שלך"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"‏סיסמת ה-Wi‑Fi היא: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"סיסמה של נקודה לשיתוף אינטרנט: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"חיבור אוטומטי"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"שכחת סיסמה?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"שכחת את קו ביטול הנעילה?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"שכחת את קוד האימות?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"יש להשתמש בקו ביטול הנעילה של המכשיר כדי להמשיך"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"כדי להמשיך צריך להקיש את קוד הגישה למכשיר"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"יש להזין את סיסמת המכשיר כדי להמשיך"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"אפשר להשתמש בקו ביטול הנעילה בעבודה כדי להמשיך"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"כדי להמשיך, צריך להזין את קו ביטול הנעילה"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"כדי להמשיך, צריך להזין את קוד האימות"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"כדי להמשיך, צריך להזין את הסיסמה"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"כדי להמשיך, צריך להזין את קו ביטול הנעילה של פרופיל העבודה"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"יש להזין את קוד הגישה בעבודה כדי להמשיך"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"יש להזין את הסיסמה בעבודה כדי להמשיך"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"מטעמי אבטחה, עליך להזין את קו ביטול הנעילה"</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"אודיו שמגיע ממכשירי מדיה תואמים יוצר חוויה עשירה יותר"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"מעקב אחר תנועות הראש"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"האודיו משתנה בהתאם לתנועות הראש כדי שיישמע טבעי יותר"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"הגבלה לקצב ההורדה ברשת"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"הגדרת הגבלה לקצב של תעבורת הנתונים הנכנסת ברוחב הפס של הרשת. ההגבלה תחול על כל הרשתות שמאפשרות חיבור לאינטרנט."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"הגדרת הגבלה לקצב ההורדה ברשת"</string>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index d3cadf8..8ae46d9 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分後"</item>
     <item msgid="1574040255478150028">"5 分後"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index b9b5c83..c26045a 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -241,7 +241,7 @@
     <string name="zone_time_type_standard" msgid="6865420715430680352">"標準時間"</string>
     <string name="zone_menu_by_region" msgid="2963565278710225652">"地域で選択"</string>
     <string name="zone_menu_by_offset" msgid="1257702747474426745">"UTC オフセットで選択"</string>
-    <string name="lock_after_timeout" msgid="8682769000437403444">"画面が自動的に消灯してからロックまでの時間"</string>
+    <string name="lock_after_timeout" msgid="8682769000437403444">"画面が自動消灯してからロックまでの時間"</string>
     <string name="lock_after_timeout_summary" msgid="4869265514658147304">"タイムアウトから <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>"</string>
     <string name="lock_immediately_summary_with_exception" msgid="40819611828339044">"画面消灯の直後にロック(<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> がロック解除を管理している場合を除く)"</string>
     <string name="lock_after_timeout_summary_with_exception" msgid="3441806647509073124">"画面が自動的に消灯してから<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g>後にロック(<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> がロック解除を管理している場合を除く)"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi をこのデバイスと共有しています…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"接続しています…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"アクセス ポイントの共有"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"本人確認"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"本人確認"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi パスワード: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"アクセス ポイントのパスワード: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動接続"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"パスワードを忘れた場合"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"パターンを忘れた場合"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN を忘れた場合"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"続行するにはロック解除のパターンを入力してください"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"続行するにはデバイスの PIN を入力してください"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"続行するにはデバイスのパスワードを入力してください"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"仕事用のパターンを使って続行します"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"続行するにはパターンを入力してください"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"続行するには PIN を入力してください"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"続行するにはパスワードを入力してください"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"続行するには仕事用のパターンを入力してください"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"続行するには仕事用の PIN を入力してください"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"続行するには仕事用のパスワードを入力してください"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"セキュリティ強化のため、デバイスのパターンを入力してください"</string>
@@ -2802,7 +2802,7 @@
     <string name="preferred_network_type_summary" msgid="8786291927331323061">"LTE(推奨)"</string>
     <string name="mms_message_title" msgid="6624505196063391964">"MMS メッセージ"</string>
     <string name="mms_message_summary" msgid="2855847140141698341">"モバイルデータが OFF のときに送受信します"</string>
-    <string name="auto_data_switch_title" msgid="5862200603753603464">"モバイルデータに自動的に切り替えます"</string>
+    <string name="auto_data_switch_title" msgid="5862200603753603464">"モバイルデータを自動的に切替"</string>
     <string name="auto_data_switch_summary" msgid="1934340931995429057">"このネットワークのほうが接続が安定している場合、こちらを一時的に使用します"</string>
     <string name="work_sim_title" msgid="8999872928646924429">"仕事用SIM"</string>
     <string name="user_restrictions_title" msgid="4068914244980335993">"アプリとコンテンツへのアクセス"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"対応するメディアを臨場感あふれる音声でお楽しみいただけます"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ヘッド トラッキング"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"より自然なサウンドになるよう頭の動きに合わせて音声が変化します"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"オーディオ システムのタイプ"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"スピーカー"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ヘッドフォン"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車載キット"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"その他"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ネットワーク ダウンロード速度制限"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"インターネット接続を提供するすべてのネットワークに対して、受信速度を制限します。"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ネットワーク ダウンロード速度制限の設定"</string>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index d101086..97bddd7 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 წუთის შემდეგ"</item>
     <item msgid="1574040255478150028">"5 წუთის შემდეგ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index d1bb73f..77f1f9b 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ზიარდება Wi‑Fi ამ მოწყობილობასთან…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"მიმდინარეობს დაკავშირება…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"უსადენო ქსელის გაზიარება"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"დაადასტურეთ, რომ თქვენ ხართ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"დაადასტურეთ, რომ თქვენ ხართ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi ქსელის პაროლი: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"უსადენო ქსელის პაროლი: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ავტოდაკავშირება"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"პაროლი დაგავიწყდათ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"დაგავიწყდათ ნიმუში?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"დაგავიწყდათ PIN-კოდი?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"გასაგრძელებლად, გამოიყენეთ თქვენი მოწყობილობის ნიმუში"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"გასაგრძელებლად, შეიყვანეთ თქვენი მოწყობილობის PIN-კოდი"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"გასაგრძელებლად, შეიყვანეთ თქვენი მოწყობილობის პაროლი"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"გასაგრძელებლად, გამოიყენეთ თქვენი სამსახურის ნიმუში"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"გასაგრძელებლად მოხაზეთ თქვენი ნიმუში"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"გასაგრძელებლად შეიყვანეთ თქვენი PIN-კოდი"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"გასაგრძელებლად შეიყვანეთ თქვენი პაროლი"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"გასაგრძელებლად მოხაზეთ თქვენი სამსახურის ნიმუში"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"გასაგრძელებლად, შეიყვანეთ თქვენი სამსახურის PIN-კოდი"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"გასაგრძელებლად, შეიყვანეთ თქვენი სამსახურის პაროლი"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"დამატებითი უსაფრთხოებისთვის, გამოიყენეთ მოწყობილობის განმბლოკავი ნიმუში"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"თავსებადი მედიის ხმა უფრო იმერსიული ხდება"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"თავის მოძრაობაზე თვალის დევნება"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"აუდიო იცვლება თქვენი თავის მოძრაობასთან ერთად"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"აუდიო მოწყობილობის ტიპი"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"უცნობი"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"დინამიკი"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ყურსასმენები"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"მანქანის ნაკრები"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"სხვა"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ქსელიდან ჩამოტვირთვისას სიჩქარის შეზღუდვა"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"დააყენეთ შემავალი ქსელის გამტარუნარიანობის შეზღუდვა, რომელიც ეხება ინტერნეტთან კავშირის უზრუნველმყოფ ყველა ქსელს."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"დააყენეთ ქსელიდან ჩამოტვირთვისას სიჩქარის შეზღუდვა"</string>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 1970543..9e39230 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 минуттан кейін"</item>
     <item msgid="1574040255478150028">"5 минуттан кейін"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 0977881..614f3ab 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Осы құрылғымен Wi‑Fi байланысы бөлісілуде…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Жалғануда…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Хотспотты бөлісу"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Бұл өзіңіз екенін растаңыз"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Бұл сіз екеніңізді растаңыз"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Хотспот құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Aвтоматты жалғау"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Құпия сөзді ұмытып қалдыңыз ба?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Өрнекті қалдыңыз ба?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN кодын ұмытып қалдыңыз ба?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Жалғастыру үшін құрылғының құлып өрнегін пайдаланыңыз"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Жалғастыру үшін құрылғы PIN кодын енгізіңіз."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Жалғастыру үшін құрылғы құпия сөзін енгізіңіз"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Жалғастыру үшін жұмыс өрнегін пайдаланыңыз"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Жалғастыру үшін өрнекті енгізіңіз."</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Жалғастыру үшін PIN кодын енгізіңіз."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Жалғастыру үшін құпия сөзді енгізіңіз."</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Жалғастыру үшін жұмыс профилінің өрнегін енгізіңіз."</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Жалғастыру үшін жұмыс PIN кодын енгізіңіз"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Жалғастыру үшін жұмыс құпия сөзін енгізіңіз"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Қосымша қауіпсіздік үшін құрылғыңыздың өрнегін пайдаланыңыз"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Дыбыс үйлесімді медиақұрылғылардан иммерсивті болып шығады."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Бас қимылын қадағалау"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Басыңызды қозғалтқан кезде дыбыс өзгеріп, табиғи шығады."</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Желі арқылы жүктеп алу жылдамдығының шегі"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернет байланысын қамтамасыз ететін барлық желіге қолданылатын кіріс трафикті өткізу жылдамдығының шегін конфигурациялайды."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Желі арқылы жүктеп алу жылдамдығының шегін конфигурациялау"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Қолданбаны жою"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Соңғы # айда орнатылған қолданбалар}other{Соңғы # айда орнатылған қолданбалар}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# айдан бұрын орнатылған қолданбалар}other{# айдан бұрын орнатылған қолданбалар}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Арақатынас"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Бұл қолданба <xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына арналып жасалмаған болса, оны көру үшін арақатынасты таңдаңыз."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ұсынылған қолданбалар"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Қайта анықталған қолданбалар"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Әдепкі қолданба"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Толық экран"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Жартылай экран"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Құрылғы арақатынасы"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Арақатынасты өзгерткен кезде қолданба өшіп қосылады. Сақталмаған өзгерістерді жоғалтуыңыз мүмкін."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Саусақ ізін оқу сканері"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Жарқылды хабарландырулар"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Жарқылды хабарландырулар туралы"</string>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index e460e2f..e5537c9 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"បន្ទាប់ពី 1 នាទី"</item>
     <item msgid="1574040255478150028">"បន្ទាប់ពី 5 នាទី"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index c449e7e..86f0dfc 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"កំពុង​ចែករំលែក Wi‑Fi ជាមួយ​ឧបករណ៍​នេះ…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"កំពុង​ភ្ជាប់…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ចែករំលែក​ហតស្ប៉ត"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ផ្ទៀងផ្ទាត់​ថាគឺ​ជាអ្នក"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ផ្ទៀងផ្ទាត់ថាជាអ្នក"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ពាក្យសម្ងាត់ Wi‑Fi៖ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ពាក្យសម្ងាត់​ហតស្ប៉ត៖ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ភ្ជាប់ដោយ​ស្វ័យប្រវត្តិ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ភ្លេចពាក្យសម្ងាត់​របស់អ្នកឬ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ភ្លេចលំនាំ​របស់អ្នកឬ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ភ្លេចកូដ PIN របស់អ្នកឬ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ប្រើលំនាំឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"បញ្ចូលកូដ PIN ឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"បញ្ចូលពាក្យសម្ងាត់ឧបករណ៍របស់អ្នកដើម្បីបន្ត"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ប្រើលំនាំការងាររបស់អ្នកដើម្បីបន្ត"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"គូរលំនាំរបស់អ្នកដើម្បីបន្ត"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"បញ្ចូលកូដ PIN របស់អ្នក​ដើម្បីបន្ត"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"បញ្ចូលពាក្យសម្ងាត់​របស់អ្នកដើម្បីបន្ត"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"គូរលំនាំការងាររបស់អ្នកដើម្បីបន្ត"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"បញ្ចូលកូដ PIN ការងាររបស់អ្នកដើម្បីបន្ត"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"បញ្ចូលពាក្យសម្ងាត់ការងាររបស់អ្នកដើម្បីបន្ត"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ដើម្បី​ទទួលបាន​សុវត្ថិភាព​បន្ថែម សូម​ប្រើប្រាស់​លំនាំ​ឧបករណ៍​របស់អ្នក"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"សំឡេងពីមេឌៀដែលត្រូវគ្នាកាន់តែធ្វើឱ្យជក់អារម្មណ៍"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ការតាមដានក្បាល"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"សំឡេងប្រែប្រួល នៅពេលអ្នកធ្វើចលនាក្បាលរបស់អ្នក ដើម្បីធ្វើឱ្យសំឡេងកាន់តែដូចធម្មជាតិ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ដែនកំណត់នៃអត្រាទាញយកលើបណ្ដាញ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"កំណត់រចនាសម្ព័ន្ធដែនកំណត់នៃអត្រាចូលរបស់កម្រិតបញ្ជូនលើបណ្ដាញ ដែលត្រូវអនុវត្តចំពោះបណ្ដាញទាំងអស់ដែលផ្ដល់ការតភ្ជាប់អ៊ីនធឺណិត។"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"កំណត់រចនាសម្ព័ន្ធដែនកំណត់នៃអត្រាទាញយកលើបណ្ដាញ"</string>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 11e4cea..f83bb44 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ನಿಮಿಷದ ನಂತರ"</item>
     <item msgid="1574040255478150028">"5 ನಿಮಿಷಗಳ ನಂತರ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 90bd0c8..857b31b 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ಈ ಸಾಧನದೊಂದಿಗೆ ವೈ-ಫೈ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"ಸಂಪರ್ಕಿಸುತ್ತಿದೆ…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ಇದು ನೀವೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ಇದು ನೀವೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ವೈ-ಫೈ ಪಾಸ್‌ವರ್ಡ್: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಪಾಸ್‌ವರ್ಡ್: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ಸ್ವಯಂ-ಕನೆಕ್ಟ್"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಮರೆತುಹೋಗಿರುವಿರಾ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ನಿಮ್ಮ ಪ್ಯಾಟರ್ನ್ ಮರೆತಿದ್ದೀರಾ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ನಿಮ್ಮ ಪಿನ್‌ ಅನ್ನು ಮರೆತಿದ್ದೀರಾ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ಮುಂದುವರಿಯಲು ನಿಮ್ಮ ಸಾಧನದ ಪ್ಯಾಟರ್ನ್ ಬಳಸಿ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಸಾಧನದ ಪಿನ್‌ ನಮೂದಿಸಿ"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಸಾಧನದ ಪಾಸ್‌ವರ್ಡ್‌ ನಮೂದಿಸಿ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಕೆಲಸದ ಪ್ಯಾಟರ್ನ್ ಬಳಸಿ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ಮುಂದುವರಿಯಲು ನಿಮ್ಮ ಪ್ಯಾಟರ್ನ್ ನಮೂದಿಸಿ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಪಿನ್ ನಮೂದಿಸಿ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಕೆಲಸದ ಪ್ಯಾಟರ್ನ್ ನಮೂದಿಸಿ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಕೆಲಸದ ಪಿನ್ ನಮೂದಿಸಿ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ಮುಂದುವರಿಸಲು ನಿಮ್ಮ ಕೆಲಸದ ಪಾಸ್‌ವರ್ಡ್ ನಮೂದಿಸಿ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ಹೆಚ್ಚಿನ ಸುರಕ್ಷತೆಗಾಗಿ, ನಿಮ್ಮ ಸಾಧನದ ಪ್ಯಾಟರ್ನ್‌ ಬಳಸಿ"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ಹೊಂದಾಣಿಕೆಯಾಗುವ ಮಾಧ್ಯಮಗಳ ಆಡಿಯೋ ಇನ್ನಷ್ಟು ತಲ್ಲೀನವಾಗಿ ಕೇಳಿಸುತ್ತದೆ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ಹೆಡ್ ಟ್ರ್ಯಾಕಿಂಗ್"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ಆಡಿಯೋ ಇನ್ನಷ್ಟು ನೈಜವಾಗಿ ಕೇಳಿಸಲು ನಿಮ್ಮ ತಲೆಯನ್ನು ಸರಿಸಿದಾಗಲೆಲ್ಲಾ ಆಡಿಯೋ ಬದಲಾಗುತ್ತದೆ"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ಆಡಿಯೋ ಸಾಧನದ ಪ್ರಕಾರ"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ಅಪರಿಚಿತ"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ಸ್ಪೀಕರ್"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ಹೆಡ್‌ಫೋನ್‌ಗಳು"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ಕಾರ್ ಕಿಟ್"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ಇತರೆ"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ನೆಟ್‌ವರ್ಕ್ ಡೌನ್‌ಲೋಡ್ ದರದ ಮಿತಿ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ಇಂಟರ್ನೆಟ್ ಕನೆಕ್ಟಿವಿಟಿಯನ್ನು ಒದಗಿಸುವ ಎಲ್ಲಾ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಗೆ ಅನ್ವಯಿಸಲಾಗುವ ನೆಟ್‌ವರ್ಕ್ ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ ಪ್ರವೇಶ ದರದ ಮಿತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ನೆಟ್‌ವರ್ಕ್ ಡೌನ್‌ಲೋಡ್ ದರದ ಮಿತಿಯನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ"</string>
@@ -4697,24 +4703,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ಆ್ಯಪ್‌ ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು}one{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು}other{ಕಳೆದ # ತಿಂಗಳಲ್ಲಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದ ಆ್ಯಪ್‌ಗಳು}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# ತಿಂಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}one{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}other{# ತಿಂಗಳುಗಳ ಹಿಂದೆ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿದೆ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"ದೃಶ್ಯಾನುಪಾತ"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ಈ ಆ್ಯಪ್ ಅನ್ನು ನಿಮ್ಮ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ಗೆ ಸರಿಹೊಂದುವಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಿರದಿದ್ದರೆ ಇದನ್ನು ವೀಕ್ಷಿಸಲು ದೃಶ್ಯಾನುಪಾತವೊಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ಸೂಚಿಸಿರುವ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ನೀವು ಅತಿಕ್ರಮಿಸಿರುವ ಆ್ಯಪ್‌ಗಳು"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ಆ್ಯಪ್ ಡೀಫಾಲ್ಟ್"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ಪೂರ್ಣ ಸ್ಕ್ರೀನ್"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ಅರ್ಧ ಸ್ಕ್ರೀನ್"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ಸಾಧನದ ದೃಶ್ಯಾನುಪಾತ"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ನೀವು ದೃಶ್ಯಾನುಪಾತವನ್ನು ಬದಲಾಯಿಸಿದಾಗ ಆ್ಯಪ್ ಮರುಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ಸೇವ್ ಮಾಡದಿರುವ ಬದಲಾವಣೆಗಳನ್ನು ನೀವು ಕಳೆದುಕೊಳ್ಳಬಹುದು."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ಫಿಂಗರ್‌ಪ್ರಿಂಟ್ ಸೆನ್ಸರ್"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ಫ್ಲಾಶ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳು"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ಫ್ಲ್ಯಾಶ್ ನೋಟಿಫಿಕೇಶನ್‌ಗಳ ಕುರಿತು"</string>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index e8bd555..3d1d00d 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1분 후"</item>
     <item msgid="1574040255478150028">"5분 후"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index ac86578..1305480 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"이 기기와 Wi‑Fi 공유 중…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"연결 중…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"핫스팟 공유"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"본인 인증하기"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"본인 확인"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 비밀번호: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"핫스팟 비밀번호: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"자동 연결"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"비밀번호를 잊으셨나요?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"패턴을 잊으셨나요?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN을 잊으셨나요?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"계속하려면 기기 패턴을 사용하세요."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"계속하려면 기기 PIN을 입력하세요."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"계속하려면 기기 비밀번호를 입력하세요."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"계속하려면 직장 패턴을 사용하세요."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"계속 진행하려면 패턴을 그리세요."</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"계속 진행하려면 PIN을 입력하세요."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"계속 진행하려면 비밀번호를 입력하세요."</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"계속 진행하려면 직장 패턴을 그리세요."</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"계속하려면 직장 PIN을 입력하세요."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"계속하려면 직장 비밀번호를 입력하세요."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"보안을 강화하려면 기기 패턴을 사용하세요."</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"호환되는 미디어에서 더 몰입감 넘치는 오디오를 경험할 수 있습니다."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"머리 추적"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"머리를 움직이면 오디오가 변경되어 더 자연스러운 소리를 들을 수 있습니다."</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"네트워크 다운로드 속도 제한"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"인터넷 연결을 제공하는 모든 네트워크에 적용할 네트워크 대역폭 인그레스 속도 제한을 설정합니다."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"네트워크 다운로드 속도 제한 설정"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"앱 제거"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{지난 #개월 내에 설치된 앱}other{지난 #개월 내에 설치된 앱}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{앱이 설치된 지 #개월 이상 지남}other{앱이 설치된 지 #개월 이상 지남}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"가로세로 비율"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>에 맞지 않게 만들어졌다면 이 앱을 볼 가로세로 비율을 선택합니다"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"추천 앱"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"재정의한 앱"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"앱 기본값"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"전체 화면"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"절반 화면"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"기기 가로세로 비율"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"가로세로 비율을 변경하면 앱이 다시 시작됩니다. 저장하지 않은 변경사항은 손실될 수 있습니다."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"지문 센서"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"플래시 알림"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"플래시 알림 정보"</string>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index 4b19f1d..8f6fc3f 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 мүнөттөн кийин"</item>
     <item msgid="1574040255478150028">"5 мүнөттөн кийин"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 3c8a1ef..3935e8a 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi бул түзмөк менен бөлүшүлүүдө…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Туташууда…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Жалпы байланыш түйүнү"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Өзүңүздү ырастаңыз"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Өзүңүздү ырастаңыз"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi сырсөзү: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Байланыш түйүнүнүн сырсөзү: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Авто-туташуу"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Сырсөзүңүздү унутуп койдуңузбу?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Графикалык ачкычты унутуп койдуңузбу?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN кодуңузду унутуп койдуңузбу?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Улантуу үчүн түзмөгүңүздүн графикалык ачкычын киргизиңиз"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Улантуу үчүн түзмөгүңүздүн PIN кодун киргизиңиз"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Улантуу үчүн түзмөгүңүздүн сырсөзүн киргизиңиз"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Улантуу үчүн жумуш профилиңиздин графикалык ачкычын колдонуңуз"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Улантуу үчүн графикалык ачкычты тартыңыз"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Улантуу үчүн PIN кодуңузду киргизиңиз"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Улантуу үчүн сырсөзүңүздү киргизиңиз"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Улантуу үчүн жумушка арналган графикалык ачкычты тартыңыз"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Улантуу үчүн жумуш профилиңиздин PIN кодун киргизиңиз"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Улантуу үчүн жумуш профилиңиздин сырсөзүн киргизиңиз"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Кошумча коопсуздук үчүн түзмөгүңүздүн графикалык ачкычын колдонуңуз"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Шайкеш түзмөктөрдөн чыккан үн таасирдүү угулат"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Баштын кыймылына көз салуу"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Үн табигый угулушу үчүн башыңызды кыймылдатканыңызда аудио өзгөрөт"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Тармактан жүктөп алуу ылдамдыгынын чеги"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернет байланышын камсыздаган бардык тармактарга колдонула турган тармактын өткөрүү жөндөмдүүлүгүнүн кирүү жыштыгынын чегин конфигурациялаңыз."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Тармактан жүктөп алуу ылдамдыгынын чегин конфигурациялаңыз"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Колдонмону чыгарып салуу"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Акыркы # айдын ичинде орнотулган колдонмолор}other{Акыркы # айдын ичинде орнотулган колдонмолор}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# айдан ашуун убакыт мурун орнотулган колдонмолор}other{# айдан ашуун убакыт мурун орнотулган колдонмолор}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Тараптардын катнашы"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Эгер колдонмо <xliff:g id="DEVICE_NAME">%1$s</xliff:g> үчүн түзүлбөгөн болсо, аны көрүү үчүн ылайыктуу тараптардын катнашын тандаңыз"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Сунушталган колдонмолор"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Сиз өзгөртүп койгон колдонмолор"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Колдонмодогу демейки маани"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Толук экран"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Жарым экран"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Түзмөктүн тараптарынын катнашы"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Тараптардын катнашын өзгөрткөндө бул колдонмо өчүп күйөт. Өзгөртүүлөрүңүз сакталбай калышы мүмкүн."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Манжа изинин сенсору"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Жарык менен коштолгон билдирмелер"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Жарык менен коштолгон билдирмелер жөнүндө"</string>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index a1b07b9..f143b48 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ຫຼັງຈາກ 1 ນາທີ"</item>
     <item msgid="1574040255478150028">"ຫຼັງຈາກ 5 ນາທີ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 72761b5..eb669c3 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ກຳລັງແບ່ງປັນ Wi‑Fi ກັບອຸປະກອນນີ້…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"ກຳລັງເຊື່ອມຕໍ່…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ແບ່ງປັນຮັອດສະປອດ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ຢັ້ງຢືນວ່າແມ່ນທ່ານ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ຢືນຢັນວ່າແມ່ນທ່ານ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ລະຫັດຜ່ານ Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ລະຫັດຜ່ານຮັອດສະປອດ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ເຊື່ອມຕໍ່ອັດຕະໂນມັດ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ລືມລະຫັດຜ່ານຂອງທ່ານບໍ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ລືມຮູບແບບຂອງທ່ານບໍ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ລືມ PIN ຂອງທ່ານບໍ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ໃຊ້ຮູບແບບປົດລັອກອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ປ້ອນ PIN ອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ປ້ອນລະຫັດຜ່ານອຸປະກອນຂອງທ່ານເພື່ອດຳເນີນການຕໍ່"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ໃຊ້ຮູບແບບປົດລັອກບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ແຕ້ມຮູບແບບຂອງທ່ານເພື່ອສືບຕໍ່"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ໃສ່ PIN ຂອງທ່ານເພື່ອສືບຕໍ່"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ໃສ່ລະຫັດຜ່ານຂອງທ່ານເພື່ອສືບຕໍ່"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ແຕ້ມຮູບແບບວຽກຂອງທ່ານເພື່ອສືບຕໍ່"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ປ້ອນ PIN ບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ປ້ອນລະຫັດຜ່ານບ່ອນເຮັດວຽກຂອງທ່ານເພື່ອດຳເນີນການຕໍ່."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ເພື່ອເພີ່ມຄວາມປອດໄພ, ໃຫ້ໃຊ້ຮູບແບບປົດລັອກອຸປະກອນຂອງທ່ານ"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ສຽງຈາກມີເດຍທີ່ເຂົ້າກັນໄດ້ຈະມີຄວາມສົມຈິງຍິ່ງຂຶ້ນ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ການຕິດຕາມຫົວ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ສຽງຈະປ່ຽນເມື່ອທ່ານຍັບຫົວຂອງທ່ານເພື່ອໃຫ້ສຽງເປັນທຳມະຊາດຍິ່ງຂຶ້ນ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ຂີດຈຳກັດອັດຕາດາວໂຫຼດເຄືອຂ່າຍ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ຕັ້ງຄ່າຂີດຈຳກັດອັດຕາການເຂົ້າແບນວິດເຄືອຂ່າຍເຊິ່ງນຳໃຊ້ກັບເຄືອຂ່າຍທັງໝົດທີ່ສະໜອງການເຊື່ອມຕໍ່ອິນເຕີເນັດ."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ຕັ້ງຄ່າຂີດຈຳກັດອັດຕາການດາວໂຫຼດເຄືອຂ່າຍ"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ຖອນການຕິດຕັ້ງແອັບ"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ແອັບທີ່ຕິດຕັ້ງໃນ # ເດືອນທີ່ຜ່ານມາ}other{ແອັບທີ່ຕິດຕັ້ງໃນ # ເດືອນທີ່ຜ່ານມາ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ແອັບທີ່ຕິດຕັ້ງຫຼາຍກວ່າ # ເດືອນທີ່ຜ່ານມາ}other{ແອັບທີ່ຕິດຕັ້ງຫຼາຍກວ່າ # ເດືອນທີ່ຜ່ານມາ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"ອັດຕາສ່ວນຮູບ"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ເລືອກອັດຕາສ່ວນຮູບເພື່ອເບິ່ງແອັບນີ້ຫາກມັນບໍ່ໄດ້ຖືກອອກແບບມາໃຫ້ພໍດີກັບ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ຂອງທ່ານ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ແອັບແນະນຳ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ແອັບທີ່ທ່ານໄດ້ຍົກເລີກການຕັ້ງຄ່າ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ຄ່າເລີ່ມຕົ້ນຂອງແອັບ"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ເຕັມຈໍ"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ເຄິ່ງຈໍ"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ອັດຕາສ່ວນຮູບຂອງອຸປະກອນ"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ແອັບຈະຣີສະຕາດເມື່ອທ່ານປ່ຽນອັດຕາສ່ວນຮູບ. ທ່ານອາດເສຍການປ່ຽນແປງທີ່ຍັງບໍ່ໄດ້ບັນທຶກ."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ເຊັນເຊີລາຍນິ້ວມື"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ການແຈ້ງເຕືອນດ້ວຍແຟລດ"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ກ່ຽວກັບການແຈ້ງເຕືອນດ້ວຍແຟລດ"</string>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index 9c66346..a0ed830 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po vienos minutės"</item>
     <item msgid="1574040255478150028">"Po penkių minučių"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 6d0fc30..190c8a2 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Bendrinamas „Wi‑Fi“ su šiuo įrenginiu…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Prisijungiama…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Viešosios interneto prieigos taško bendrinimas"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Patvirtinkite, kad tai jūs"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Savo tapatybės patvirtinimas"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"„Wi-Fi“ slaptažodis: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Viešosios interneto prieigos taško slaptažodis: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatiškai prisijungti"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Pamiršote slaptažodį?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Pamiršote atrakinimo piešinį?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Pamiršote PIN kodą?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Jei norite tęsti, naudokite įrenginio atrakinimo piešinį"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Jei norite tęsti, įveskite įrenginio PIN kodą"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Jei norite tęsti, įveskite įrenginio slaptažodį"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Jei norite tęsti, naudokite darbo atrakinimo piešinį"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tęskite nupiešę atrakinimo piešinį"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Tęskite įvedę PIN kodą"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Tęskite įvedę slaptažodį"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tęskite nupiešę darbo atrakinimo piešinį"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Jei norite tęsti, įveskite darbo PIN kodą"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Jei norite tęsti, įveskite darbo slaptažodį"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Kad dar labiau apsaugotumėte įrenginį, naudokite įrenginio atrakinimo piešinį"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Kokybiškesnis suderinamos medijos garsas"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvos stebėjimas"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Garso pakeitimai, kad garsas skambėtų natūraliau judinant galvą"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tinklo atsisiuntimo rodiklio apribojimas"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigūruokite tinklo pralaidumo įvesties rodiklio apribojimą, kuris taikomas visiems tinklams, teikiantiems interneto ryšį."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigūruokite tinklo atsisiuntimo rodiklio apribojimą"</string>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index fdd5bf8..72cfea4 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pēc 1 minūtes"</item>
     <item msgid="1574040255478150028">"Pēc 5 minūtēm"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index a185a27..de85b50 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Notiek Wi‑Fi kopīgošana ar šo ierīci…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Notiek savienojuma izveide…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Tīklāja kopīgošana"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Identitātes apstiprināšana"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Apstipriniet, ka tas esat jūs"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi tīkla parole: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Tīklāja parole: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automātiski izveidot savienojumu"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Vai aizmirsāt paroli?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Vai aizmirsāt kombināciju?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Vai aizmirsāt PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Lai turpinātu, izmantojiet ierīces kombināciju."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Lai turpinātu, ievadiet ierīces PIN kodu."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Lai turpinātu, ievadiet savas ierīces paroli."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Lai turpinātu, izmantojiet darba profila kombināciju."</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Zīmējiet kombināciju, lai turpinātu"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ievadiet PIN, lai turpinātu"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ievadiet paroli, lai turpinātu"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Zīmējiet darba kombināciju, lai turpinātu"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Lai turpinātu, ievadiet darba profila PIN kodu."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Lai turpinātu, ievadiet darba profila paroli."</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Papildu drošībai izmantojiet ierīces kombināciju."</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio no saderīga multivides satura kļūst iekļaujošāks"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Galvas izsekošana"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Kustinot galvu, audio mainīsies, lai izklausītos dabiskāk"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tīkla lejupielādes ātruma ierobežojums"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Varat konfigurēt tīkla joslas platuma ātruma ierobežojumu ienākošajiem datiem. Tas tiks piemērots visiem tīkliem, kas nodrošina interneta savienojumu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Tīkla lejupielādes ātruma ierobežojuma konfigurēšana"</string>
@@ -4698,24 +4710,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Atinstalēt lietotni"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Pēdējā # mēneša laikā instalētās lietotnes}zero{Pēdējo # mēnešu laikā instalētās lietotnes}one{Pēdējā # mēneša laikā instalētās lietotnes}other{Pēdējo # mēnešu laikā instalētās lietotnes}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Pirms vairāk nekā # mēneša instalētās lietotnes}zero{Pirms vairāk nekā # mēnešiem instalētās lietotnes}one{Pirms vairāk nekā # mēneša instalētās lietotnes}other{Pirms vairāk nekā # mēnešiem instalētās lietotnes}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Malu attiecība"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Ja šīs lietotnes noformējums neatbilst jūsu ierīces (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>) izmēriem, izvēlieties malu attiecību, lai skatītu šo lietotni."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Ieteiktās lietotnes"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Jūsu ignorētās lietotnes"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Lietotnes noklusējums"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pilnekrāna režīms"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Puse ekrāna"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Ierīces malu attiecība"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Mainot malu attiecību, lietotne tiks restartēta. Iespējams, zaudēsiet nesaglabātas izmaiņas."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Pirksta nospieduma sensors"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Zibpaziņojumi"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Par zibpaziņojumiem"</string>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 25a86b2..5e8fa7c 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"По 1 минута"</item>
     <item msgid="1574040255478150028">"По 5 минути"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Вклучете ја адаптивната осветленост за да го продолжите траењето на батеријата"</item>
+    <item msgid="2256666063790193306">"Намалете го исклучувањето на екранот за да го продолжите траењето на батеријата"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index fcc50c2..38365f1 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Се споделува Wi‑Fi со уредов…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Се поврзува…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Споделете точка на пристап"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потврдете дека сте вие"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потврдете дека сте вие"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Лозинка за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Лозинка за точката на пристап: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматско поврзување"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ја заборавивте лозинката?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ја заборавивте шемата?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Го заборавивте PIN-кодот?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Внесете ја шемата за уредот за да продолжите"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Внесете го PIN-кодот на уредот за да продолжите"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Внесете ја лозинката за уредот за да продолжите"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Користете ја шемата на работниот профил за да продолжите"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"За да продолжите, внесете ја вашата шема"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"За да продолжите, внесете го вашиот PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"За да продолжите, внесете ја вашата лозинка"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"За да продолжите, внесете ја шемата за работниот профил"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Внесете го PIN-кодот на работниот профил за да продолжите"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Внесете ја лозинката на работниот профил за да продолжите"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"За дополнителна безбедност, користете ја шемата на уредот"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звукот од компатибилните аудиовизуелни содржини е пореалистичен"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Следење на главата"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звукот се менува како што ја движите главата за да звучи поприродно"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничување за мрежна брзина на преземање"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигурирајте го ограничувањето за брзина на пристап до мрежата што ќе се примени на сите мрежи што овозможуваат поврзување на интернет."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигурирајте го ограничувањето за мрежна брзина на преземање"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Деинсталирај ја апликацијата"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Апликации инсталирани во минатиот # месец}one{Апликации инсталирани во минатите # месец}other{Апликации инсталирани во минатите # месеци}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Апликации инсталирани пред повеќе од # месец}one{Апликации инсталирани пред повеќе од # месец}other{Апликации инсталирани пред повеќе од # месеци}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Сооднос"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Изберете сооднос за да ја видите апликацијава ако не е дизајнирана да одговара на вашиот уред <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Предложени апликации"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Апликации што сте ги отфрлиле"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Стандардно за апликацијата"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Цел екран"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половина екран"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Сооднос на уредот"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Апликацијата ќе се рестартира кога ќе го промените соодносот. Може да ги изгубите незачуваните промени."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сензор за отпечатоци"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Известувања со блиц"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"За известувањата со блиц"</string>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index b233808..4b3bad6 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"ഒരു മിനിറ്റിന് ശേഷം"</item>
     <item msgid="1574040255478150028">"5 മിനിറ്റിന് ശേഷം"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 0120e90..e48865b 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ഈ ഉപകരണവുമായി Wi‑Fi പങ്കിടുന്നു…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"കണക്‌റ്റ് ചെയ്യുന്നു…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ഹോട്ട്‌സ്പോട്ട് പങ്കിടുക"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കൂ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ഇത് നിങ്ങളാണെന്ന് പരിശോധിച്ചുറപ്പിക്കുക"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"വൈഫൈ പാസ്‌വേഡ്: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ഹോട്ട്‌സ്‌പോട്ടിന്റെ പാസ്‌വേഡ്: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"സ്വയമേവ കണ‌ക്റ്റ് ചെയ്യുക"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"പാസ്‌വേഡ് മറന്നോ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"പാറ്റേൺ മറന്നോ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"പിൻ മറന്നോ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"തുടരാൻ നിങ്ങളുടെ ഉപകരണ പാറ്റേൺ ഉപയോഗിക്കുക"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"തുടരാൻ ഉപകരണ പിൻ നൽകുക"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"തുടരാൻ നിങ്ങളുടെ ഉപകരണ പാസ്‌വേഡ് നൽകുക"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"തുടരാൻ നിങ്ങളുടെ ഔദ്യോഗിക പാറ്റേൺ ഉപയോഗിക്കുക"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"തുടരാൻ നിങ്ങളുടെ പാറ്റേൺ വരയ്ക്കുക"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"തുടരാൻ നിങ്ങളുടെ പിൻ നൽകുക"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"തുടരാൻ നിങ്ങളുടെ പാസ്‌വേഡ് നൽകുക"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"തുടരാൻ നിങ്ങളുടെ ഔദ്യോഗിക പാറ്റേൺ വരയ്ക്കുക"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"തുടരാൻ നിങ്ങളുടെ ഔദ്യോഗിക പിൻ നൽകുക"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"തുടരാൻ നിങ്ങളുടെ ഔദ്യോഗിക പാസ്‌വേഡ് നൽകുക"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"അധിക സുരക്ഷയ്ക്ക്, നിങ്ങളുടെ ഉപകരണത്തിന്റെ പാറ്റേൺ ഉപയോഗിക്കുക"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"അനുയോജ്യമായ മീഡിയയിൽ നിന്നുള്ള ഓഡിയോ കൂടുതൽ മുഴുകിപ്പിക്കുന്നതാക്കുന്നു"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ഹെഡ് ട്രാക്കിംഗ്"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"കൂടുതൽ സ്വാഭാവികമായി തോന്നാൻ, നിങ്ങൾ തല ചലിപ്പിക്കുന്നതിനോടൊപ്പം ഓഡിയോ മാറുന്നു"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ഓഡിയോ ഉപകരണ തരം"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"അജ്ഞാതം"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"സ്പീക്കർ"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"ഹെഡ്ഫോണുകൾ"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"കാർ കിറ്റ്"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"മറ്റുള്ളവ"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"നെറ്റ്‌വർക്ക് ഡൗൺലോഡ് നിരക്ക് പരിധി"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ഇന്റർനെറ്റ് കണക്റ്റിവിറ്റി നൽകുന്ന എല്ലാ നെറ്റ്‌വർക്കുകൾക്കും ബാധകമായ നെറ്റ്‌വർക്ക് ബാൻഡ്‌വിഡ്‌ത് ഇൻഗ്രസ് നിരക്ക് പരിധി കോൺഫിഗർ ചെയ്യുക."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"നെറ്റ്‌വർക്ക് ഡൗൺലോഡ് നിരക്ക് പരിധി കോൺഫിഗർ ചെയ്യുക"</string>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index 77912e9..bfab784 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"1 минутын дараа"</item>
     <item msgid="1574040255478150028">"5 минутын дараа"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Батарейн ажиллах хугацааг уртасгахын тулд орчинтой зохицох гэрэлтүүлгийг асаах"</item>
+    <item msgid="2256666063790193306">"Батарейн ажиллах хугацааг уртасгахын тулд дэлгэцийн хугацааг багасгах"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 88d8641..f61689b 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi-г энэ төхөөрөмжтэй хуваалцаж байна…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Холбогдож байна…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Сүлжээний цэгийг хуваалцах"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Та мөн болохоо бататгана уу"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Өөрийгөө мөн гэдгийг баталгаажуулаарай"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi-н нууц үг: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Сүлжээний цэгийн нууц үг: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автомат холболт"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Нууц үгээ мартсан уу?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Хээгээ мартсан уу?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ПИН-ээ мартсан уу?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Үргэлжлүүлэхийн тулд төхөөрөмжийнхөө хээн түгжээг оруулна уу"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Үргэлжлүүлэхийн тулд төхөөрөмжийнхөө ПИН кодыг оруулна уу"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Үргэлжлүүлэхийн тулд төхөөрөмжийн нууц үгээ оруулна уу"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Үргэлжлүүлэхийн тулд ажлын зурган түгжээг оруулна уу"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Үргэлжлүүлэхийн тулд хээгээ зурна уу"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Үргэлжлүүлэхийн тулд ПИН-ээ оруулна уу"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Үргэлжлүүлэхийн тулд нууц үгээ оруулна уу"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Үргэлжлүүлэхийн тулд ажлын профайлын хээгээ зурна уу"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Үргэлжлүүлэхийн тулд ажлын ПИН кодоо оруулна уу"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Үргэлжлүүлэхийн тулд ажлын нууц үгээ оруулна уу"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Хамгаалалтыг сайжруулахын тулд төхөөрөмжийнхөө зурган түгжээг ашиглана уу"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Тохиромжтой медианы аудио илүү гайхалтай болно"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Толгой хянах"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Таныг толгойгоо хөдөлгөх үед илүү бодит мэт сонсогдохын тулд аудио өөрчлөгдөнө"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Сүлжээг татаж авах үнэлгээний хязгаар"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Интернэт холболтоор хангадаг бүх сүлжээнд хэрэглэх сүлжээний зурвасын өргөн нэвтрэх хурдны хязгаарыг тохируулна уу."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Тохируулах сүлжээг татаж авах үнэлгээний хязгаар"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Аппыг устгах"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Сүүлийн # сард суулгасан аппууд}other{Сүүлийн # сард суулгасан аппууд}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# сар гаруйн өмнө суулгасан аппууд}other{# сар гаруйн өмнө суулгасан аппууд}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Харьцаа"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Хэрэв энэ аппыг таны <xliff:g id="DEVICE_NAME">%1$s</xliff:g>-д таарахаар бүтээгээгүй бол үүнийг харахын тулд харьцаагаа сонгоно уу"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Санал болгосон аппууд"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Таны дарсан аппууд"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Аппын өгөгдмөл"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Бүтэн дэлгэц"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Хагас дэлгэц"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Төхөөрөмжийн харьцаа"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Таныг харьцааг өөрчлөх үед апп дахин эхэлнэ. Та хадгалаагүй өөрчлөлтөө алдаж магадгүй."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Хурууны хээ мэдрэгч"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Гэрэл анивчдаг мэдэгдэл"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Гэрэл анивчдаг мэдэгдлийн тухай"</string>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index b83f493..5b322ba 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"एका मिनिटानंतर"</item>
     <item msgid="1574040255478150028">"पाच मिनिटांनंतर"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 34f2870..c27db95 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"या डिव्हाइससह वाय‑फाय शेअर करत आहे…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"कनेक्ट करत आहे…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हॉटस्पॉट शेअर करा"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"हे तुम्ही असल्याची खात्री करा"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ते तुम्हीच आहात याची पडताळणी करा"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"वाय-फाय पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हॉटस्पॉट पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"आपोआप कनेक्‍ट करा"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"तुमचा पासवर्ड विसरलात का?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"तुमचा पॅटर्न विसरलात का?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"तुमचा पिन विसरलात का?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"सुरू ठेवण्यासाठी तुमच्या डिव्हाइस पॅटर्नचा वापर करा"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पिन एंटर करा"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पासवर्ड एंटर करा"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"सुरू ठेवण्यासाठी आपल्या कार्य नमुन्याचा वापर करा"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"पुढे सुरू ठेवण्यासाठी तुमचा पॅटर्न ड्रॉ करा"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"पुढे सुरू ठेवण्यासाठी तुमचा पिन एंटर करा"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"पुढे सुरू ठेवण्यासाठी तुमचा पासवर्ड एंटर करा"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"पुढे सुरू ठेवण्यासाठी तुमच्या कार्य प्रोफाइलचा पॅटर्न ड्रॉ करा"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"सुरू ठेवण्यासाठी तुमचा कार्य पिन एंटर करा"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"सुरू ठेवण्यासाठी तुमचा कार्य पासवर्ड एंटर करा"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"वाढीव सुरक्षिततेसाठी, तुमच्या डीव्हाइसचा पॅटर्न वापरा"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कंपॅटिबल मीडियामधील ऑडिओ हा आणखी वेधक होतो"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्रॅकिंग"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"अधिक नैसर्गिक वाटावे यासाठी, तुम्ही डोके हलवता तसा आवाज बदलतो"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"नेटवर्कच्या डाउनलोड रेटची मर्यादा"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"इंटरनेट कनेक्टिव्हिटी पुरवणाऱ्या सर्व नेटवर्कना लागू होणारी नेटवर्क बँडविड्थ प्रवेश रेट मर्यादा कॉंफिगर करा."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"नेटवर्कच्या डाउनलोड रेटची मर्यादा कॉंफिगर करा"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"अ‍ॅप अनइंस्टॉल करा"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{मागच्या # महिन्यामध्ये इंस्टॉल केलेली अ‍ॅप्स}other{मागच्या # महिन्यांमध्ये इंस्टॉल केलेली अ‍ॅप्स}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{किमान # महिन्यापूर्वी अ‍ॅप इंस्टॉल केले}other{किमान # ममहिन्यांपूर्वी अ‍ॅप इंस्टॉल केले}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"आस्पेक्ट रेशो"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"हे ॲप तुमच्या <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मध्ये फिट होण्यासाठी डिझाइन केलेले नसल्यास, ते पाहण्यासाठी आस्पेक्ट रेशो निवडा"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"सुचवलेली अ‍ॅप्स"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"तुम्ही ओव्हरराइड केलेली अ‍ॅप्स"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"अ‍ॅप डीफॉल्ट"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"फुल स्क्रीन"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"अर्धी स्क्रीन"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"डिव्हाइस आस्पेक्ट रेशो"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"४:३"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"तुम्ही आस्पेक्ट रेशो बदलता, तेव्हा ॲप रीस्टार्ट होईल. तुम्ही सेव्ह न केलेले बदल गमावू शकता."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"फिंगरप्रिंट सेन्सर"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"फ्लॅश सूचना"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"फ्लॅश सूचनांबद्दल"</string>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index eff1ab3..ab33086 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Selepas 1 minit"</item>
     <item msgid="1574040255478150028">"Selepas 5 minit"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Hidupkan kecerahan boleh suai untuk melanjutkan hayat bateri"</item>
+    <item msgid="2256666063790193306">"Kurangkan tamat masa skrin untuk melanjutkan hayat bateri"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index 4f0785d..097b412 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Berkongsi Wi‑Fi dengan peranti ini…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Menyambung…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Kongsi tempat liputan"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Sahkan diri anda"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Sahkan diri anda"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Kata laluan Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Kata laluan tempat liputan: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Autosambung"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Terlupa kata laluan anda?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Terlupa corak anda?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Terlupa nombor PIN anda?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gunakan corak peranti anda untuk meneruskan"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Masukkan PIN peranti anda untuk meneruskan"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Masukkan kata laluan peranti anda untuk meneruskan"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gunakan corak kerja anda untuk meneruskan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Lukis corak anda untuk teruskan"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Masukkan PIN anda untuk teruskan"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Masukkan kata laluan anda untuk teruskan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Lukis corak kerja anda untuk teruskan"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Masukkan PIN kerja anda untuk meneruskan"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Masukkan kata laluan kerja anda untuk meneruskan"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Untuk keselamatan tambahan, gunakan corak peranti anda"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audio daripada media yang serasi kedengaran lebih mengasyikkan"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Penjejakan kepala"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audio berubah apabila anda menggerakkan kepala anda untuk kedengaran lebih semula jadi"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Jenis Peranti Audio"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Tidak diketahui"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Pembesar suara"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fon kepala"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit Kereta"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Lain-lain"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Had kadar muat turun rangkaian"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurasikan had kadar kemasukan lebar jalur rangkaian yang digunakan pada semua rangkaian yang menyediakan kesambungan Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurasikan had kadar muat turun rangkaian"</string>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index f400fc3..65c1e19 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"၁ မိနစ်နောက်ပိုင်း"</item>
     <item msgid="1574040255478150028">"၅ မိနစ်နောက်ပိုင်း"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 160de9e..4f97273 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi ကို ဤစက်အား မျှဝေနေသည်…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"ချိတ်ဆက်နေသည်…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ဟော့စပေါ့ မျှဝေရန်"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"သင်ဖြစ်ကြောင်း အတည်ပြုပါ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"သင်ဖြစ်ကြောင်း အတည်ပြုပါ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi စကားဝှက်− <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ဟော့စပေါ့စကားဝှက်− <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"အလိုအလျောက် ချိတ်ဆက်မှု"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"စကားဝှက် မေ့နေပါလား။"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ပုံစံ မေ့နေပါသလား။"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ပင်နံပါတ် မေ့နေပါသလား။"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ရှေ့ဆက်ရန် သင့်စက်၏ ပုံစံကို အသုံးပြုပါ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ဆက်လုပ်ရန် သင့်စက်ပစ္စည်း၏ ပင်နံပါတ်ကို ထည့်ပါ။"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ရှေ့ဆက်ရန် သင့်ကိရိယာစကားဝှက်ကို ရိုက်ထည့်ပါ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ဆက်လက်လုပ်ဆောင်ရန် သင်၏အလုပ်ပုံစံကို သုံးပါ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ရှေ့ဆက်ရန် ပုံဖော်ရေးဆွဲပါ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ရှေ့ဆက်ရန် ပင်နံပါတ်ထည့်ပါ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ရှေ့ဆက်ရန် စကားဝှက်ထည့်ပါ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ရှေ့ဆက်ရန် အလုပ်ပရိုဖိုင်အတွက် ပုံဖော်ရေးဆွဲပါ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ဆက်လုပ်ရန် သင့် အလုပ် ပင်နံပါတ်ကို ရိုက်ထည့်ပါ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ဆက်လက်လုပ်ဆောင်ရန် သင့်အလုပ်စကားဝှက်ကို ရိုက်ထည့်ပါ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"လုံခြုံရေး ပိုကောင်းစေရန် သင်၏ စက်ပစ္စည်းပုံစံကို သုံးပါ"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"တွဲသုံးနိုင်သောမီဒီယာမှ အသံသည် ပို၍နှစ်သက်ဖွယ်ကောင်းသည်"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ဦးခေါင်းလှုပ်ရှားမှု စောင့်ကြည့်ခြင်း"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ပိုမိုသဘာဝဆန်စေရန် ဦးခေါင်းလှုပ်ရှားမှုအလိုက် အသံပြောင်းလဲသည်"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"အသံစက်ပစ္စည်း အမျိုးအစား"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"မသိ"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"စပီကာ"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"နားကြပ်"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ကားပစ္စည်းအစုံ"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"အခြား"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ကွန်ရက်ဒေါင်းလုဒ်လုပ်နှုန်း ကန့်သတ်ချက်"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"အင်တာနက်ချိတ်ဆက်မှုပေးသော ကွန်ရက်အားလုံးတွင် သက်ရောက်သည့် အဝင်ကွန်ရက်မြန်နှုန်း (ပမာဏ) စီစဉ်သတ်မှတ်နိုင်သည်။"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ကွန်ရက်ဒေါင်းလုဒ်လုပ်နှုန်း ကန့်သတ်ချက် စီစဉ်သတ်မှတ်ရန်"</string>
@@ -4697,24 +4703,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"အက်ပ်ကို ဖယ်ရှားရန်"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ပြီးခဲ့သော # လအတွင်း ထည့်သွင်းထားသည့် အက်ပ်များ}other{ပြီးခဲ့သော # လအတွင်း ထည့်သွင်းထားသည့် အက်ပ်များ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ပြီးခဲ့သော # လကျော်က ထည့်သွင်းထားသည့် အက်ပ်များ}other{ပြီးခဲ့သော # လကျော်က ထည့်သွင်းထားသည့် အက်ပ်များ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"အချိုးအစား"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ဤအက်ပ်ကို သင့် <xliff:g id="DEVICE_NAME">%1$s</xliff:g> နှင့် အံကိုက်ဖြစ်အောင် ရေးဆွဲမထားပါက ၎င်းကိုကြည့်ရန် အချိုးအစား ရွေးနိုင်သည်"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"အကြံပြုထားသော အက်ပ်များ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"အစားထိုးထားသော အက်ပ်များ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"အက်ပ် မူရင်း"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ဖန်သားပြင်အပြည့်"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ဖန်သားပြင်တစ်ဝက်"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"စက်၏အချိုးအစား"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"အချိုးအစား ပြောင်းလိုက်သောအခါ အက်ပ်ပြန်စပါမည်။ သိမ်းမထားသော အပြောင်းအလဲများ ဆုံးရှုံးနိုင်သည်။"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"လက်ဗွေ အာရုံခံကိရိယာ"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"အလင်းရောင်ဖြင့် အကြောင်းကြားချက်"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"အလင်းရောင်ဖြင့် အကြောင်းကြားချက်များအကြောင်း"</string>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 8e35bb7..3e0b122 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Etter 1 minutt"</item>
     <item msgid="1574040255478150028">"Etter 5 minutter"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Slå på tilpasset lysstyrke for å forlenge batterilevetiden"</item>
+    <item msgid="2256666063790193306">"Reduser tiden for skjermspareren for å forlenge batterilevetiden"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 6b65c28..9448d3f 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -122,7 +122,7 @@
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Trykk på bakre knapp"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (jobbprofil)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Skriv i tekstfelt"</string>
-    <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk med pekepenn"</string>
+    <string name="stylus_ignore_button" msgid="7734540973145241391">"Ignorer alle knappetrykk på pekepennen"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Pekepenn"</string>
     <string name="date_and_time" msgid="1788358029823431692">"Dato og klokkeslett"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy-tjener"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deler Wifi med denne enheten …"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Kobler til …"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Del wifi-sone"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Bekreft at det er deg"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bekreft at det er deg"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-passord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Passord for wifi-sone: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisk tilkobling"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glemt passordet ditt?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glemt mønsteret ditt?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glemt PIN-koden din?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Tegn mønsteret ditt for å fortsette"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Skriv inn PIN-koden til enheten din for å fortsette"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Skriv inn enhetspassordet ditt for å fortsette"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Bruk jobbmønsteret ditt for å fortsette"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Tegn mønsteret ditt for å fortsette"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Oppgi PIN-koden din for å fortsette"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Oppgi passordet ditt for å fortsette"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Tegn jobbmønsteret ditt for å fortsette"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Skriv inn jobb-PIN-koden din for å fortsette"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Skriv inn jobbpassordet ditt for å fortsette"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Bruk enhetsmønsteret ditt for bedre beskyttelse"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Lyd fra kompatible enheter blir mer omsluttende"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Hodesporing"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Lyden endres når du beveger hodet, slik at den høres mer naturlig ut"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Grense for nedlastingshastighet for nettverket"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurer grensen for innkommende båndbredde i nettverket, som benyttes for alle nettverk som gir internettilkobling."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurer grensen for nedlastingshastighet for nettverket"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Avinstaller app"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Apper installert den siste måneden}other{Apper installert de siste # månedene}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Apper installert for mer enn # måned siden}other{Apper installert for mer enn # måneder siden}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Høyde/bredde-forhold"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Velg et høyde/bredde-forhold for denne appen hvis den ikke er laget for å passe til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Foreslåtte apper"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Apper du har overstyrt"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Appstandard"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Fullskjerm"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halv skjerm"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Høyde/bredde-forhold for enheten"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Appen starter på nytt når du endrer høyde/bredde-forholdet. Du kan miste ulagrede endringer."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeravtrykkssensor"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Blitsvarsler"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Om blitsvarsler"</string>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index c37cd09..894d2d7 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"१ मिनेटपछि"</item>
     <item msgid="1574040255478150028">"५ मिनेटपछि"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index b008b8a..9e0c10a 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"यो सेवामार्फत Wi‑Fi आदान प्रदान गर्दै…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"जडान गर्दै…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"हटस्पट सेयर गर्नुहोस्"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"तपाईं नै हुनुहुन्छ भन्ने पुष्टि गर्नुहोस्"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"यो तपाईं नै हो भन्ने पुष्टि गर्नुहोस्"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi को पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"हटस्पटको पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"स्वतः जडान"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"आफ्नो पासवर्ड बिर्सनुभयो?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"आफ्नो ढाँचा बिर्सनुभयो?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"आफ्नो PIN बिर्सनुभयो?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"जारी राख्नका लागि आफ्नो डिभाइसको ढाँचा प्रयोग गर्नुहोस्"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"जारी राख्न आफ्नो डिभाइसको PIN हाल्नुहोस्"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"जारी राख्नका लागि आफ्नो डिभाइसको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको ढाँचा प्रयोग गर्नुहोस्"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"जारी राख्न आफ्नो प्याटर्न बनाउनुहोस्"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"जारी राख्न आफ्नो PIN हाल्नुहोस्"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"जारी राख्न आफ्नो पासवर्ड हाल्नुहोस्"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"जारी राख्न आफ्नो कार्य प्रोफाइलको प्याटर्न बनाउनुहोस्"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको PIN हाल्नुहोस्"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"जारी राख्नका लागि आफ्नो कार्य प्रोफाइलको पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"थप सुरक्षाका लागि आफ्नो डिभाइसको ढाँचा प्रयोग गर्नुहोस्‌"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"कम्प्याटिबल मिडियाको अडियो अझै इमर्सिभ हुन्छ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"हेड ट्र्याकिङ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"तपाईंले थप स्वाभाविक देखिनका लागि टाउको हल्लाउँदा अडियो बदलिन्छ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा तोक्नुहोस्। इन्टरनेट सेवा प्रदान गर्ने जुनसुकै सेवाहरूमा यस्तो सीमा तोक्न सकिन्छ।"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"इन्टरनेटबाट सामग्री डाउनलोड गर्ने स्पिडको सीमा तोक्नुहोस्"</string>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index 6e2ca64..a4c7290 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Na 1 minuut"</item>
     <item msgid="1574040255478150028">"Na 5 minuten"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Aanpasbare helderheid aanzetten om de batterijduur te verlengen"</item>
+    <item msgid="2256666063790193306">"Time-out voor scherm beperken om de batterijduur te verlengen"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index aa42237..11583cf 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -122,7 +122,7 @@
     <string name="stylus_default_notes_app" msgid="4165657465911764628">"Knop bovenop indrukken"</string>
     <string name="stylus_default_notes_summary_work" msgid="4554643411627934223">"<xliff:g id="APP_NAME">%s</xliff:g> (werkprofiel)"</string>
     <string name="stylus_textfield_handwriting" msgid="2363579035338976327">"Schrijven in tekstvelden"</string>
-    <string name="stylus_ignore_button" msgid="7734540973145241391">"Alle drukken op knoppen met stylus negeren"</string>
+    <string name="stylus_ignore_button" msgid="7734540973145241391">"Indrukken van stylusknop negeren"</string>
     <string name="stylus_connected_devices_title" msgid="2823967577941359812">"Stylus"</string>
     <string name="date_and_time" msgid="1788358029823431692">"Datum en tijd"</string>
     <string name="proxy_settings_title" msgid="4201866858226087066">"Proxy"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wifi delen met dit apparaat…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Verbinden…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot delen"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiëren dat jij het bent"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bevestig dat jij het bent"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-wachtwoord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Wachtwoord hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisch verbinding maken"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Je wachtwoord vergeten?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Je patroon vergeten?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Je pincode vergeten?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Teken het patroon van je apparaat om door te gaan"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Voer de pincode van het apparaat in om door te gaan"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Geef het wachtwoord van je apparaat op om door te gaan"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Geef het patroon van je werkprofiel op om door te gaan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Teken je patroon om door te gaan"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Voer je pincode in om door te gaan"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Voer je wachtwoord in om door te gaan"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Teken je werkpatroon om door te gaan"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Geef de pincode van je werkprofiel op om door te gaan"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Geef het wachtwoord van je werkprofiel op om door te gaan"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Geef voor extra veiligheid je apparaatpatroon op"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Compatibele media leveren een royaler geluid"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Bewegingen van het hoofd volgen"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"De audio wordt aangepast als je je hoofd beweegt, voor een natuurlijker geluid"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Type audioapparaat"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Onbekend"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Speaker"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Hoofdtelefoon"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Carkit"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Anders"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limiet voor downloadsnelheid van netwerk"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Stel een limiet in voor inkomend verkeer voor de netwerkbandbreedte. Deze wordt toegepast op alle netwerken die internetconnectiviteit bieden"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Limiet voor downloadsnelheid van netwerk instellen"</string>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 563d018..74e95e2 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ମିନିଟ ପରେ"</item>
     <item msgid="1574040255478150028">"5 ମିନିଟ ପରେ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 4a104cd..27383df 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ଏହି ଡିଭାଇସ୍ ସହ ୱାଇ-ଫାଇ ସେୟାର୍ କରାଯାଉଛି…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"ସଂଯୋଗ କରୁଛି…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ହଟସ୍ପଟ୍‌ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ଏହା ଆପଣ ବୋଲି ଯାଞ୍ଚ କରନ୍ତୁ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ସୁନିଶ୍ଚିତ କରାନ୍ତୁ ଏହା ଆପଣ ଅଟନ୍ତି"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ୱାଇ-ଫାଇ ପାସୱାର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ହଟସ୍ପଟ୍ ପାସୱାର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ସ୍ଵତଃ-ସଂଯୋଗ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ଆପଣଙ୍କ ପାସୱାର୍ଡ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ପାଟର୍ନ ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN ଭୁଲି ଯାଇଛନ୍ତି କି?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ଜାରି ରଖିବା ପାଇଁ ନିଜ ଡିଭାଇସ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ଡିଭାଇସର PIN ଲେଖନ୍ତୁ"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ଜାରି ରଖିବାକୁ ନିଜ ଡିଭାଇସ୍‌ର ପାସ୍‌ୱର୍ଡ ଲେଖନ୍ତୁ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ଜାରି ରଖିବାକୁ ନିଜ କାର୍ଯ୍ୟ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ପାଟର୍ନ ଡ୍ର କରନ୍ତୁ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ PIN ଲେଖନ୍ତୁ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ପାସୱାର୍ଡ ଲେଖନ୍ତୁ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ୱାର୍କ ପାଟର୍ନ ଡ୍ର କରନ୍ତୁ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ ୱାର୍କ PIN ଲେଖନ୍ତୁ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ଜାରି ରଖିବାକୁ ଆପଣଙ୍କ କାର୍ଯ୍ୟ ପାସ୍‌ୱର୍ଡ ଲେଖନ୍ତୁ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ଅଧିକ ସୁରକ୍ଷା ପାଇଁ ନିଜ ଡିଭାଇସ ପାଟର୍ନ ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"କମ୍ପାଟିବଲ ମିଡିଆରୁ ଆସିଥିବା ଅଡିଓ ଅଧିକ ଇମର୍ସିଭ ହୋଇଥାଏ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ହେଡ ଟ୍ରାକିଂ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ସାଉଣ୍ଡକୁ ଅଧିକ ସ୍ୱାଭାବିକ କରିବା ପାଇଁ ଆପଣ ଆପଣଙ୍କ ମୁଣ୍ଡକୁ ମୁଭ କରିବା ସମୟରେ ଅଡିଓ ପରିବର୍ତ୍ତନ ହୁଏ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ନେଟୱାର୍କ ଡାଉନଲୋଡ ରେଟ ସୀମା"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ଇଣ୍ଟରନେଟ ସଂଯୋଗ ପ୍ରଦାନ କରୁଥିବା ସମସ୍ତ ନେଟୱାର୍କରେ ଲାଗୁ ହେଉଥିବା ନେଟୱାର୍କ ବ୍ୟାଣ୍ଡୱିଡଥ ଇନଗ୍ରେସ ରେଟ ସୀମାକୁ କନଫିଗର କରନ୍ତୁ।"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ନେଟୱାର୍କ ଡାଉନଲୋଡ ରେଟ ସୀମାକୁ କନଫିଗର କରନ୍ତୁ"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ଆପ ଅନଇନଷ୍ଟଲ କରନ୍ତୁ"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ଗତ # ମାସରେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}other{ଗତ # ମାସରେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# ମାସରୁ ଅଧିକ ସମୟ ପୂର୍ବେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}other{# ମାସରୁ ଅଧିକ ସମୟ ପୂର୍ବେ ଇନଷ୍ଟଲ କରାଯାଇଥିବା ଆପ୍ସ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ଆପଣଙ୍କ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ଫିଟ ହେବା ପାଇଁ ଯଦି ଏହି ଆପକୁ ଡିଜାଇନ କରାଯାଇନାହିଁ ତେବେ ଏହାକୁ ଭ୍ୟୁ କରିବା ପାଇଁ ଏକ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ବାଛନ୍ତୁ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ପ୍ରସ୍ତାବିତ ଆପ୍ସ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ଆପଣ ଓଭରରାଇଡ କରିଥିବା ଆପ୍ସ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ଆପ ଡିଫଲ୍ଟ"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ପୂର୍ଣ୍ଣ ସ୍କ୍ରିନ"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ଅଧା ସ୍କ୍ରିନ"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ଡିଭାଇସ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ଆପଣ ଚଉଡ଼ା ଓ ଉଚ୍ଚତାର ଅନୁପାତ ପରିବର୍ତ୍ତନ କଲେ ଏହି ଆପଟି ରିଷ୍ଟାର୍ଟ ହେବ। ଆପଣ ସେଭ କରାଯାଇନଥିବା ପରିବର୍ତ୍ତନଗୁଡ଼ିକୁ ହରାଇପାରନ୍ତି।"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ଟିପଚିହ୍ନ ସେନ୍ସର"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ଫ୍ଲାସ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ଫ୍ଲାସ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ବିଷୟରେ"</string>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 13330f5..8a5d48f 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 ਮਿੰਟ ਬਾਅਦ"</item>
     <item msgid="1574040255478150028">"5 ਮਿੰਟਾਂ ਬਾਅਦ"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 9a01586..5f81b8e 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ਇਸ ਡੀਵਾਈਸ ਨਾਲ ਵਾਈ-ਫਾਈ ਸਾਂਝਾ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"ਕਨੈਕਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ਹੌਟਸਪੌਟ ਸਾਂਝਾ ਕਰੋ"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਇਹ ਤੁਸੀਂ ਹੋ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ਆਪਣੀ ਪਛਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"ਵਾਈ-ਫਾਈ ਪਾਸਵਰਡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ਹੌਟਸਪੌਟ ਪਾਸਵਰਡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ਸਵੈ-ਕਨੈਕਟ ਕਰੋ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ਕੀ ਆਪਣਾ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ਕੀ ਆਪਣਾ ਪੈਟਰਨ ਭੁੱਲ ਗਏ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ਕੀ ਆਪਣਾ ਪਿੰਨ ਭੁੱਲ ਗਏ?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਦਾ ਪੈਟਰਨ ਵਰਤੋ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਦਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਡੀਵਾਈਸ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣੀ ਕੰਮ ਸਬੰਧੀ ਵੰਨਗੀ ਵਰਤੋ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਪੈਟਰਨ ਬਣਾਓ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਕੰਮ ਸੰਬੰਧੀ ਪੈਟਰਨ ਬਣਾਓ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਕਾਰਜ ਪਿੰਨ ਦਾਖਲ ਕਰੋ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ਜਾਰੀ ਰੱਖਣ ਲਈ ਆਪਣਾ ਕੰਮ ਸਬੰਧੀ ਪਾਸਵਰਡ ਦਾਖਲ ਕਰੋ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ਵਾਧੂ ਸੁਰੱਖਿਆ ਲਈ, ਆਪਣੇ ਡੀਵਾਈਸ ਪੈਟਰਨ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ਅਨੁਰੂਪ ਮੀਡੀਆ ਤੋਂ ਆਡੀਓ ਵਧੇਰੇ ਇਮਰਸਿਵ ਬਣ ਜਾਂਦੀ ਹੈ"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ਹੈੱਡ ਟਰੈਕਿੰਗ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ਜਦੋਂ ਤੁਸੀਂ ਆਪਣਾ ਸਿਰ ਉਸ ਦਿਸ਼ਾ ਵੱਲ ਹਿਲਾਉਂਦੇ ਹੋ ਜਿੱਥੋਂ ਧੁਨੀ ਆ ਰਹੀ ਹੈ ਤਾਂ ਆਡੀਓ ਹੋਰ ਕੁਦਰਤੀ ਸੁਣਾਈ ਦਿੰਦੀ ਹੈ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ਨੈੱਟਵਰਕ ਡਾਊਨਲੋਡ ਦਰ ਸੀਮਾ"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ਨੈੱਟਵਰਕ ਬੈਂਡਵਿਡਥ ਪ੍ਰਵੇਸ਼ ਦਰ ਸੀਮਾ ਦਾ ਸੰਰੂਪਣ ਕਰੋ ਜੋ ਇੰਟਰਨੈੱਟ ਕਨੈਕਟੀਵਿਟੀ ਮੁਹੱਈਆ ਕਰਵਾਉਣ ਵਾਲੇ ਸਾਰੇ ਨੈੱਟਵਰਕਾਂ \'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ।"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ਨੈੱਟਵਰਕ ਡਾਊਨਲੋਡ ਦਰ ਸੀਮਾ ਦਾ ਸੰਰੂਪਣ ਕਰੋ"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ਐਪ ਅਣਸਥਾਪਤ ਕਰੋ"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{ਪਿਛਲੇ # ਮਹੀਨੇ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}one{ਪਿਛਲੇ # ਮਹੀਨੇ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}other{ਪਿਛਲੇ # ਮਹੀਨਿਆਂ ਵਿੱਚ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ ਐਪਾਂ}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{ਐਪਾਂ # ਮਹੀਨੇ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}one{ਐਪਾਂ # ਮਹੀਨੇ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}other{ਐਪਾਂ # ਮਹੀਨਿਆਂ ਤੋਂ ਵੱਧ ਪਹਿਲਾਂ ਸਥਾਪਤ ਕੀਤੀਆਂ ਗਈਆਂ}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"ਆਕਾਰ ਅਨੁਪਾਤ"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"ਜੇ ਇਹ ਐਪ ਤੁਹਾਡੇ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਮੁਤਾਬਕ ਡਿਜ਼ਾਈਨ ਨਹੀਂ ਕੀਤੀ ਗਈ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਦੇਖਣ ਲਈ ਕੋਈ ਆਕਾਰ ਅਨੁਪਾਤ ਚੁਣੋ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"ਸੁਝਾਈਆਂ ਗਈਆਂ ਐਪਾਂ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ਐਪਾਂ ਜੋ ਤੁਸੀਂ ਓਵਰਰਾਈਡ ਕੀਤੀਆਂ ਹਨ"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ਐਪ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"ਪੂਰੀ ਸਕ੍ਰੀਨ"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ਅੱਧੀ ਸਕ੍ਰੀਨ"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"ਡੀਵਾਈਸ ਆਕਾਰ ਅਨੁਪਾਤ"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ਤੁਹਾਡੇ ਵੱਲੋਂ ਆਕਾਰ ਅਨੁਪਾਤ ਨੂੰ ਬਦਲਣ \'ਤੇ ਐਪ ਮੁੜ-ਸ਼ੁਰੂ ਹੋ ਜਾਵੇਗੀ। ਤੁਸੀਂ ਅਣਰੱਖਿਅਤ ਤਬਦੀਲੀਆਂ ਗੁਆ ਸਕਦੇ ਹੋ।"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ਫਲੈਸ਼ ਸੂਚਨਾਵਾਂ"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ਫਲੈਸ਼ ਸੂਚਨਾਵਾਂ ਬਾਰੇ"</string>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index a51b5c4..4d13123 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Po minucie"</item>
     <item msgid="1574040255478150028">"Po 5 minutach"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Włącz automatyczną jasność, aby wydłużyć czas pracy na baterii"</item>
+    <item msgid="2256666063790193306">"Ogranicz wygaszanie ekranu, aby wydłużyć czas pracy na baterii"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index a80e5bc..d60ec1e 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Udostępniam Wi‑temu urządzeniu…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Łączę…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Udostępnij hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potwierdź swoją tożsamość"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potwierdź swoją tożsamość"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Hasło do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hasło do hotspota: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Łącz automatycznie"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Nie pamiętasz hasła?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Nie pamiętasz wzoru?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Nie pamiętasz kodu PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Aby przejść dalej, podaj wzór używany na urządzeniu"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Aby przejść dalej, podaj kod PIN używany na urządzeniu"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Aby przejść dalej, podaj hasło używane na urządzeniu"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Podaj wzór używany w profilu służbowym, by kontynuować"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Aby kontynuować, narysuj wzór"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Aby kontynuować, wpisz kod PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Aby kontynuować, wpisz hasło"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Aby kontynuować, narysuj wzór służbowy"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Podaj kod PIN używany w profilu służbowym, by kontynuować"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Podaj hasło używane w profilu służbowym, by kontynuować"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ze względów bezpieczeństwa podaj wzór używany na urządzeniu"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Jeszcze lepsza jakość dźwięku z kompatybilnych multimediów"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorowanie ruchów głowy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Dźwięk zmienia się, kiedy poruszasz głową, aby brzmieć bardziej naturalnie"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ograniczenie liczby żądań pobierania w sieci"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Skonfiguruj ograniczenie liczby żądań ruchu przychodzącego dla przepustowości sieci we wszystkich sieciach, które zapewniają połączenie z internetem"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Skonfiguruj ograniczenie liczby żądań pobierania w sieci"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinstaluj aplikację"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacje zainstalowane w ostatnim miesiącu}few{Aplikacje zainstalowane w ciągu ostatnich # miesięcy}many{Aplikacje zainstalowane w ciągu ostatnich # miesięcy}other{Aplikacje zainstalowane w ciągu ostatniego # miesiąca}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacja zainstalowana ponad miesiąc temu}few{Aplikacja zainstalowana ponad # miesiące temu}many{Aplikacja zainstalowana ponad # miesięcy temu}other{Aplikacja zainstalowana ponad # miesiąca temu}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Format obrazu"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Wybierz format obrazu, aby wyświetlić tę aplikację, jeśli nie została zaprojektowana, aby dopasować się do <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Sugerowane aplikacje"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacje z zastąpionymi ustawieniami"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Ustawienie domyślne aplikacji"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Pełny ekran"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Połowa ekranu"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Format obrazu urządzenia"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacja zostanie ponownie uruchomiona, kiedy zmienisz format obrazu. Możesz utracić niezapisane zmiany."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Czytnik linii papilarnych"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Powiadomienia świetlne"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"O powiadomieniach świetlnych"</string>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index c144b2b..8658ff9 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 5bd8835..be83639 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartilhando o Wi‑Fi com este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartilhar ponto de acesso"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmar sua identidade"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme sua identidade"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Senha do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Senha do ponto de acesso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexão automática"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu sua senha?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu seu padrão?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu seu PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Digite o PIN do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Digite a senha do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use seu padrão de trabalho para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe seu padrão para continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Digite seu PIN para continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Digite sua senha para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenhe seu padrão de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Digite seu PIN de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Digite sua senha de trabalho para continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para aumentar a segurança, use o padrão do dispositivo"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fones de ouvido"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit do carro"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação da velocidade de download da rede"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurar a limitação da velocidade de entrada da largura de banda da rede para todas as redes que se conectam à Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar a limitação da velocidade de download da rede"</string>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 521acfc..c11b6e2 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Após 1 minuto"</item>
     <item msgid="1574040255478150028">"Após 5 minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 2d72bb6..b7f4438 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"A partilhar o Wi‑Fi com este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"A ligar…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Partilhar zona Wi-Fi"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Valide a sua identidade"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme a sua identidade"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Palavra-passe de Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Palavra-passe da zona Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ligação automática"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu-se da sua palavra-passe?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu-se do seu padrão?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu-se do seu PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Introduza o PIN do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Introduza a palavra-passe do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Utilize o padrão de trabalho para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe o padrão para continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introduza o PIN para continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introduza a palavra-passe para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenho o padrão de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Introduza o PIN de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Introduza a palavra-passe de trabalho para continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para maior segurança, utilize o padrão do dispositivo"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos multimédia compatíveis torna-se mais envolvente"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme move a cabeça para soar mais natural"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Altifalante"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Auscultadores"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit para carro"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação de velocidade de transferência da rede"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configure a limitação de velocidade de entrada de largura de banda da rede que é aplicada a todas as redes que fornecem ligação à Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar limitação de velocidade de transferência da rede"</string>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index c144b2b..8658ff9 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Depois de um minuto"</item>
     <item msgid="1574040255478150028">"Depois de cinco minutos"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 5bd8835..be83639 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Compartilhando o Wi‑Fi com este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Conectando…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Compartilhar ponto de acesso"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmar sua identidade"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirme sua identidade"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Senha do Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Senha do ponto de acesso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conexão automática"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Esqueceu sua senha?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Esqueceu seu padrão?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Esqueceu seu PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Use o padrão do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Digite o PIN do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Digite a senha do dispositivo para continuar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Use seu padrão de trabalho para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenhe seu padrão para continuar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Digite seu PIN para continuar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Digite sua senha para continuar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenhe seu padrão de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Digite seu PIN de trabalho para continuar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Digite sua senha de trabalho para continuar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para aumentar a segurança, use o padrão do dispositivo"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"O áudio de dispositivos de mídia compatíveis se torna mais imersivo"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Acompanhamento da cabeça"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"O áudio muda conforme você move a cabeça para soar mais natural"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"Tipo de dispositivo de áudio"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"Desconhecido"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"Alto-falante"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"Fones de ouvido"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"Kit do carro"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"Outro"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitação da velocidade de download da rede"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurar a limitação da velocidade de entrada da largura de banda da rede para todas as redes que se conectam à Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurar a limitação da velocidade de download da rede"</string>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index 02b5f3d..372159c 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"După un minut"</item>
     <item msgid="1574040255478150028">"După cinci minute"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 83f74a5..bc05875 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Se permite accesul la Wi-Fi pentru acest dispozitiv…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Se conectează…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Permite accesul la hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Confirmă-ți identitatea"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Confirmați că sunteți dvs."</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Parola rețelei Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Parolă hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Conectare automată"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ai uitat parola?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ai uitat modelul?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ai uitat codul PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Pentru a continua, folosește modelul pentru deblocarea dispozitivului"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Pentru a continua, introdu codul PIN al dispozitivului"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Pentru a continua, introdu parola dispozitivului"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Pentru a continua, folosește modelul de serviciu"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Desenează modelul pentru a continua"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Introdu codul PIN pentru a continua"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Introdu parola pentru a continua"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Desenează modelul de serviciu pentru a continua"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Pentru a continua, introdu codul PIN de serviciu"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Pentru a continua, introdu parola de serviciu"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Pentru mai multă siguranță, folosește modelul dispozitivului"</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sunetul de la dispozitivele media compatibile devine mai captivant"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Urmărirea mișcărilor capului"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sunetul se modifică pe măsură ce miști capul, pentru o experiență mai naturală"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limita vitezei de descărcare a rețelei"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Configurează limita lățimii de bandă de intrare a rețelei, care se aplică tuturor rețelelor care asigură conexiune la internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Configurează limita vitezei de descărcare a rețelei"</string>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index b4b05f1..985de52 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Через 1 минуту"</item>
     <item msgid="1574040255478150028">"Через 5 минут"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 8579e6d..6aed94f 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Предоставление доступа к сети Wi‑Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Подключение…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Поделиться точкой доступа"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Подтвердите, что это вы"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Подтвердите, что это вы"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль сети Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль точки доступа: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматическое подключение"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забыли пароль?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забыли графический ключ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забыли PIN-код?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Чтобы продолжить, введите графический ключ устройства."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Чтобы продолжить, введите PIN-код устройства."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Чтобы продолжить, введите пароль устройства."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Чтобы продолжить, введите графический ключ рабочего профиля"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Введите графический ключ, чтобы продолжить."</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Введите PIN-код, чтобы продолжить."</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Введите пароль, чтобы продолжить."</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Нарисуйте графический ключ рабочего профиля, чтобы продолжить."</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Чтобы продолжить, введите PIN-код рабочего профиля."</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Чтобы продолжить, введите пароль рабочего профиля"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Укажите графический ключ"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук из поддерживаемых источников становится более выразительным"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Отслеживание движений головы"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук меняется, когда вы двигаете головой, и становится более естественным."</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничение скорости скачивания"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Ограничить пропускную способность входящего трафика. Эта настройка применяется ко всем сетям, подключенным к интернету."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Настроить ограничение скорости скачивания"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Удалить приложение"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Приложения, установленные в течение # последнего месяца}one{Приложения, установленные в течение # последнего месяца}few{Приложения, установленные в течение # последних месяцев}many{Приложения, установленные в течение # последних месяцев}other{Приложения, установленные в течение # последнего месяца}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Приложения, установленные более # месяца назад}one{Приложения, установленные более # месяца назад}few{Приложения, установленные более # месяцев назад}many{Приложения, установленные более # месяцев назад}other{Приложения, установленные более # месяца назад}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Соотношение сторон"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Если приложение не оптимизировано для устройства <xliff:g id="DEVICE_NAME">%1$s</xliff:g>, выберите подходящее соотношение сторон."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Подходящие приложения"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Приложения с переопределенным вами значением"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Значение по умолчанию в приложении"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Полноэкранный режим"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Половина экрана"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Соотношение сторон устройства"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Когда вы обновите соотношение сторон, приложение перезапустится. Некоторые изменения могут не сохраниться."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер отпечатков пальцев"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Уведомления со вспышкой"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Об уведомлениях со вспышкой"</string>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index c1e87a2..2935fbc 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"මිනිත්තු 1කට පසුව"</item>
     <item msgid="1574040255478150028">"මිනිත්තු 5කට පසුව"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 8111a9a..5e86a56 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"මෙම උපාංගය සමඟ Wi‑Fi බෙදා ගනිමින්…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"සබැඳෙමින්…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"හොට්ස්පොට් බෙදා ගන්න"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ඒ ඔබ බව සත්‍යාපනය කරන්න"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ඒ ඔබ බව සත්‍යාපන කරන්න"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi මුරපදය: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"හොට්ස්පොට් මුරපදය: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ස්වයං‑සම්බන්ධ වීම"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"ඔබේ මුරපදය අමතකද?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"ඔබේ රටාව අමතකද?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"ඔබේ PIN අමතකද?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"දිගටම කරගෙන යාමට ඔබේ උපාංග රටාව භාවිත කරන්න"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"දිගටම කරගෙන යාමට ඔබේ උපාංග PIN අංකය ඇතුළු කරන්න"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"දිගටම කරගෙන යාමට ඔබේ උපාංග මුරපදය ඇතුළු කරන්න"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල රටාව භාවිත කරන්න"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"ඉදිරියට යාමට ඔබේ රටාව අඳින්න"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ඉදිරියට යාමට ඔබේ රහස් අංකය ඇතුළු කරන්න"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ඉදිරියට යාමට ඔබේ මුරපදය ඇතුළු කරන්න"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"ඉදිරියට යාමට ඔබේ වැඩ රටාව අඳින්න"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල PIN අංකය ඇතුළු කරන්න"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"දිගටම කරගෙන යාමට ඔබේ කාර්යාල මුරපදය ඇතුළු කරන්න"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"අමතර ආරක්ෂාව සඳහා, ඔබේ උපාංග රටාව භාවිතා කරන්න"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"ගැළපෙන මාධ්‍යවලින් ශ්‍රව්‍ය වඩාත් ගිලී යයි"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"හිස සටහන් තබා ගැනීම"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ඔබ ඔබගේ හිස වඩාත් ස්වභාවික ශබ්ද වීමට ගෙන යන විට ශ්‍රව්‍ය වෙනස් වේ"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ජාල බාගැනීම් අනුපාත සීමාව"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"අන්තර්ජාල සබැඳුම සපයන සියලු ජාල සඳහා යෙදෙන ජාල කලාප පළල ඇතුළු වීමේ අනුපාත සීමාව වින්‍යාස කරන්න."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"ජාල බාගැනීම් අනුපාත සීමාව වින්‍යාස කරන්න"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"යෙදුම අස්ථාපනය කරන්න"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}one{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}other{පසුගිය මාස # තුළ ස්ථාපනය කරන ලද යෙදුම්}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}one{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}other{මාස #කට පෙර ස්ථාපනය කර ඇති යෙදුම්}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"දර්ශන අනුපාතය"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"මෙම යෙදුම ඔබේ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> වෙත ගැළපෙන පරිදි නිර්මාණය කර නොමැති නම් එය බැලීමට දර්ශන අනුපාතයක් තෝරා ගන්න"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"යෝජිත යෙදුම්"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"ඔබ ප්‍රතික්‍ෂේප කර ඇති යෙදුම්"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"පෙරනිමි යෙදුම"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"පූර්ණ තිරය"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"අර්ධ තිරය"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"උපාංග දර්ශන අනුපාතය"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"ඔබ දර්ශන අනුපාතය වෙනස් කළ විට යෙදුම නැවත ආරම්භ වනු ඇත. ඔබට නොසුරකින ලද වෙනස්කම් අහිමි විය හැක."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"ඇඟිලි සලකුණු සංවේදකය"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ෆ්ලෑෂ් දැනුම්දීම්"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ෆ්ලෑෂ් දැනුම්දීම් පිළිබඳව"</string>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index b867c38..d51285c 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po 1 minúte"</item>
     <item msgid="1574040255478150028">"Po 5 minútach"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index b2c8c7f..91deb3f 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"S týmto zariadením sa zdieľa pripojenie Wi‑Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Pripája sa…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Zdieľať hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Overenie vašej totožnosti"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Ste to vy?"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Heslo siete Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Heslo hotspotu: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automaticky pripájať"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Zabudli ste heslo?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Zabudli ste vzor?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Zabudli ste PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Ak chcete pokračovať, použite bezpečnostný vzor zariadenia"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ak chcete pokračovať, zadajte PIN zariadenia"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ak chcete pokračovať, zadajte heslo zariadenia"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Ak chcete pokračovať, použite pracovný bezpečnostný vzor"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Pokračujte nakreslením vzoru"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Pokračujte zadaním kódu PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Pokračujte zadaním hesla"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Pokračujte nakreslením vzoru pre pracovný účet"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Pre pokračovanie zadajte svoj pracovný PIN"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ak chcete pokračovať, zadajte pracovné heslo"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Zadajte bezpečnostný vzor zariadenia a získajte vyššiu mieru zabezpečenia"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvuk z kompatibilných médií bude strhujúcejší"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Sledovanie pohybov hlavy"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zmeny zvuku pri pohybe hlavou budú prirodzenejšie"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limit rýchlosti sťahovania v sieti"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Nakonfigurujte limit rýchlosti sťahovania v sieti, ktorý sa bude vzťahovať na všetky siete umožňujúce pripojenie k internetu."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurácia limitu rýchlosti sťahovania v sieti"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odinštalovať aplikáciu"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikácie nainštalované za posledný # mesiac}few{Aplikácie nainštalované za posledné # mesiace}many{Aplikácie nainštalované za posledného # mesiaca}other{Aplikácie nainštalované za posledných # mesiacov}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikácie nainštalované pred viac než # mesiacom}few{Aplikácie nainštalované pred viac než # mesiacmi}many{Aplikácie nainštalované pred viac než # mesiaca}other{Aplikácie nainštalované pred viac než # mesiacmi}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Pomer strán"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Vyberte pomer strán zobrazenia tejto aplikácie, keď nebola navrhnutá tak, aby sa zmestila do zariadenia <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Navrhované aplikácie"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikácie, ktoré ste prepísali"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Predvolené nastavenie aplikácie"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celá obrazovka"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Polovica obrazovky"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Pomer strán zariadenia"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Keď zmeníte pomer strán, aplikácia sa reštartuje. Môžete prísť o neuložené zmeny."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Senzor odtlačkov prstov"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Svetelné upozornenia"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Svetelné upozornenia"</string>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index 7291e8e..0a9ed00 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Po 1 minuti"</item>
     <item msgid="1574040255478150028">"Po 5 minutah"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 0cd14f7..efd3bd6 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Deljenje povezave Wi‑Fi s to napravo …"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Povezovanje …"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Delite dostopno točko"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Potrdite, da ste res vi"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Potrdite, da ste res vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Geslo za Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Geslo za dostopno točko: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Samodejna povezava"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ste pozabili geslo?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ste pozabili vzorec?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ste pozabili svoj PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Za nadaljevanje uporabite vzorec za odklepanje naprave."</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Za nadaljevanje vnesite kodo PIN za napravo."</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Če želite nadaljevati, vnesite geslo za napravo."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Če želite nadaljevati, uporabite vzorec za delovni profil"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Če želite nadaljevati, narišite vzorec"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Če želite nadaljevati, vnesite kodo PIN"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Če želite nadaljevati, vnesite geslo"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Če želite nadaljevati, narišite vzorec za delovni profil"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Za nadaljevanje vnesite kodo PIN za delovni profil"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Če želite nadaljevati, vnesite geslo za delovni profil"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Zaradi večje varnosti vnesite vzorec za to napravo"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Zvok iz združljivih predstavnosti dobi prostornejšo razsežnost."</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Spremljanje premikov glave"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Zvok se med premikanjem glave spreminja za naravnejšo izkušnjo."</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Omejitev hitrosti prenosa omrežja"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurirajte omejitev dohodne pasovne širine omrežja, ki velja za vsa omrežja, ki zagotavljajo internetno povezljivost."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguriranje omejitve hitrosti prenosa omrežja"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Odmestitev aplikacije"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacije, nameščene v zadnjem # mesecu}one{Aplikacije, nameščene v zadnjem # mesecu}two{Aplikacije, nameščene v zadnjih # mesecih}few{Aplikacije, nameščene v zadnjih # mesecih}other{Aplikacije, nameščene v zadnjih # mesecih}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacije, nameščene pred več kot # mesecem}one{Aplikacije, nameščene pred več kot # mesecem}two{Aplikacije, nameščene pred več kot # mesecema}few{Aplikacije, nameščene pred več kot # meseci}other{Aplikacije, nameščene pred več kot # meseci}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Razmerje stranic"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Izberite razmerje stranic za ogled te aplikacije, če ni bila oblikovana za popolno prileganje napravi »<xliff:g id="DEVICE_NAME">%1$s</xliff:g>«."</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Predlagane aplikacije"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacije, za katere ste uveljavili preglasitev"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Privzeto za aplikacijo"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Celozaslonski način"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Način polovice zaslona"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Razmerje stranic naprave"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16 : 9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3 : 2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4 : 3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacija se bo znova zagnala, ko boste spremenili razmerje stranic. Morda boste izgubili neshranjene spremembe."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Tipalo prstnih odtisov"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Obveščanje z utripanjem"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"O obveščanju z utripanjem"</string>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 5111be2..ab89cca 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pas 1 minute"</item>
     <item msgid="1574040255478150028">"Pas 5 minutash"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index e77cf71..c1c54eb 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -522,7 +522,7 @@
     <string name="unlock_set_unlock_launch_picker_title" msgid="4981063601772605609">"Kyçja e ekranit"</string>
     <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7631371082326055429">"Kyçja e profilit të punës"</string>
     <string name="unlock_set_unlock_off_title" msgid="2831957685685921667">"Asnjë"</string>
-    <string name="unlock_set_unlock_none_title" msgid="2844029875174409728">"Me rrëshqitje"</string>
+    <string name="unlock_set_unlock_none_title" msgid="2844029875174409728">"Rrëshqitje"</string>
     <string name="unlock_set_unlock_pattern_title" msgid="8224895208452995332">"Motiv"</string>
     <string name="unlock_set_unlock_pin_title" msgid="5283636759362880407">"Kod PIN"</string>
     <string name="unlock_set_unlock_password_title" msgid="2559842616268607041">"Fjalëkalim"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Po ndan Wi‑Fi me këtë pajisje…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Po lidhet…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ndaj zonën e qasjes për internet"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiko që je ti"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifiko që je ti"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Fjalëkalimi i Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Fjalëkalimi i zonës së qasjes për internet: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Lidh automatikisht"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Harrove fjalëkalimin?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Harrove motivin?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Harrove kodin PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Përdor motivin e pajisjes për të vazhduar"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Fut kodin PIN të pajisjes për të vazhduar"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Fut fjalëkalimin e pajisjes për të vazhduar"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Përdor motivin tënd të punës për të vazhduar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Vizato motivin për të vazhduar"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Fut kodin PIN për të vazhduar"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Fut fjalëkalimin për të vazhduar"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Vizato motivin e punës për të vazhduar"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Fut kodin tënd PIN të punës për të vazhduar"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Fut fjalëkalimin tënd të punës për të vazhduar"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Për më shumë siguri, përdor motivin e pajisjes"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Audioja nga media e përputhshme bëhet më përfshirëse"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Monitorimi i lëvizjes së kokës"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Audioja ndryshon ndërsa ti lëviz kokën për të tingëlluar më e natyrshme"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Kufiri i shpejtësisë së shkarkimit në rrjet"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfiguro kufirin e shpejtësisë së daljes së bandës së gjerë të rrjetit që zbatohet për të gjitha rrjetet që ofrojnë lidhje me internetin."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfiguro kufirin e shpejtësisë së shkarkimit në rrjet"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Çinstalo aplikacionin"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Aplikacionet e instaluara në # muajin e fundit}other{Aplikacionet e instaluara në # muajt e fundit}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Aplikacionet e instaluara më shumë se # muaj më parë}other{Aplikacionet e instaluara më shumë se # muaj më parë}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Raporti i pamjes"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Zgjidh një raport pamjeje për ta parë këtë aplikacion nëse nuk është projektuar për t\'u përshtatur me pajisjen tënde <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Aplikacionet e sugjeruara"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Aplikacionet që ke anuluar"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Parazgjedhja e aplikacionit"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Ekran i plotë"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Gjysmë ekrani"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Raporti i pamjes i pajisjes"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Aplikacioni do të riniset kur të ndryshosh raportin e pamjes. Mund të humbësh ndryshimet e paruajtura."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensori i gjurmës së gishtit"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Njoftimet me blic"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Rreth njoftimeve me blic"</string>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 831fbee..802880e 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"После 1 минута"</item>
     <item msgid="1574040255478150028">"После 5 минута"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 198e85b..e113b79 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Дели се Wi‑Fi са овим уређајем…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Повезује се…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Делите хотспот"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Потврдите свој идентитет"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Потврдите да сте то ви"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Лозинка за WiFi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Лозинка хотспота: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Аутоматско повезивање"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Заборавили сте лозинку?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Заборавили сте шаблон?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Заборавили сте PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Користите шаблон за уређај да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Унесите PIN уређаја да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Унесите лозинку уређаја да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Користите шаблон за пословни профил да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Нацртајте шаблон да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Унесите PIN да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Унесите лозинку да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Нацртајте шаблон за посао да бисте наставили"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Унесите PIN за пословни профил да бисте наставили"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Унесите лозинку за пословни профил да бисте наставили"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ради веће безбедности користите шаблон за уређај"</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук компатибилних медија постаје реалистичнији"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Праћење главе"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Звук се мења како померате главу да би деловао природније"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ограничење брзине преузимања на мрежи"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Конфигуришите ограничење брзине долазног пропусног опсега мреже које се примењује на све мреже које пружају интернет везу."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Конфигуришите ограничење брзине преузимања на мрежи"</string>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index e4c73a8..107f77f 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"Efter 1 minut"</item>
     <item msgid="1574040255478150028">"Efter 5 minuter"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"Aktivera anpassad ljusstyrka för att förlänga batteritiden"</item>
+    <item msgid="2256666063790193306">"Sänk skärmens tidsgräns för att förlänga batteritiden"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index ba05cda..5585c62 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi delas med den här enheten …"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ansluter …"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Dela surfzon"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Verifiera din identitet"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Verifiera din identitet"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wifi-lösenord: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Lösenord till surfzon: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Automatisk anslutning"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Har du glömt lösenordet?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Har du glömt mönstret?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Har du glömt pinkoden?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Ange mönstret för enheten om du vill fortsätta"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ange pinkoden för enheten om du vill fortsätta"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ange lösenordet för enheten om du vill fortsätta"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Ange mönstret för jobbprofilen om du vill fortsätta"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Rita mönstret för att fortsätta"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ange pinkoden för att fortsätta"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ange lösenordet för att fortsätta"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Ange mönstret för arbetet om du vill fortsätta"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Ange pinkoden för jobbprofilen om du vill fortsätta"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ange lösenordet för jobbprofilen om du vill fortsätta"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Använd mönstret för enheten för att öka säkerheten"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Ljud från kompatibel media blir mer omgivande"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Huvudspårning"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ljudet ändras när du rör på huvudet för att låta mer naturligt"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Gräns för nedladdningshastighet i nätverket"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Konfigurera den inkommande bandbredden i nätverket som ska gälla för alla nätverk med internetanslutning."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Konfigurera gräns för nedladdningshastighet i nätverket"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Avinstallera appen"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Appar som installerades den senaste månaden (# månad)}other{Appar som installerades de senaste # månaderna}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Appar som installerades för över # månad sedan}other{Appar som installerades för över # månader sedan}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Bildformat"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Välj ett bildformat att visa appen i om den inte har utformats för att passa din <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Föreslagna appar"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Appar som du har åsidosatt"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Standard för appen"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Helskärm"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Halvskärm"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Enhetens bildformat"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Appen startas om när du ändrar bildformatet. Du kan förlora ändringar som inte har sparats."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Fingeravtryckssensor"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Blinkande aviseringar"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Om blinkande aviseringar"</string>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index c448b3b..4ac48a9 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Baada ya dakika 1"</item>
     <item msgid="1574040255478150028">"Baada ya dakika 5"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 4fa7c7a..e6ad8a0 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Inashiriki Wi‑Fi na kifaa hiki…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Inaunganisha…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Shiriki mtandaopepe"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Thibitisha kwamba ni wewe"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Thibitisha kuwa ni wewe"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Nenosiri la Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Nenosiri la mtandaopepe: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Unganisha kiotomatiki"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Je, umesahau nenosiri lako?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Je, umesahau mchoro wako?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Je, umesahau PIN yako?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Weka mchoro wa kufungua kifaa chako ili uendelee"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Weka PIN ya kifaa chako ili uendelee"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Weka nenosiri la kifaa chako ili uendelee"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Tumia mchoro wa kazini ili uendelee"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Chora mchoro wako ili uendelee"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Weka PIN yako ili uendelee"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Weka nenosiri lako ili uendelee"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Chora mchoro wa wasifu wako wa kazini ili uendelee"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Weka PIN ya kazini ili uendelee"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Weka nenosiri lako ili uendelee"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ili kuimarisha usalama, tumia mchoro wa kufungua kifaa chako"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Sauti kutoka kwenye maudhui yanayooana huwa murua zaidi"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ufuatiliaji wa kichwa"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Sauti hubadilika kadiri unavyosogeza kichwa chako ili isikike kuwa ya asili zaidi"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Kiwango cha kikomo cha upakuaji wa mtandao"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Weka mipangilio ya kiwango cha kikomo cha uingiaji kipimo data cha mtandao ambacho kinatumika katika mitandao yote inayotoa muunganisho wa intaneti."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Weka mipangilio ya kiwango cha kikomo cha upakuaji wa mtandao"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Ondoa programu"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Programu zilizosakinishwa mwezi # uliopita}other{Programu zilizosakinishwa miezi # iliyopita}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Programu zilizosakinishwa zaidi ya mwezi # uliopita}other{Programu zilizosakinishwa zaidi ya miezi # iliyopita}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Uwiano"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Chagua uwiano ili uangalie programu hii iwapo haijaundwa ili kutoshea kwenye <xliff:g id="DEVICE_NAME">%1$s</xliff:g> yako"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Programu unazopendekezewa"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Programu ambazo umebatilisha"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Chaguomsingi wa programu"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Skrini nzima"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Nusu skrini"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Uwiano wa kifaa"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Programu itazima na kisha iwake utakapobadilisha uwiano. Huenda ukapoteza mabadiliko ambayo hujahifadhi."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Kitambua alama ya kidole"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Arifa za mweko"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Kuhusu arifa za mweko"</string>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index 00cb41b..e9ded7b 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 நிமிடத்திற்குப் பிறகு"</item>
     <item msgid="1574040255478150028">"5 நிமிடங்களுக்குப் பிறகு"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index b0228c8..18c6001 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"இந்தச் சாதனத்துடன் வைஃபை பகிரப்படுகிறது…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"இணைக்கிறது…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ஹாட்ஸ்பாட்டைப் பகிர்தல்"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"நீங்கள்தான் என்பதை உறுதிப்படுத்தவும்"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"நீங்கள்தான் என உறுதிசெய்க"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"வைஃபை கடவுச்சொல்: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ஹாட்ஸ்பாட் கடவுச்சொல்: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"தானாக இணைத்தல்"</string>
@@ -1440,10 +1440,14 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"கடவுச்சொல்லை மறந்துவிட்டீர்களா?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"பேட்டர்னை மறந்துவிட்டீர்களா?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"பின்னை மறந்துவிட்டீர்களா?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"தொடர, சாதனப் பேட்டர்னை வரையவும்"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"தொடர, சாதனப் பின்னை உள்ளிடவும்"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"தொடர, சாதனக் கடவுச்சொல்லை உள்ளிடவும்"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"தொடர, பணிப் பேட்டர்னை வரையவும்"</string>
+    <!-- no translation found for lockpassword_confirm_your_pattern_generic (7401165571170203743) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_pin_generic (8990266101852808091) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_password_generic (8823867445451497224) -->
+    <skip />
+    <!-- no translation found for lockpassword_confirm_your_pattern_generic_profile (7003851856761939690) -->
+    <skip />
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"தொடர, பணிப் பின்னை உள்ளிடவும்"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"தொடர, பணிக் கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"கூடுதல் பாதுகாப்பிற்கு, சாதனப் பேட்டர்னை வரையவும்"</string>
@@ -4665,6 +4669,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"இணக்கமான மீடியாவிலிருந்து வரும் ஆடியோ இன்னும் ஆழ்ந்த இசை அனுபவத்தைத் தரும்"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"ஹெட் டிராக்கிங்"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"ஒலிக்கு ஏற்றாற்போல உங்கள் தலையை மிக இயல்பாக நகர்த்தும்போது ஆடியோவும் மாறும்"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"நெட்வொர்க் பதிவிறக்க விகிதத்திற்கான வரம்பு"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"இணைய இணைப்பை வழங்கும் அனைத்து நெட்வொர்க்குகளுக்கும் பொருந்தக்கூடிய நெட்வொர்க் இணைய வேகப் பதிவிறக்க விகிதத்திற்கான வரம்பை உள்ளமையுங்கள்."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"நெட்வொர்க் பதிவிறக்க விகிதத்திற்கான வரம்பை உள்ளமையுங்கள்"</string>
@@ -4697,24 +4713,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ஆப்ஸை நிறுவல் நீக்கு"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{கடந்த # மாதத்தில் நிறுவப்பட்ட ஆப்ஸ்}other{கடந்த # மாதங்களில் நிறுவப்பட்ட ஆப்ஸ்}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{# மாதத்திற்கு முன்பு நிறுவப்பட்ட ஆப்ஸ்}other{# மாதங்களுக்கு முன்பு நிறுவப்பட்ட ஆப்ஸ்}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"தோற்ற விகிதம்"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"இந்த ஆப்ஸ் உங்கள் <xliff:g id="DEVICE_NAME">%1$s</xliff:g> சாதனத்திற்கு ஏற்றவாறு வடிவமைக்கப்படவில்லை எனில் ஆப்ஸைப் பயன்படுத்துவதற்கான தோற்ற விகிதத்தைத் தேர்வுசெய்யுங்கள்"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"பரிந்துரைக்கப்படும் ஆப்ஸ்"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"மீறிச் செயல்படுதல் அமைக்கப்பட்ட ஆப்ஸ்"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ஆப்ஸ் இயல்புநிலை"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"முழுத்திரை"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"பாதித்திரை"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"சாதனத்தின் தோற்ற விகிதம்"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"தோற்ற விகிதத்தை நீங்கள் மாற்றும்போது ஆப்ஸ் மீண்டும் தொடங்கும். சேமிக்கப்படாத மாற்றங்களை நீங்கள் இழக்க நேரிடலாம்."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"கைரேகை சென்சார்"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"ஃபிளாஷ் அறிவிப்புகள்"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"ஃபிளாஷ் அறிவிப்புகள் குறித்த அறிமுகம்"</string>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 0f9d73c..c88cdcbc 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 నిమిషం తర్వాత"</item>
     <item msgid="1574040255478150028">"5 నిమిషాల తర్వాత"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index ea028ca..a828d41 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"ఈ పరికరంతో Wi‑Fiని షేర్ చేస్తోంది…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"కనెక్ట్ అవుతోంది…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"హాట్‌స్పాట్‌ను షేర్ చేయండి"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"అది మీరేనని ధృవీకరించండి"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ఇది మీరేనని ధృవీకరించండి"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi‑Fi పాస్‌వర్డ్: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"హాట్‌స్పాట్ పాస్‌వర్డ్: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"ఆటోమేటిక్-కనెక్ట్"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"మీ పాస్‌వర్డ్‌ను మరచిపోయారా?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"మీ ఆకృతిని మర్చిపోయారా?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"మీ పిన్‌ను మర్చిపోయారా?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"కొనసాగించడానికి మీ పరికరం ఆకృతిని ఉపయోగించండి"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"కొనసాగడానికి మీ డివైజ్ PINను ఎంట‌ర్‌ చేయండి"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"కొనసాగడానికి మీ పరికర పాస్‌వర్డ్‌ను ఎంటర్ చేయండి."</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"కొనసాగడానికి మీ కార్యాలయ నమూనాను ఉపయోగించండి"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"కొనసాగడానికి మీ ఆకృతిని డ్రా చేయండి"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"కొనసాగడానికి మీ PINను ఎంటర్ చేయండి"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"కొనసాగడానికి మీ పాస్‌వర్డ్‌ను ఎంటర్ చేయండి"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"కొనసాగడానికి మీ వర్క్ ఆకృతిని డ్రా చేయండి"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"కొనసాగడానికి మీ ఆఫీస్ పిన్ నెంబ‌ర్‌ను ఎంట‌ర్ చేయండి"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"కొనసాగడానికి మీ కార్యాలయ పాస్‌వర్డ్‌ను నమోదు చేయండి"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"అదనపు సెక్యూరిటీ కోసం, మీ పరికర ఆకృతిని ఉపయోగించండి"</string>
@@ -2933,7 +2933,7 @@
     <string name="keywords_backup" msgid="707735920706667685">"బ్యాకప్, బ్యాకప్"</string>
     <string name="keywords_assist_gesture_launch" msgid="7710762655355161924">"సంజ్ఞ"</string>
     <string name="keywords_face_unlock" msgid="545338452730885392">"ముఖం, అన్‌లాక్, ప్రామాణీకరణ, సైన్ ఇన్"</string>
-    <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ఫేస్, అన్‌లాక్, ప్రామాణీకరణ, సైన్ ఇన్ చేయి, వేలిముద్ర, బయోమెట్రిక్"</string>
+    <string name="keywords_biometric_unlock" msgid="8569545388717753692">"ఫేస్, అన్‌లాక్, ప్రామాణీకరణ, సైన్ ఇన్, వేలిముద్ర, బయోమెట్రిక్"</string>
     <string name="keywords_imei_info" msgid="8848791606402333514">"imei, meid, min, prl వెర్షన్, imei sv"</string>
     <string name="keywords_sim_status" msgid="4221401945956122228">"నెట్‌వర్క్, మొబైల్ నెట్‌వర్క్ స్టేటస్, సర్వీస్ స్టేటస్, సిగ్నల్ సామర్థ్యం, మొబైల్ నెట్‌వర్క్ రకం, రోమింగ్"</string>
     <string name="keywords_sim_status_esim" msgid="3338719238556853609">"నెట్‌వర్క్, మొబైల్ నెట్‌వర్క్ స్టేటస్, సర్వీస్ స్టేటస్, సిగ్నల్ సామర్థ్యం, మొబైల్ నెట్‌వర్క్ రకం, రోమింగ్, EID"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"అనుకూల మీడియా నుండి వచ్చే ఆడియో మరింతగా లీనమయ్యేలా చేస్తుంది"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"హెడ్ ట్రాకింగ్"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"మీరు మీ తలను మరింత సహజంగా వినిపించేలా కదిపేటప్పుడు ఆడియో మారుతుంది"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ఆడియో పరికరం రకం"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"తెలియనిది"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"స్పీకర్"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"హెడ్‌ఫోన్స్"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"కార్ కిట్"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"ఇతరం"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"నెట్‌వర్క్ డౌన్‌లోడ్ రేట్ పరిమితి"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"ఇంటర్నెట్ కనెక్టివిటీని అందించే అన్ని నెట్‌వర్క్‌లకు వర్తించే నెట్‌వర్క్ బ్యాండ్‌విడ్త్ ఎంటర్‌ రేటు పరిమితిని కాన్ఫిగర్ చేయండి."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"నెట్‌వర్క్ డౌన్‌లోడ్ రేట్ పరిమితిని కాన్ఫిగర్ చేయండి"</string>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index dd07c77..89ac5ab 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"หลังจาก 1 นาที"</item>
     <item msgid="1574040255478150028">"หลังจาก 5 นาที"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index e0bfcb8..016827a 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"กำลังแชร์ Wi‑Fi กับอุปกรณ์เครื่องนี้…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"กำลังเชื่อมต่อ…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"แชร์ฮอตสปอต"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"ยืนยันว่าเป็นคุณ"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"ยืนยันว่าเป็นคุณ"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"รหัสผ่าน Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"รหัสผ่านฮอตสปอต: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"เชื่อมต่ออัตโนมัติ"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"หากลืมรหัสผ่าน"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"หากลืมรูปแบบ"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"หากลืม PIN"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"ใช้รูปแบบของอุปกรณ์เพื่อดำเนินการต่อ"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"ป้อน PIN ของอุปกรณ์เพื่อดำเนินการต่อ"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"ป้อนรหัสผ่านของอุปกรณ์เพื่อดำเนินการต่อ"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"ใช้รูปแบบของที่ทำงานเพื่อดำเนินการต่อ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"วาดรูปแบบเพื่อดำเนินการต่อ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"ป้อน PIN เพื่อดําเนินการต่อ"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"ป้อนรหัสผ่านเพื่อดำเนินการต่อ"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"วาดรูปแบบของโปรไฟล์งานเพื่อดำเนินการต่อ"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"ป้อน PIN ของโปรไฟล์งานเพื่อดำเนินการต่อ"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"ป้อนรหัสผ่านของโปรไฟล์งานเพื่อดำเนินการต่อ"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"ใช้รูปแบบของอุปกรณ์เพื่อเพิ่มความปลอดภัย"</string>
@@ -2123,7 +2123,7 @@
     <string name="keywords_accessibility" msgid="4263443239404659143">"ใช้งานง่าย, เข้าถึงง่าย, ความช่วยเหลือ, การช่วยเหลือพิเศษ"</string>
     <string name="keywords_magnification" msgid="3908145308269840862">"แว่นขยายหน้าจอ, ซูม, การขยาย, สายตาเลือนราง, ขยาย, ทำให้ใหญ่ขึ้น"</string>
     <string name="keywords_talkback" msgid="2816435437095102527"></string>
-    <string name="keywords_live_caption" msgid="1667203998080567556">"คำบรรยายแทนเสียง, คำบรรภาพ, คำบรรยาย, Live Transcribe, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, CART, การแปลงคำพูดเป็นข้อความ"</string>
+    <string name="keywords_live_caption" msgid="1667203998080567556">"คำบรรยายแทนเสียง, คำบรรภาพ, คำบรรยาย, Live Transcribe, มีปัญหาในการได้ยิน, สูญเสียการได้ยิน, CART, การแปลงเสียงพูดเป็นข้อความ"</string>
     <string name="keywords_live_transcribe" msgid="3226990195174890997"></string>
     <string name="keywords_sound_notifications" msgid="8183107485754075413"></string>
     <string name="keywords_sound_amplifier" msgid="939404835256246663"></string>
@@ -3672,8 +3672,8 @@
     <string name="ignore_optimizations_off_desc" msgid="3324571675983286177">"แนะนำเพื่ออายุการใช้งานแบตเตอรี่ที่นานขึ้น"</string>
     <string name="app_list_preference_none" msgid="1635406344616653756">"ไม่มี"</string>
     <string name="work_profile_usage_access_warning" msgid="3477719910927319122">"การปิดสิทธิ์เข้าถึงการใช้งานของแอปนี้ไม่ได้ทำให้ผู้ดูแลระบบติดตามปริมาณการใช้อินเทอร์เน็ตของแอปในโปรไฟล์งานของคุณไม่ได้"</string>
-    <string name="draw_overlay" msgid="7902083260500573027">"แสดงทับแอปอื่นๆ"</string>
-    <string name="system_alert_window_settings" msgid="6458633954424862521">"แสดงทับแอปอื่นๆ"</string>
+    <string name="draw_overlay" msgid="7902083260500573027">"แสดงทับบนแอปอื่นๆ"</string>
+    <string name="system_alert_window_settings" msgid="6458633954424862521">"แสดงทับบนแอปอื่นๆ"</string>
     <string name="permit_draw_overlay" msgid="4468994037192804075">"อนุญาตให้แสดงทับแอปอื่นๆ"</string>
     <string name="allow_overlay_description" msgid="1607235723669496298">"อนุญาตให้แอปนี้แสดงทับแอปอื่นๆ ที่คุณกำลังใช้อยู่ แอปนี้จะเห็นจุดที่คุณแตะหรือเปลี่ยนแปลงสิ่งที่ปรากฏในหน้าจอได้"</string>
     <string name="manage_external_storage_title" msgid="8024521099838816100">"การเข้าถึงไฟล์ทั้งหมด"</string>
@@ -3688,7 +3688,7 @@
     <string name="media_management_apps_description" msgid="8000565658455268524">"หากอนุญาต แอปนี้จะแก้ไขหรือลบไฟล์สื่อที่สร้างขึ้นด้วย​แอปอื่นๆ โดยไม่ต้องถาม แอปต้องมีสิทธิ์เข้าถึงไฟล์และสื่อ"</string>
     <string name="keywords_media_management_apps" msgid="7499959607583088690">"สื่อ ไฟล์ การจัดการ ตัวจัดการ จัดการ แก้ไข ตัวแก้ไข แอป แอปพลิเคชัน โปรแกรม"</string>
     <string name="keywords_vr_listener" msgid="902737490270081131">"VR Virtual Reality Listener บริการตัวช่วยสเตอริโอ"</string>
-    <string name="overlay_settings" msgid="2030836934139139469">"แสดงทับแอปอื่นๆ"</string>
+    <string name="overlay_settings" msgid="2030836934139139469">"แสดงทับบนแอปอื่นๆ"</string>
     <string name="filter_overlay_apps" msgid="2483998217116789206">"แอปที่มีสิทธิ์"</string>
     <string name="app_permission_summary_allowed" msgid="1155115629167757278">"อนุญาต"</string>
     <string name="app_permission_summary_not_allowed" msgid="2673793662439097900">"ไม่อนุญาต"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"เสียงจากสื่อที่เข้ากันได้จะสมจริงยิ่งขึ้น"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"การติดตามการเคลื่อนไหวของศีรษะ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"เสียงจะเปลี่ยนตามการขยับศีรษะเพื่อให้ฟังดูเป็นธรรมชาติมากยิ่งขึ้น"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"ประเภทอุปกรณ์เสียง"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"ไม่ทราบ"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"ลำโพง"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"หูฟัง"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"ชุดอุปกรณ์ในรถยนต์"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"อื่นๆ"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"ขีดจำกัดอัตราการดาวน์โหลดของเครือข่าย"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"กำหนดค่าขีดจำกัดอัตราแบนด์วิดท์สำหรับการดาวน์โหลดขั้นต่ำและสูงสุดของเครือข่ายซึ่งใช้กับเครือข่ายทั้งหมดที่ให้การเชื่อมต่ออินเทอร์เน็ต"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"กำหนดค่าขีดจำกัดอัตราการดาวน์โหลดของเครือข่าย"</string>
@@ -4697,24 +4703,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"ถอนการติดตั้งแอป"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{แอปที่ติดตั้งใน # เดือนที่ผ่านมา}other{แอปที่ติดตั้งใน # เดือนที่ผ่านมา}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{แอปที่ติดตั้งนานกว่า # เดือนที่ผ่านมา}other{แอปที่ติดตั้งนานกว่า # เดือนที่ผ่านมา}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"สัดส่วนการแสดงผล"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"เลือกสัดส่วนการแสดงผลเพื่อดูแอปนี้หากแอปไม่ได้ออกแบบมาให้เหมาะกับ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ของคุณ"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"แอปที่แนะนำ"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"แอปที่คุณลบล้าง"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"ค่าเริ่มต้นของแอป"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"เต็มหน้าจอ"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"ครึ่งหน้าจอ"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"สัดส่วนการแสดงผลในอุปกรณ์"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"แอปจะรีสตาร์ทเมื่อคุณเปลี่ยนสัดส่วนการแสดงผล การเปลี่ยนแปลงที่ไม่ได้บันทึกไว้อาจหายไป"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"เซ็นเซอร์ลายนิ้วมือ"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"การแจ้งเตือนด้วยแฟลช"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"เกี่ยวกับการแจ้งเตือนด้วยแฟลช"</string>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index f9ef5e2..14c407c 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Pagkalipas ng 1 minuto"</item>
     <item msgid="1574040255478150028">"Pagkalipas ng 5 minuto"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 2c16897..5930be2 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Ibinabahagi ang Wi‑Fi sa device na ito…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Kumokonekta…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Ibahagi ang hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"I-verify na ikaw ito"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"I-verify na ikaw ito"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Password ng Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Password ng hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Auto‑connect"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Nakalimutan ang iyong password?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Nakalimutan ang iyong pattern?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Nakalimutan ang iyong PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Gamitin ang iyong pattern sa device upang magpatuloy"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Ilagay ang iyong PIN sa device upang magpatuloy"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Ilagay ang iyong password sa device upang magpatuloy"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Gamitin ang iyong pattern sa trabaho upang magpatuloy"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Iguhit ang iyong pattern para magpatuloy"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Ilagay ang iyong PIN para magpatuloy"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Ilagay ang iyong password para magpatuloy"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Iguhit ang iyong pattern sa trabaho para magpatuloy"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Ilagay ang iyong PIN sa trabaho para magpatuloy"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Ilagay ang iyong password sa trabaho upang magpatuloy"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Para sa karagdagang seguridad, gamitin ang pattern ng iyong device"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Nagiging mas immersive ang audio mula sa compatible na media"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Pag-track ng ulo"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Nagbabago ang audio habang iginagalaw mo ang iyong ulo para maging mas natural ang tunog"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Limitasyon sa rate ng pag-download ng network"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"I-configure ang limitasyon sa rate ng ingress ng bandwith ng network na inilalapat sa lahat ng network na nagbibigay ng koneksyon sa internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"I-configure ang limitasyon sa rate ng pag-download ng network"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"I-uninstall ang app"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Mga app na na-install sa nakalipas na # buwan}one{Mga app na na-install sa nakalipas na # buwan}other{Mga app na na-install sa nakalipas na # na buwan}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Mga app na na-install nang higit sa # buwan na ang nakalipas}one{Mga app na na-install nang higit sa # buwan na ang nakalipas}other{Mga app na na-install nang higit sa # na buwan na ang nakalipas}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Aspect ratio"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Pumili ng aspect ratio para tingnan ang app na ito kung hindi pa ito idinisenyo para magkasya sa iyong <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Mga iminumungkahing app"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Mga app na na-override mo"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Default ng app"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Full screen"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Kalahating screen"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Aspect ratio ng device"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Magre-restart ang app kapag binago mo ang aspect ratio. Posibleng mawala mo ang mga hindi na-save na pagbabago."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Sensor para sa fingerprint"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Mga flash notification"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Tungkol sa mga flash notification"</string>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index 5892ae1..083b923 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 dakika sonra"</item>
     <item msgid="1574040255478150028">"5 dakika sonra"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 8df83da..3fb5369 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Bu cihazla kablosuz bağlantı paylaşılıyor…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Bağlanıyor…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspot\'u paylaşın"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Kimliğinizi doğrulayın"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Siz olduğunuzu doğrulayın"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Kablosuz ağ şifresi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot şifresi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Otomatik bağlan"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Şifrenizi mi unuttunuz?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Deseninizi mi unuttunuz?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN\'inizi mi unuttunuz?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Devam etmek için cihazınızın desenini kullanın"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Devam etmek için cihazınızın PIN\'ini girin"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Devam etmek için cihazınızın şifresini girin"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Devam etmek için iş profilinizin desenini kullanın"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Devam etmek için deseninizi çizin"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Devam etmek için PIN\'inizi girin"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Devam etmek için şifrenizi girin"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Devam etmek için iş profilinizin desenini çizin"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Devam etmek için iş profilinizin PIN\'ini girin"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Devam etmek için iş profilinizin şifresini girin"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Daha fazla güvenlik için cihaz deseninizi kullanın"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Uyumlu medyadaki sesler daha yoğun gelir"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Kafa hareketi izleme"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ses, kulağa daha doğal gelmesi için kafanızı hareket ettirdikçe değişir"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ağ indirme hızı sınırı"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"İnternet bağlantısı sağlayan tüm ağlarda geçerli ağ bant genişliği indirme hızı sınırını yapılandırın."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Ağ indirme hızı sınırını yapılandır"</string>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index a4f69f8..350ade7 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Через 1 хвилину"</item>
     <item msgid="1574040255478150028">"Через 5 хвилин"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 1d8ecab..7c4fd30 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Цьому пристрою надається доступ до Wi‑Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"З’єднання…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Поділитися точкою доступу"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Підтвердьте, що це ви"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Підтвердьте, що це ви"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Пароль Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Пароль точки доступу: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Автоматичне підключення"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Забули пароль?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Забули ключ?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Забули PIN-код?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Щоб продовжити, введіть ключ пристрою"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Щоб продовжити, введіть PIN-код пристрою"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Щоб продовжити, введіть пароль пристрою"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Щоб продовжити, введіть ключ робочого профілю"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Щоб продовжити, намалюйте ключ"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Щоб продовжити, введіть PIN-код"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Щоб продовжити, введіть пароль"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Щоб продовжити, намалюйте ключ для робочого профіля"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Щоб продовжити, введіть PIN-код робочого профілю"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Щоб продовжити, введіть пароль робочого профілю"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"З міркувань безпеки введіть ключ пристрою"</string>
@@ -4667,6 +4667,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Звук із сумісних носіїв стає реалістичнішим"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Відстеження рухів голови"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Коли ви рухаєте головою, звучання стає природнішим"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Ліміт швидкості завантаження в мережі"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Налаштуйте ліміт вхідної пропускної спроможності мережі, який застосовуватиметься до всіх мереж, що забезпечують інтернет-з’єднання."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Налаштувати ліміт швидкості завантаження в мережі"</string>
@@ -4699,24 +4711,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Видалити додаток"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Додатки, установлені протягом останнього # місяця}one{Додатки, установлені протягом останнього # місяця}few{Додатки, установлені протягом останніх # місяців}many{Додатки, установлені протягом останніх # місяців}other{Додатки, установлені протягом останнього # місяця}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Додатки, установлені понад # місяць тому}one{Додатки, установлені понад # місяць тому}few{Додатки, установлені понад # місяці тому}many{Додатки, установлені понад # місяців тому}other{Додатки, установлені понад # місяця тому}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Формат"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Виберіть формат для перегляду цього додатка, якщо він не відповідає параметрам вашого пристрою (<xliff:g id="DEVICE_NAME">%1$s</xliff:g>)"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Рекомендовані додатки"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Додатки з перевизначеним форматом"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Формат додатка за умовчанням"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"На весь екран"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"На половину екрана"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Формат пристрою"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Якщо змінити формат, додаток перезапуститься. Ви можете втратити незбережені зміни."</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Сканер відбитків пальців"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Сповіщення зі спалахом"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Про сповіщення зі спалахом"</string>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index d469c60..1915740 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -479,4 +479,12 @@
     <item msgid="7025253383416830453">"1 منٹ کے بعد"</item>
     <item msgid="1574040255478150028">"5 منٹ کے بعد"</item>
   </string-array>
+  <string-array name="power_anomaly_titles">
+    <item msgid="805430591383293145">"بیٹری لائف کو بڑھانے کے لیے تغیر پذیر چمک کو آن کریں"</item>
+    <item msgid="2256666063790193306">"بیٹری لائف کو بڑھانے کے لیے اسکرین ٹائم آؤٹ کو کم کریں"</item>
+  </string-array>
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 48332b0..4fa0d5c 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"‏اس آلہ کے ساتھ Wi‑Fi کا اشتراک کیا جا رہا ہے…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"منسلک ہو رہا ہے…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"ہاٹ اسپاٹ کا اشتراک کریں"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"یہ آپ ہی ہیں اس بات کی تصدیق کریں"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"توثیق کریں کہ یہ آپ ہیں"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"‏Wi-Fi کا پاس ورڈ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"ہاٹ اسپاٹ کا پاس ورڈ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"خود کار طور پر منسلک کریں"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"اپنا پاس ورڈ بھول گئے؟"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"اپنا پیٹرن بھول گئے؟"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"‏اپنا PIN بھول گئے؟"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"جاری رکھنے کیلئے اپنے آلہ کا پیٹرن استعمال کریں"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"‏جاری رکھنے کیلئے اپنے آلہ کا PIN درج کریں"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"جاری رکھنے کیلئے اپنے آلہ کا پاس ورڈ درج کریں"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"جاری رکھنے کیلئے اپنا دفتری پیٹرن استعمال کریں"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"جاری رکھنے کے لیے اپنا پیٹرن ڈرا کریں"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"‏جاری رکھنے کیلئے اپنا PIN درج کریں"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"جاری رکھنے کے لیے اپنا پاس ورڈ درج کریں"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"جاری رکھنے کیلئے اپنا دفتری پیٹرن ڈرا کریں"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"‏جاری رکھنے کیلئے اپنا دفتری PIN درج کریں"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"جاری رکھنے کیلئے اپنا دفتری پاس ورڈ درج کریں"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"اضافی سیکیورٹی کیلئے اپنے آلہ کا پیٹرن استعمال کریں"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"موافق میڈیا سے آڈیو کا مزید دلچسپ تجربہ فراہم ہوتا ہے"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"سر کی ٹریکنگ"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"خود کو زیادہ فطری دکھانے کے لیے اپنے سر کو حرکت دیتے ہی آڈیو تبدیل ہو جاتی ہے"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"نیٹ ورک ڈاؤن لوڈ کرنے کی شرح کی حد"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"نیٹ ورک بینڈ وڈتھ انگریس کی شرح کی حد کو کنفیگر کریں جو انٹرنیٹ کنیکٹویٹی فراہم کرنے والے تمام نیٹ ورکس پر لاگو ہوتی ہے۔"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"نیٹ ورک ڈاؤن لوڈ کرنے کی شرح کی حد کو کنفیگر کریں"</string>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 1038caa..e0531ea 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 daqiqadan keyin"</item>
     <item msgid="1574040255478150028">"5 daqiqadan keyin"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index ac8f9eb..3d836a8 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Wi‑Fi bu qurilma bilan ulashilmoqda…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Ulanmoqda…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Hotspotni ulashish"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Oʻzingiz ekanligingizni tasdiqlang"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Bu siz ekaningizni isbotlang"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi paroli: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Hotspot paroli: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Avtoulanish"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Parolni unutdingizmi?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Chizmali kalitni unutdingizmi?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"PIN kodni unutdingizmi?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Davom etish uchun grafik kalitni chizing"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Davom etish uchun qurilmangiz PIN kodini kiriting"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Davom etish uchun qurilmangiz parolini kiriting"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Davom etish uchun ishchi profilingiz grafik kalitini kiriting"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Davom etish uchun grafik kalitni kiriting"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Davom etish uchun PIN kodni kiriting"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Davom etish uchun parolni kiriting"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Davom etish uchun ishxona grafik kalitini kiriting"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Davom etish uchun ish profilingiz PIN kodini kiriting"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Davom etish uchun ishchi profilingiz parolini kiriting"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Grafik kalitni kiriting"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Mos mediadan olingan audio yanada qiziqarli chiqadi"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Boshni kuzatish"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Ovoz tabiiyroq chiqishi uchun boshingizni harakatlantirganda oʻzgaradi"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Tarmoq uchun yuklab olish tezligi limiti"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Tarmoq uchun kiruvchi tezlik limitini internet aloqasini taʼminlovchi barcha tarmoqlar uchun belgilash mumkin."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Tarmoq uchun yuklab olish tezligi limitini sozlash"</string>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index afbf7b3..389e29c 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Sau 1 phút"</item>
     <item msgid="1574040255478150028">"Sau 5 phút"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index b251c77..32d61df 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Chia sẻ Wi‑Fi với thiết bị này…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Đang kết nối…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Chia sẻ điểm phát sóng"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Xác minh rằng đó là bạn"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Xác minh danh tính của bạn"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Mật khẩu Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Mật khẩu điểm phát sóng: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Tự động kết nối"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Bạn quên mật khẩu?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Bạn quên hình mở khóa?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Bạn quên mã PIN?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Sử dụng hình mở khóa thiết bị của bạn để tiếp tục"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Nhập mã PIN thiết bị của bạn để tiếp tục"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Nhập mật khẩu thiết bị của bạn để tiếp tục"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Sử dụng hình mở khóa công việc của bạn để tiếp tục"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Hãy vẽ hình mở khoá để tiếp tục"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Hãy nhập mã PIN để tiếp tục"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Hãy nhập mật khẩu để tiếp tục"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Hãy vẽ hình mở khoá cho hồ sơ công việc của bạn để tiếp tục"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Nhập mã PIN công việc của bạn để tiếp tục"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Nhập mật khẩu công việc của bạn để tiếp tục"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Để tăng cường bảo mật, hãy sử dụng hình mở khóa thiết bị của bạn"</string>
@@ -4665,6 +4665,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Âm thanh của nội dung nghe nhìn tương thích sẽ trở nên sống động hơn"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Theo dõi chuyển động của đầu"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Âm thanh sẽ thay đổi khi bạn di chuyển đầu nhằm mang lại trải nghiệm nghe tự nhiên hơn"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Giới hạn tốc độ tải xuống của mạng"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Định cấu hình giới hạn tốc độ truy cập băng thông mạng để áp dụng cho tất cả các mạng cung cấp khả năng kết nối Internet."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Định cấu hình giới hạn tốc độ tải xuống của mạng"</string>
@@ -4697,24 +4709,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"Gỡ cài đặt ứng dụng"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{Ứng dụng được cài đặt trong vòng # tháng gần đây}other{Ứng dụng được cài đặt trong vòng # tháng gần đây}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{Ứng dụng được cài đặt từ hơn # tháng trước}other{Ứng dụng được cài đặt từ hơn # tháng trước}}"</string>
-    <!-- no translation found for aspect_ratio_title (2451826875939676101) -->
-    <skip />
-    <!-- no translation found for aspect_ratio_summary (5944347596728740547) -->
-    <skip />
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"Tỷ lệ khung hình"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"Chọn tỷ lệ khung hình để xem ứng dụng này trong trường hợp ứng dụng này chưa được thiết kế cho vừa với <xliff:g id="DEVICE_NAME">%1$s</xliff:g> của bạn"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"Các ứng dụng được đề xuất"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"Các ứng dụng bạn đã ghi đè"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"Mặc định của ứng dụng"</string>
-    <!-- no translation found for user_aspect_ratio_fullscreen (1843427242540081996) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_half_screen (1015852057094310209) -->
-    <skip />
-    <!-- no translation found for user_aspect_ratio_device_size (2339820985120881199) -->
-    <skip />
+    <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"Toàn màn hình"</string>
+    <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"Nửa màn hình"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"Tỷ lệ khung hình của thiết bị"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <!-- no translation found for app_aspect_ratio_footer (8661813386126142251) -->
-    <skip />
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"Ứng dụng sẽ khởi động lại khi bạn thay đổi tỷ lệ khung hình. Bạn có thể bị mất các thay đổi chưa lưu"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"Cảm biến vân tay"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"Thông báo bằng đèn flash"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"Giới thiệu về thông báo bằng đèn flash"</string>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 87604a8..195ebe1 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -222,7 +222,7 @@
     <item msgid="37519917674959757">"读取存储空间"</item>
     <item msgid="3868809525697401379">"写入存储空间"</item>
     <item msgid="2504191192460059817">"开启屏幕"</item>
-    <item msgid="7905819538788103556">"获取帐号"</item>
+    <item msgid="7905819538788103556">"获取账号"</item>
     <item msgid="1675025662248079254">"在后台运行"</item>
     <item msgid="2553974920157061225">"无障碍功能音量"</item>
   </string-array>
@@ -289,7 +289,7 @@
     <item msgid="3778165903878569143">"读取存储空间"</item>
     <item msgid="555939881912035315">"写入存储空间"</item>
     <item msgid="4281352581602735717">"开启屏幕"</item>
-    <item msgid="346122795998225472">"获取帐号"</item>
+    <item msgid="346122795998225472">"获取账号"</item>
     <item msgid="3756073389408535680">"在后台运行"</item>
     <item msgid="2114661179947426734">"无障碍功能音量"</item>
   </string-array>
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分钟后"</item>
     <item msgid="1574040255478150028">"5 分钟后"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index c790d10..b254be8 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -256,7 +256,7 @@
     <string name="location_settings_footer_general" msgid="1040507068701188821">"具有附近设备权限的应用可以确定已连接的设备的相对位置。"</string>
     <string name="location_settings_footer_location_off" msgid="8568995909147566720">"应用和服务的位置信息使用权处于关闭状态。在您拨打紧急电话号码或向该号码发送短信时,系统可能仍会将您的设备位置信息发送给急救人员。"</string>
     <string name="location_settings_footer_learn_more_content_description" msgid="5329024810729665156">"详细了解位置信息设置。"</string>
-    <string name="account_settings_title" msgid="9138880127246241885">"帐号"</string>
+    <string name="account_settings_title" msgid="9138880127246241885">"账号"</string>
     <string name="security_settings_title" msgid="6710768415432791970">"安全"</string>
     <string name="encryption_and_credential_settings_title" msgid="5856216318961482983">"加密与凭据"</string>
     <string name="lockscreen_settings_title" msgid="4086121748092341549">"锁定屏幕"</string>
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在与此设备分享 WLAN…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"正在连接…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"分享热点"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"验证是您本人"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"验证您的身份"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"WLAN 密码:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"热点密码:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"自动连接"</string>
@@ -959,12 +959,12 @@
     <string name="wifi_calling_turn_on" msgid="7687886259199428823">"请开启 WLAN 通话功能"</string>
     <string name="wifi_disconnected_from" msgid="5249576734324159708">"已断开与“<xliff:g id="SSID">%1$s</xliff:g>”的连接"</string>
     <string name="sound_settings" msgid="7622986039384531304">"提示音和振动"</string>
-    <string name="account_settings" msgid="255404935489127404">"帐号"</string>
-    <string name="accessibility_category_work" msgid="5133894487353964944">"工作资料帐号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
-    <string name="accessibility_category_personal" msgid="2228088849803484780">"个人资料帐号"</string>
-    <string name="accessibility_category_clone" msgid="7893383448944567885">"克隆个人资料帐号"</string>
-    <string name="accessibility_work_account_title" msgid="7622485151217943839">"工作帐号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
-    <string name="accessibility_personal_account_title" msgid="8535265881509557013">"个人帐号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+    <string name="account_settings" msgid="255404935489127404">"账号"</string>
+    <string name="accessibility_category_work" msgid="5133894487353964944">"工作资料账号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+    <string name="accessibility_category_personal" msgid="2228088849803484780">"个人资料账号"</string>
+    <string name="accessibility_category_clone" msgid="7893383448944567885">"克隆个人资料账号"</string>
+    <string name="accessibility_work_account_title" msgid="7622485151217943839">"工作账号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+    <string name="accessibility_personal_account_title" msgid="8535265881509557013">"个人账号 - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="7573686516434589771">"搜索"</string>
     <string name="display_settings" msgid="7197750639709493852">"显示"</string>
     <string name="accelerometer_title" msgid="7745991950833748909">"自动旋转屏幕"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘记了密码?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"忘记了图案?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘记了 PIN 码?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"请绘制您的设备解锁图案以继续"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"请输入您的设备 PIN 码以继续"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"请输入您的设备密码以继续"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"请绘制您的工作解锁图案以继续"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"绘制解锁图案才能继续"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"输入 PIN 码才能继续"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"输入密码才能继续"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"绘制工作资料解锁图案才能继续"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"需输入您的工作资料 PIN 码才能继续"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"请输入您的工作密码以继续"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"为了提升安全性,请绘制您的设备解锁图案"</string>
@@ -1456,9 +1456,9 @@
     <string name="lockpassword_confirm_your_pin_header_frp" msgid="8285647793164729982">"验证 PIN 码"</string>
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7932240547542564033">"验证密码"</string>
     <string name="lockpassword_remote_validation_header" msgid="4992647285784962073">"验证身份"</string>
-    <string name="lockpassword_remote_validation_pattern_details" msgid="4655537780358707983">"如需转移 Google 帐号、设置等,请绘制其他设备的解锁图案。您的解锁图案已经过加密。"</string>
-    <string name="lockpassword_remote_validation_pin_details" msgid="2373654227583206297">"如需转移 Google 帐号、设置等,请输入其他设备的 PIN 码。您的 PIN 码已经过加密。"</string>
-    <string name="lockpassword_remote_validation_password_details" msgid="3482328925925888340">"如需转移 Google 帐号、设置等,请输入其他设备的密码。您的密码已经过加密。"</string>
+    <string name="lockpassword_remote_validation_pattern_details" msgid="4655537780358707983">"如需转移 Google 账号、设置等,请绘制其他设备的解锁图案。您的解锁图案已经过加密。"</string>
+    <string name="lockpassword_remote_validation_pin_details" msgid="2373654227583206297">"如需转移 Google 账号、设置等,请输入其他设备的 PIN 码。您的 PIN 码已经过加密。"</string>
+    <string name="lockpassword_remote_validation_password_details" msgid="3482328925925888340">"如需转移 Google 账号、设置等,请输入其他设备的密码。您的密码已经过加密。"</string>
     <string name="lockpassword_remote_validation_set_pattern_as_screenlock" msgid="7595104317648465901">"还使用解锁图案来解锁此设备"</string>
     <string name="lockpassword_remote_validation_set_pin_as_screenlock" msgid="509672303005547218">"还使用 PIN 码来解锁此设备"</string>
     <string name="lockpassword_remote_validation_set_password_as_screenlock" msgid="2066701840753591922">"还使用密码来解锁此设备"</string>
@@ -2450,13 +2450,13 @@
     <string name="personal_data_section_title" msgid="6368610168625722682">"个人数据"</string>
     <string name="backup_data_title" msgid="507663517227498525">"备份我的数据"</string>
     <string name="backup_data_summary" msgid="8054551085241427531">"将应用数据、WLAN密码和其他设置备份到Google服务器"</string>
-    <string name="backup_configure_account_title" msgid="8574055186903658842">"备份帐号"</string>
-    <string name="backup_data_management_title" msgid="6596830198441939702">"管理备份帐号"</string>
+    <string name="backup_configure_account_title" msgid="8574055186903658842">"备份账号"</string>
+    <string name="backup_data_management_title" msgid="6596830198441939702">"管理备份账号"</string>
     <string name="include_app_data_title" msgid="2969603876620594523">"包括应用数据"</string>
     <string name="auto_restore_title" msgid="4124345897936637561">"自动还原"</string>
     <string name="auto_restore_summary" msgid="6830198851045584001">"重新安装某个应用后,系统会还原已经备份的设置和数据"</string>
     <string name="backup_inactive_title" msgid="6753265378043349277">"备份服务未启用"</string>
-    <string name="backup_configure_account_default_summary" msgid="5323225330966306690">"目前没有帐号存储备份数据"</string>
+    <string name="backup_configure_account_default_summary" msgid="5323225330966306690">"目前没有账号存储备份数据"</string>
     <string name="backup_erase_dialog_title" msgid="5892431263348766484"></string>
     <string name="backup_erase_dialog_message" msgid="2250872501409574331">"要停止备份您的WLAN密码、书签、其他设置和应用数据,并清除Google服务器上的所有副本吗?"</string>
     <string name="fullbackup_erase_dialog_message" msgid="2379053988557486162">"要停止备份设备数据(例如 WLAN 密码和通话记录)和应用数据(例如应用存储的设置和文件),并清除远程服务器上的所有副本吗?"</string>
@@ -2496,7 +2496,7 @@
     <string name="sync_active" msgid="5787407579281739975">"正在同步"</string>
     <string name="account_sync_settings_title" msgid="2684888109902800966">"同步"</string>
     <string name="sync_is_failing" msgid="6738004111400633331">"同步操作当前遇到了一些问题,很快便可恢复。"</string>
-    <string name="add_account_label" msgid="7134707140831385869">"添加帐号"</string>
+    <string name="add_account_label" msgid="7134707140831385869">"添加账号"</string>
     <string name="managed_profile_not_available_label" msgid="7500578232182547365">"工作资料尚不可用"</string>
     <string name="work_mode_label" msgid="4687734487641548872">"工作应用"</string>
     <string name="remove_managed_profile_label" msgid="1294933737673830431">"移除工作资料"</string>
@@ -2521,10 +2521,10 @@
     <string name="header_application_sync_settings" msgid="7427706834875419243">"应用同步设置"</string>
     <string name="header_data_and_synchronization" msgid="453920312552838939">"数据与同步"</string>
     <string name="preference_change_password_title" msgid="5465821666939825972">"更改密码"</string>
-    <string name="header_account_settings" msgid="1189339410278750008">"帐号设置"</string>
-    <string name="remove_account_label" msgid="4169490568375358010">"移除帐号"</string>
-    <string name="header_add_an_account" msgid="3919151542338822661">"添加帐号"</string>
-    <string name="really_remove_account_title" msgid="253097435885652310">"要移除帐号吗?"</string>
+    <string name="header_account_settings" msgid="1189339410278750008">"账号设置"</string>
+    <string name="remove_account_label" msgid="4169490568375358010">"移除账号"</string>
+    <string name="header_add_an_account" msgid="3919151542338822661">"添加账号"</string>
+    <string name="really_remove_account_title" msgid="253097435885652310">"要移除账号吗?"</string>
     <string name="remove_account_failed" msgid="3709502163548900644">"您的管理员不允许进行这项更改"</string>
     <string name="cant_sync_dialog_title" msgid="2613000568881139517">"无法手动同步"</string>
     <string name="cant_sync_dialog_message" msgid="7612557105054568581">"此项内容的同步功能目前未开启。要更改此设置,请暂时开启后台流量和自动同步功能。"</string>
@@ -2532,8 +2532,8 @@
     <string name="select_all" msgid="7898929601615536401">"全选"</string>
     <string name="data_usage_summary_title" msgid="394067070764360142">"流量使用情况"</string>
     <string name="data_usage_app_summary_title" msgid="4933742247928064178">"移动数据和 WLAN"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自动同步个人帐号数据"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自动同步工作帐号数据"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="2905595464540145671">"自动同步个人账号数据"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="8561102487795657789">"自动同步工作账号数据"</string>
     <string name="data_usage_change_cycle" msgid="4501026427365283899">"更改周期..."</string>
     <string name="data_usage_pick_cycle_day" msgid="3548922497494790123">"每月流量消耗重计日期:"</string>
     <string name="data_usage_empty" msgid="5619908658853726866">"没有任何应用在此期间产生过数据流量。"</string>
@@ -2567,7 +2567,7 @@
     <string name="data_usage_restrict_denied_dialog" msgid="8599940395497268584">"您必须先设置移动数据流量上限,才能限制后台数据流量。"</string>
     <string name="data_usage_auto_sync_on_dialog_title" msgid="2048411447974361181">"要打开自动同步数据功能吗?"</string>
     <string name="data_usage_auto_sync_off_dialog_title" msgid="1783917145440587470">"要关闭自动同步数据功能吗?"</string>
-    <string name="data_usage_auto_sync_off_dialog" msgid="6523112583569674837">"关闭后可以节省数据流量和电池电量,但您需要手动同步每个帐号才能获得最新信息,并且在有更新时不会收到通知。"</string>
+    <string name="data_usage_auto_sync_off_dialog" msgid="6523112583569674837">"关闭后可以节省数据流量和电池电量,但您需要手动同步每个账号才能获得最新信息,并且在有更新时不会收到通知。"</string>
     <string name="data_usage_cycle_editor_title" msgid="2019035830921480941">"流量消耗重置日期"</string>
     <string name="data_usage_cycle_editor_subtitle" msgid="1026234456777365545">"每月重置日期:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="6110165528024717527">"设置"</string>
@@ -2596,7 +2596,7 @@
     <string name="vpn_routes" msgid="1218707725375594862">"转发路线(例如 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="8671768183475960068">"用户名"</string>
     <string name="vpn_password" msgid="1183746907642628127">"密码"</string>
-    <string name="vpn_save_login" msgid="5986762519977472618">"保存帐号信息"</string>
+    <string name="vpn_save_login" msgid="5986762519977472618">"保存账号信息"</string>
     <string name="vpn_not_used" msgid="7229312881336083354">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="3687379414088677735">"(不验证服务器)"</string>
     <string name="vpn_no_server_cert" msgid="8106540968643125407">"(来自服务器)"</string>
@@ -2689,7 +2689,7 @@
     <string name="user_admin" msgid="4024553191395768119">"管理员"</string>
     <string name="user_you" msgid="3070562015202859996">"您(<xliff:g id="NAME">%s</xliff:g>)"</string>
     <string name="user_add_max_count" msgid="3328539978480663740">"您无法再添加任何用户。若要添加新用户,请先移除一个现有用户。"</string>
-    <string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"受限个人资料无法添加帐号"</string>
+    <string name="user_cannot_add_accounts_message" msgid="2351326078338805337">"受限个人资料无法添加账号"</string>
     <string name="user_remove_user_menu" msgid="2183714948094429367">"将<xliff:g id="USER_NAME">%1$s</xliff:g>从此设备中删除"</string>
     <string name="user_lockscreen_settings" msgid="4596612658981942092">"锁定屏幕设置"</string>
     <string name="user_add_on_lockscreen_menu" msgid="2539059062034644966">"从锁定屏幕中添加用户"</string>
@@ -2764,7 +2764,7 @@
     <string name="restriction_menu_reset" msgid="92859464456364092">"取消限制"</string>
     <string name="restriction_menu_change_pin" msgid="2505923323199003718">"更改PIN码"</string>
     <string name="help_label" msgid="2896538416436125883">"帮助和反馈"</string>
-    <string name="user_account_title" msgid="6389636876210834864">"内容帐号"</string>
+    <string name="user_account_title" msgid="6389636876210834864">"内容账号"</string>
     <string name="user_picture_title" msgid="7176437495107563321">"照片 ID"</string>
     <string name="extreme_threats_title" msgid="1098958631519213856">"极端威胁"</string>
     <string name="extreme_threats_summary" msgid="3560742429496902008">"接收有关生命和财产极端威胁的警报"</string>
@@ -2809,8 +2809,8 @@
     <string name="user_rename" msgid="8735940847878484249">"重命名"</string>
     <string name="app_restrictions_custom_label" msgid="6949268049087435132">"设置应用限制"</string>
     <string name="user_restrictions_controlled_by" msgid="2821526006742851624">"受“<xliff:g id="APP">%1$s</xliff:g>”控制"</string>
-    <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"此应用可使用您的帐号"</string>
-    <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"此应用由“<xliff:g id="APP">%1$s</xliff:g>”控制,可使用您的帐号"</string>
+    <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"此应用可使用您的账号"</string>
+    <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"此应用由“<xliff:g id="APP">%1$s</xliff:g>”控制,可使用您的账号"</string>
     <string name="restriction_wifi_config_title" msgid="2630656989926554685">"WLAN和移动网络"</string>
     <string name="restriction_wifi_config_summary" msgid="920419010472168694">"允许修改WLAN和移动网络设置"</string>
     <string name="restriction_bluetooth_config_title" msgid="220586273589093821">"蓝牙"</string>
@@ -2862,11 +2862,11 @@
     <string name="nfc_and_payment_settings_no_payment_installed_summary" msgid="4879818114908207465">"先安装付款应用,然后才能使用感应式付款功能"</string>
     <string name="app_and_notification_dashboard_summary" msgid="8047683010984186106">"最近使用的应用、默认应用"</string>
     <string name="notification_settings_work_profile" msgid="6076211850526353975">"工作资料中的应用无法访问通知。"</string>
-    <string name="account_dashboard_title" msgid="8228773251948253914">"密码和帐号"</string>
-    <string name="account_dashboard_default_summary" msgid="1730719656099599488">"保存的密码、自动填充、同步的帐号"</string>
+    <string name="account_dashboard_title" msgid="8228773251948253914">"密码和账号"</string>
+    <string name="account_dashboard_default_summary" msgid="1730719656099599488">"保存的密码、自动填充、同步的账号"</string>
     <string name="app_default_dashboard_title" msgid="4071015747629103216">"默认应用"</string>
     <string name="cloned_apps_dashboard_title" msgid="5542076801222950921">"克隆应用"</string>
-    <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"创建应用的第二个实例,这样您就可以同时使用两个帐号。"</string>
+    <string name="desc_cloned_apps_intro_text" msgid="1369621522882622476">"创建应用的第二个实例,这样您就可以同时使用两个账号。"</string>
     <string name="desc_cloneable_app_list_text" msgid="3354586725814708688">"可以克隆的应用。"</string>
     <string name="cloned_apps_summary" msgid="8805362440770795709">"<xliff:g id="CLONED_APPS_COUNT">%1$s</xliff:g> 个已克隆,<xliff:g id="ALLOWED_APPS_COUNT">%2$d</xliff:g> 个可以克隆"</string>
     <string name="delete_all_app_clones" msgid="3489053361980624999">"删除所有应用副本"</string>
@@ -2911,7 +2911,7 @@
     <string name="keywords_sounds_and_notifications_interruptions" msgid="1500312884808362467">"勿扰, 请勿打扰, 打扰, 打断"</string>
     <string name="keywords_app" msgid="7983814237980258061">"RAM 内存"</string>
     <string name="keywords_location" msgid="8016374808099706213">"附近, 位置信息, 历史记录, 报告, GPS"</string>
-    <string name="keywords_accounts" msgid="3013897982630845506">"帐号, 添加一个帐号, 工作资料, 添加帐号, 移除, 删除, account, add an account, work profile, add account, remove, delete"</string>
+    <string name="keywords_accounts" msgid="3013897982630845506">"账号, 添加一个账号, 工作资料, 添加账号, 移除, 删除, account, add an account, work profile, add account, remove, delete"</string>
     <string name="keywords_users" msgid="3497517660077620843">"限制, 限定, 受限"</string>
     <string name="keywords_keyboard_and_ime" msgid="4741098648730042570">"文字, 文本, 更正, 声音, 提示音, 振动, 自动, 语言, 手势, 推荐, 建议, 主题, 主题背景, 令人反感, 字词, 输入, 表情符号, 国际"</string>
     <string name="keywords_reset_apps" msgid="8254315757754930862">"重置, 偏好设置, 默认"</string>
@@ -3981,10 +3981,10 @@
     <string name="instant_apps_settings" msgid="4280942494969957858">"免安装应用偏好设置"</string>
     <string name="domain_url_section_title" msgid="9028890472923474958">"已安装的应用"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="170508173207142665">"您的存储空间目前是由存储空间管理器管理"</string>
-    <string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g>的帐号"</string>
+    <string name="account_for_section_header" msgid="7466759342105251096">"<xliff:g id="USER_NAME">%1$s</xliff:g>的账号"</string>
     <string name="auto_sync_account_title" msgid="1070908045600374254">"自动同步应用数据"</string>
     <string name="auto_sync_account_summary" msgid="7580352130028957346">"让应用自动刷新数据"</string>
-    <string name="account_sync_title" msgid="7036067017433297574">"帐号同步"</string>
+    <string name="account_sync_title" msgid="7036067017433297574">"账号同步"</string>
     <string name="account_sync_summary_some_on" msgid="911460286297968724">"已开启 <xliff:g id="ID_1">%1$d</xliff:g> 项(共 <xliff:g id="ID_2">%2$d</xliff:g> 项)的同步功能"</string>
     <string name="account_sync_summary_all_on" msgid="2953682111836599841">"已开启所有项的同步功能"</string>
     <string name="account_sync_summary_all_off" msgid="6378301874540507884">"已关闭所有项的同步功能"</string>
@@ -3995,7 +3995,7 @@
     <string name="enterprise_privacy_exposure_category" msgid="2507761423540037308">"贵单位可查看的信息类型"</string>
     <string name="enterprise_privacy_exposure_changes_category" msgid="5459989751333816587">"贵单位的管理员所做的更改"</string>
     <string name="enterprise_privacy_device_access_category" msgid="140157499478630004">"您对此设备的访问权限"</string>
-    <string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"与您的工作帐号关联的数据(例如电子邮件和日历)"</string>
+    <string name="enterprise_privacy_enterprise_data" msgid="3963070078195245028">"与您的工作账号关联的数据(例如电子邮件和日历)"</string>
     <string name="enterprise_privacy_installed_packages" msgid="6707006112254572820">"您设备上的应用列表"</string>
     <string name="enterprise_privacy_usage_stats" msgid="6328506963853465534">"每个应用的使用时长和数据用量"</string>
     <string name="enterprise_privacy_network_logs" msgid="3081744541193695887">"最新的网络流量日志"</string>
@@ -4157,7 +4157,7 @@
     <string name="platform_compat_default_disabled_title" msgid="3975847180953793602">"默认停用的应用兼容性变更"</string>
     <string name="platform_compat_dialog_text_no_apps" msgid="5715226015751055812">"只能修改可调试应用的应用兼容性变更。请安装可调试的应用,然后重试。"</string>
     <string name="disabled_dependent_setting_summary" msgid="4508635725315852504">"必须一并更改其他设置"</string>
-    <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"帐号"</string>
+    <string name="my_device_info_account_preference_title" msgid="9197139254007133175">"账号"</string>
     <string name="my_device_info_device_name_preference_title" msgid="8053298498727237971">"设备名称"</string>
     <string name="my_device_info_basic_info_category_title" msgid="381963187269356548">"基本信息"</string>
     <string name="my_device_info_legal_category_title" msgid="7732792841537995127">"法律法规"</string>
@@ -4370,7 +4370,7 @@
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"覆盖“强制启用 SmartDark 功能”的设置"</string>
     <string name="hwui_force_dark_summary" msgid="6515748781487952769">"覆盖“强制 SmartDark 功能始终开启”的设置"</string>
     <string name="privacy_dashboard_title" msgid="6845403825611829558">"隐私"</string>
-    <string name="privacy_dashboard_summary" msgid="5775090172422786808">"权限、帐号活动、个人数据"</string>
+    <string name="privacy_dashboard_summary" msgid="5775090172422786808">"权限、账号活动、个人数据"</string>
     <string name="privacy_controls_title" msgid="1383047169455206604">"控制"</string>
     <string name="contextual_card_dismiss_remove" msgid="8636557343011606722">"移除"</string>
     <string name="contextual_card_dismiss_keep" msgid="440516181066490747">"保留"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"播放兼容的媒体时,音频更具沉浸感"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"头部跟踪"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音频会随着头部移动而变化,让聆听效果更加自然"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音频设备类型"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"未知"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"扬声器"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳机"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"车载套件"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"网络下载速率限制"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"配置网络带宽入站流量速率限制,此速率限制将应用到提供互联网连接的所有网络中。"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"配置网络下载速率限制"</string>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index 2e9de69..0dcb7ba 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 3ae42dc..117e464 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在與此裝置分享 Wi-Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"連接中…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"共享熱點"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"驗證你的身分"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"驗證這是你本人"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"熱點密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動連線"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘記密碼嗎?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"要忘記圖案嗎?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘記 PIN 嗎?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"畫出裝置上鎖圖案以繼續操作"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"請輸入裝置 PIN 碼,然後繼續操作"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"輸入裝置密碼即可繼續"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"畫出工作設定檔上鎖圖案即可繼續"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"畫出上鎖圖案即可繼續"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"輸入 PIN 即可繼續"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"輸入密碼即可繼續"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"畫出工作設定檔上鎖圖案即可繼續"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"輸入工作專用 PIN 碼即可繼續"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"輸入工作設定檔密碼即可繼續"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"為提升安全性,請畫出你的裝置上鎖圖案"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"兼容媒體的音效更逼真,讓你身歷其境"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音訊裝置類型"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"揚聲器"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳罩式耳機"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車用套件"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"網絡下載頻率限制"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"設定網絡頻寬輸入頻率限制,這項設定會套用至提供互聯網連線的所有網絡。"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"設定網絡下載頻率限制"</string>
@@ -4697,18 +4703,18 @@
     <string name="background_install_uninstall_button_description" msgid="1189649052911501249">"解除安裝應用程式"</string>
     <string name="background_install_before" msgid="8608614957688912715">"{count,plural, =1{過去 # 個月安裝的應用程式}other{過去 # 個月安裝的應用程式}}"</string>
     <string name="background_install_after" msgid="7983488897570908149">"{count,plural, =1{超過 # 個月前安裝的應用程式}other{超過 # 個月前安裝的應用程式}}"</string>
-    <string name="aspect_ratio_title" msgid="2451826875939676101">"顯示比例"</string>
-    <string name="aspect_ratio_summary" msgid="5944347596728740547">"如果這個應用程式並未提供適合 <xliff:g id="DEVICE_NAME">%1$s</xliff:g> 的設計,請選擇要查看的顯示比例。"</string>
+    <string name="aspect_ratio_title" msgid="2451826875939676101">"長寬比"</string>
+    <string name="aspect_ratio_summary" msgid="5944347596728740547">"如果此應用程式未提供適合「<xliff:g id="DEVICE_NAME">%1$s</xliff:g>」的設計,請選擇要查看的長寬比"</string>
     <string name="user_aspect_ratio_suggested_apps_label" msgid="8085934042329632039">"有建議顯示長寬比的應用程式"</string>
     <string name="user_aspect_ratio_overridden_apps_label" msgid="1564914138276629704">"已覆寫顯示長寬比的應用程式"</string>
     <string name="user_aspect_ratio_app_default" msgid="270065763307617837">"應用程式預設"</string>
     <string name="user_aspect_ratio_fullscreen" msgid="1843427242540081996">"全螢幕"</string>
     <string name="user_aspect_ratio_half_screen" msgid="1015852057094310209">"半螢幕"</string>
-    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"裝置顯示比例"</string>
+    <string name="user_aspect_ratio_device_size" msgid="2339820985120881199">"裝置長寬比"</string>
     <string name="user_aspect_ratio_16_9" msgid="2286644872775170164">"16:9"</string>
     <string name="user_aspect_ratio_3_2" msgid="199262962518318932">"3:2"</string>
     <string name="user_aspect_ratio_4_3" msgid="5196232982878982220">"4:3"</string>
-    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"變更顯示比例後,應用程式會重新啟動。你可能會遺失未儲存的變更內容。"</string>
+    <string name="app_aspect_ratio_footer" msgid="8661813386126142251">"變更長寬比後,應用程式會重新啟動。你可能會遺失未儲存的變更內容。"</string>
     <string name="accessibility_fingerprint_label" msgid="5017431423168191733">"指紋感應器"</string>
     <string name="flash_notifications_title" msgid="4490438861180492311">"閃光燈通知"</string>
     <string name="flash_notifications_about_title" msgid="9004351252928121214">"關於閃光燈通知"</string>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index 406bdcf..9ef12e7 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"1 分鐘後"</item>
     <item msgid="1574040255478150028">"5 分鐘後"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index dee8669..13c4d9c 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"正在與這個裝置分享 Wi‑Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"連線中…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"分享無線基地台"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"確認你的身分"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"驗證你的身分"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Wi-Fi 密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"無線基地台密碼:<xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"自動連線"</string>
@@ -1440,10 +1440,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"忘記密碼了嗎?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"忘記解鎖圖案了嗎?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"忘記 PIN 碼了嗎?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"請用裝置解鎖圖案解鎖"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"輸入裝置 PIN 碼即可繼續"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"請輸入你的裝置密碼以繼續作業"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"請用工作資料夾的解鎖圖案解鎖以繼續"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"如要繼續操作,請畫出解鎖圖案"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"如要繼續操作,請輸入 PIN 碼"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"如要繼續操作,請輸入密碼"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"如要繼續操作,請畫出工作資料夾的解鎖圖案"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"請輸入你的工作資料夾 PIN 碼以繼續作業"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"請輸入你的 Work 密碼以繼續作業"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"為了提升安全性,請使用裝置解鎖圖案"</string>
@@ -4665,6 +4665,12 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"相容媒體裝置可提供更有臨場感的聲音體驗"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"頭部追蹤"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"音訊會隨著你轉動頭部而變化,因此聽起來更自然"</string>
+    <string name="bluetooth_details_audio_device_types_title" msgid="3381941189346781614">"音訊裝置類型"</string>
+    <string name="bluetooth_details_audio_device_type_unknown" msgid="839337391037998014">"不明"</string>
+    <string name="bluetooth_details_audio_device_type_speaker" msgid="3706227767994792124">"揚聲器"</string>
+    <string name="bluetooth_details_audio_device_type_headphones" msgid="7644588291215033798">"耳罩式耳機"</string>
+    <string name="bluetooth_details_audio_device_type_carkit" msgid="4439017600454703229">"車用套件"</string>
+    <string name="bluetooth_details_audio_device_type_other" msgid="7019481234617207563">"其他"</string>
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"網路下載頻率限制"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"設定網路頻寬輸入頻率限制,這項設定會套用到提供網際網路連線的所有網路。"</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"設定網路下載頻率限制"</string>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index fbea6d2..217d0a3 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -479,4 +479,10 @@
     <item msgid="7025253383416830453">"Ngemuva komzuzu o-1"</item>
     <item msgid="1574040255478150028">"Ngemuva kwemizuzu emi-5"</item>
   </string-array>
+    <!-- no translation found for power_anomaly_titles:0 (805430591383293145) -->
+    <!-- no translation found for power_anomaly_titles:1 (2256666063790193306) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:0 (5186429841915650103) -->
+    <!-- no translation found for power_anomaly_main_btn_strings:1 (7740268746892551460) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:0 (5850316108275484448) -->
+    <!-- no translation found for power_anomaly_dismiss_btn_strings:1 (5538611239506376738) -->
 </resources>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 5f99b38..6a89593 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -803,7 +803,7 @@
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="7250369936882080107">"Yabelana nge-Wi‑Fi ngale divayisi…"</string>
     <string name="wifi_dpp_connecting" msgid="2312769193202897589">"Iyaxhuma…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="6186452780604755316">"Yabelana i-hotspot"</string>
-    <string name="wifi_dpp_lockscreen_title" msgid="4231438175617953652">"Qinisekisa ukuthi nguwe"</string>
+    <string name="wifi_dpp_lockscreen_title" msgid="5246641326066972419">"Qinisekisa ukuthi unguwe"</string>
     <string name="wifi_dpp_wifi_password" msgid="4992986319806934381">"Iphasiwedi ye-Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="688464342650820420">"Iphasiwedi ye-hotspot: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_auto_connect_title" msgid="1890342051674657892">"Ukuxhumeka okuzenzakalelayo"</string>
@@ -1441,10 +1441,10 @@
     <string name="lockpassword_forgot_password" msgid="5730587692489737223">"Ukhohlwe iphasiwedi yakho?"</string>
     <string name="lockpassword_forgot_pattern" msgid="1196116549051927516">"Ukhohlwe iphethini yakho?"</string>
     <string name="lockpassword_forgot_pin" msgid="7164232234705747672">"Ukhohlwe iphinikhodi yakho?"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="7692794426682501482">"Sebenzisa iphethini yakho yedivayisi ukuze uqhubeke"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="9206928587904701094">"Faka i-PIN yedivayisi yakho ukuze uqhubeke"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="2616127423884477152">"Faka iphasiwedi yedivayisi yakho ukuze uqhubeke"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="9110305410672321714">"Sebenzisa iphethini yakho yomsebenzi ukuze uqhubeke"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="7401165571170203743">"Dweba iphethini yakho ukuze uqhubeke"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8990266101852808091">"Faka Iphinikhodi yakho ukuze uqhubeke"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="8823867445451497224">"Faka iphasiwedi yakho ukuze uqhubeke"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="7003851856761939690">"Dweba iphethini yakho yasemsebenzini ukuze uqhubeke"</string>
     <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6524208128570235127">"Faka i-PIN yakho yomsebenzi ukuze uqhubeke"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="5918738487760814147">"Faka iphasiwedi yakho yomsebenzi ukuze uqhubeke"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="113817518413715557">"Ngokuphepha okungeziwe, faka iphethini yedivayisi yakho"</string>
@@ -4666,6 +4666,18 @@
     <string name="bluetooth_details_spatial_audio_summary" msgid="5026859623681482668">"Umsindo ovela kumidiya ehambisanayo uba ogxile kakhulu"</string>
     <string name="bluetooth_details_head_tracking_title" msgid="5416972521040337799">"Ukulandelela ikhanda"</string>
     <string name="bluetooth_details_head_tracking_summary" msgid="3942238746595985395">"Umsindo uyashintsha njengoba uhambisa ikhanda lakho ukuze lizwakale ngokwemvelo"</string>
+    <!-- no translation found for bluetooth_details_audio_device_types_title (3381941189346781614) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_unknown (839337391037998014) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_speaker (3706227767994792124) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_headphones (7644588291215033798) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_carkit (4439017600454703229) -->
+    <skip />
+    <!-- no translation found for bluetooth_details_audio_device_type_other (7019481234617207563) -->
+    <skip />
     <string name="ingress_rate_limit_title" msgid="2106694002836274350">"Umkhawulo wesilinganiso sokudawuniloda kwenethiwekhi"</string>
     <string name="ingress_rate_limit_summary" msgid="1097811019742438371">"Lungiselela umkhawulo wezinga lokungena komkhawulokudonsa wenethiwekhi osetshenziswa kuwo wonke amanethiwekhi ahlinzeka ngoxhumano lwe-inthanethi."</string>
     <string name="ingress_rate_limit_dialog_title" msgid="5359461052422633789">"Lungiselela umkhawulo wesilinganiso sokudawuniloda kwenethiwekhi"</string>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 906d4ee..552ca3f 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1409,12 +1409,7 @@
     <integer-array name="network_mode_3g_deprecated_carrier_id" translatable="false">
     </integer-array>
 
-    <!-- The following 4 arrays are for power anomaly tips card. Please keep them the same size. -->
-    <string-array name="power_anomaly_keys" translatable="false">
-        <item>adaptive_brightness</item>
-        <item>screen_timeout</item>
-    </string-array>
-
+    <!-- The following 3 arrays are for power anomaly tips card. Please keep them the same size. -->
     <string-array name="power_anomaly_titles">
         <item>Turn on adaptive brightness to extend battery life</item>
         <item>Reduce screen timeout to extend battery life</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9a4812f..468f3fa 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2098,6 +2098,13 @@
     <!-- The footer message for Wi-Fi hotspot security settings [CHAR LIMIT=NONE] -->
     <string name="wifi_hotspot_security_footer">Security settings may change if you change the hotspot’s frequency</string>
 
+    <!-- Title for the instant hotspot state [CHAR LIMIT=NONE]-->
+    <string name="wifi_hotspot_instant_title">Instant hotspot</string>
+    <!-- Summary text when instant hotspot is turned on -->
+    <string name="wifi_hotspot_instant_summary_on">On</string>
+    <!-- Summary text when instant hotspot is turned off -->
+    <string name="wifi_hotspot_instant_summary_off">Off</string>
+
     <!-- Summary text when turning hotspot on -->
     <string name="wifi_tether_starting">Turning hotspot on\u2026</string>
     <!-- Summary text when turning hotspot off -->
diff --git a/res/xml/wifi_tether_settings.xml b/res/xml/wifi_tether_settings.xml
index a85d9ea..b8b810f 100644
--- a/res/xml/wifi_tether_settings.xml
+++ b/res/xml/wifi_tether_settings.xml
@@ -59,4 +59,10 @@
         android:summary="@string/summary_placeholder"
         android:fragment="com.android.settings.wifi.tether.WifiHotspotSpeedSettings"
         settings:isPreferenceVisible="@bool/config_show_wifi_hotspot_speed"/>
+
+    <Preference
+        android:key="wifi_hotspot_instant"
+        android:title="@string/wifi_hotspot_instant_title"
+        android:summary="@string/summary_placeholder"
+        settings:isPreferenceVisible="false"/>
 </PreferenceScreen>
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
index e01f28a..fd831cd 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioDetails.java
@@ -201,11 +201,12 @@
         if (pref == null) {
             return;
         }
-        if (!mUserAspectRatioManager.containsAspectRatioOption(aspectRatio)) {
+        if (!mUserAspectRatioManager.hasAspectRatioOption(aspectRatio, mPackageName)) {
             pref.setVisible(false);
             return;
         }
-        pref.setTitle(mUserAspectRatioManager.getUserMinAspectRatioEntry(aspectRatio));
+        pref.setTitle(mUserAspectRatioManager.getUserMinAspectRatioEntry(aspectRatio,
+                mPackageName));
         pref.setOnClickListener(this);
         mAspectRatioPreferences.add(pref);
     }
diff --git a/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java b/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
index c132fd0..7c16ed6 100644
--- a/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
+++ b/src/com/android/settings/applications/appcompat/UserAspectRatioManager.java
@@ -16,6 +16,11 @@
 
 package com.android.settings.applications.appcompat;
 
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE;
+
+import static java.lang.Boolean.FALSE;
+
 import android.app.AppGlobals;
 import android.content.Context;
 import android.content.Intent;
@@ -63,7 +68,7 @@
     public UserAspectRatioManager(@NonNull Context context) {
         mContext = context;
         mIPm = AppGlobals.getPackageManager();
-        mInfoHasLauncherEntryList = context.getPackageManager().queryIntentActivities(
+        mInfoHasLauncherEntryList = mContext.getPackageManager().queryIntentActivities(
                 UserAspectRatioManager.LAUNCHER_ENTRY_INTENT, PackageManager.GET_META_DATA);
         mUserAspectRatioMap = getUserMinAspectRatioMapping();
     }
@@ -85,7 +90,7 @@
     public int getUserMinAspectRatioValue(@NonNull String packageName, int uid)
             throws RemoteException {
         final int aspectRatio = mIPm.getUserMinAspectRatio(packageName, uid);
-        return containsAspectRatioOption(aspectRatio)
+        return hasAspectRatioOption(aspectRatio, packageName)
                 ? aspectRatio : PackageManager.USER_MIN_ASPECT_RATIO_UNSET;
     }
 
@@ -93,8 +98,9 @@
      * @return corresponding string for {@link PackageManager.UserMinAspectRatio} value
      */
     @NonNull
-    public String getUserMinAspectRatioEntry(@PackageManager.UserMinAspectRatio int aspectRatio) {
-        if (!containsAspectRatioOption(aspectRatio))  {
+    public String getUserMinAspectRatioEntry(@PackageManager.UserMinAspectRatio int aspectRatio,
+            String packageName) {
+        if (!hasAspectRatioOption(aspectRatio, packageName))  {
             return mUserAspectRatioMap.get(PackageManager.USER_MIN_ASPECT_RATIO_UNSET);
         }
         return mUserAspectRatioMap.get(aspectRatio);
@@ -107,7 +113,7 @@
     public String getUserMinAspectRatioEntry(@NonNull String packageName, int uid)
             throws RemoteException {
         final int aspectRatio = getUserMinAspectRatioValue(packageName, uid);
-        return getUserMinAspectRatioEntry(aspectRatio);
+        return getUserMinAspectRatioEntry(aspectRatio, packageName);
     }
 
     /**
@@ -115,9 +121,10 @@
      * {@link R.array.config_userAspectRatioOverrideValues}
      * and is enabled by device config
      */
-    public boolean containsAspectRatioOption(@PackageManager.UserMinAspectRatio int option) {
+    public boolean hasAspectRatioOption(@PackageManager.UserMinAspectRatio int option,
+            String packageName) {
         if (option == PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN
-                && !isFullscreenOptionEnabled()) {
+                && !isFullscreenOptionEnabled(packageName)) {
             return false;
         }
         return mUserAspectRatioMap.containsKey(option);
@@ -136,21 +143,26 @@
      * will be overridable.
      */
     public boolean canDisplayAspectRatioUi(@NonNull ApplicationInfo app) {
+        Boolean appAllowsUserAspectRatioOverride = readComponentProperty(
+                mContext.getPackageManager(), app.packageName,
+                PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE);
         boolean hasLauncherEntry = mInfoHasLauncherEntryList.stream()
                 .anyMatch(info -> info.activityInfo.packageName.equals(app.packageName));
-        return hasLauncherEntry;
+        return !FALSE.equals(appAllowsUserAspectRatioOverride) && hasLauncherEntry;
     }
 
     /**
      * Whether fullscreen option in per-app user aspect ratio settings is enabled
      */
     @VisibleForTesting
-    boolean isFullscreenOptionEnabled() {
+    boolean isFullscreenOptionEnabled(String packageName) {
+        Boolean appAllowsFullscreenOption = readComponentProperty(mContext.getPackageManager(),
+                packageName, PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE);
         final boolean isBuildTimeFlagEnabled = mContext.getResources().getBoolean(
                 com.android.internal.R.bool.config_appCompatUserAppAspectRatioFullscreenIsEnabled);
-        return isBuildTimeFlagEnabled && getValueFromDeviceConfig(
-                KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN,
-                DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_FULLSCREEN);
+        return !FALSE.equals(appAllowsFullscreenOption) && isBuildTimeFlagEnabled
+                && getValueFromDeviceConfig(KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN,
+                    DEFAULT_VALUE_ENABLE_USER_ASPECT_RATIO_FULLSCREEN);
     }
 
     private static boolean getValueFromDeviceConfig(String name, boolean defaultValue) {
@@ -217,6 +229,17 @@
         }
     }
 
+    @Nullable
+    private static Boolean readComponentProperty(PackageManager pm, String packageName,
+            String propertyName) {
+        try {
+            return pm.getProperty(propertyName, packageName).getBoolean();
+        } catch (PackageManager.NameNotFoundException e) {
+            // No such property name
+        }
+        return null;
+    }
+
     @VisibleForTesting
     void addInfoHasLauncherEntry(@NonNull ResolveInfo infoHasLauncherEntry) {
         mInfoHasLauncherEntryList.add(infoHasLauncherEntry);
diff --git a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
index 1e74ad7..4b2e336 100644
--- a/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceController.java
@@ -30,6 +30,7 @@
 import android.widget.Button;
 import android.widget.Toast;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
@@ -57,10 +58,18 @@
     static final String KEY = "security_settings_face_delete_faces_container";
 
     public static class ConfirmRemoveDialog extends InstrumentedDialogFragment {
-
-        private boolean mIsConvenience;
+        private static final String KEY_IS_CONVENIENCE = "is_convenience";
         private DialogInterface.OnClickListener mOnClickListener;
 
+        /** Returns the new instance of the class */
+        public static ConfirmRemoveDialog newInstance(boolean isConvenience) {
+            final ConfirmRemoveDialog dialog = new ConfirmRemoveDialog();
+            final Bundle args = new Bundle();
+            args.putBoolean(KEY_IS_CONVENIENCE, isConvenience);
+            dialog.setArguments(args);
+            return dialog;
+        }
+
         @Override
         public int getMetricsCategory() {
             return SettingsEnums.DIALOG_FACE_REMOVE;
@@ -68,6 +77,8 @@
 
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
+            boolean isConvenience = getArguments().getBoolean(KEY_IS_CONVENIENCE);
+
             AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
 
             final PackageManager pm = getContext().getPackageManager();
@@ -75,11 +86,11 @@
             final int dialogMessageRes;
 
             if (hasFingerprint) {
-                dialogMessageRes = mIsConvenience
+                dialogMessageRes = isConvenience
                         ? R.string.security_settings_face_remove_dialog_details_fingerprint_conv
                         : R.string.security_settings_face_remove_dialog_details_fingerprint;
             } else {
-                dialogMessageRes = mIsConvenience
+                dialogMessageRes = isConvenience
                         ? R.string.security_settings_face_settings_remove_dialog_details_convenience
                         : R.string.security_settings_face_settings_remove_dialog_details;
             }
@@ -93,10 +104,6 @@
             return dialog;
         }
 
-        public void setIsConvenience(boolean isConvenience) {
-            mIsConvenience = isConvenience;
-        }
-
         public void setOnClickListener(DialogInterface.OnClickListener listener) {
             mOnClickListener = listener;
         }
@@ -111,7 +118,8 @@
     private Listener mListener;
     private SettingsActivity mActivity;
     private int mUserId;
-    private boolean mRemoving;
+    @VisibleForTesting
+    boolean mRemoving;
 
     private final MetricsFeatureProvider mMetricsFeatureProvider;
     private final Context mContext;
@@ -142,7 +150,7 @@
         }
     };
 
-    private final DialogInterface.OnClickListener mOnClickListener
+    private final DialogInterface.OnClickListener mOnConfirmDialogClickListener
             = new DialogInterface.OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
@@ -196,6 +204,16 @@
 
         mButton.setOnClickListener(this);
 
+        // If there is already a ConfirmRemoveDialog showing, reset the listener since the
+        // controller has been recreated.
+        ConfirmRemoveDialog removeDialog =
+                (ConfirmRemoveDialog) mActivity.getSupportFragmentManager()
+                        .findFragmentByTag(ConfirmRemoveDialog.class.getName());
+        if (removeDialog != null) {
+            mRemoving = true;
+            removeDialog.setOnClickListener(mOnConfirmDialogClickListener);
+        }
+
         if (!FaceSettings.isFaceHardwareDetected(mContext)) {
             mButton.setEnabled(false);
         } else {
@@ -218,10 +236,11 @@
         if (v == mButton) {
             mMetricsFeatureProvider.logClickedPreference(mPreference, getMetricsCategory());
             mRemoving = true;
-            ConfirmRemoveDialog dialog = new ConfirmRemoveDialog();
-            dialog.setOnClickListener(mOnClickListener);
-            dialog.setIsConvenience(BiometricUtils.isConvenience(mFaceManager));
-            dialog.show(mActivity.getSupportFragmentManager(), ConfirmRemoveDialog.class.getName());
+            ConfirmRemoveDialog confirmRemoveDialog =
+                    ConfirmRemoveDialog.newInstance(BiometricUtils.isConvenience(mFaceManager));
+            confirmRemoveDialog.setOnClickListener(mOnConfirmDialogClickListener);
+            confirmRemoveDialog.show(mActivity.getSupportFragmentManager(),
+                            ConfirmRemoveDialog.class.getName());
         }
     }
 
diff --git a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
index 0166250..41d88d2 100644
--- a/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
+++ b/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiver.java
@@ -41,6 +41,7 @@
             final IntentFilter intentFilter = new IntentFilter();
             intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
             intentFilter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
+            intentFilter.addAction(UsbManager.ACTION_USB_STATE);
             final Intent intent = mContext.registerReceiver(this, intentFilter);
             if (intent != null) {
                 onReceive(mContext, intent);
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index 41ead68..d38dede 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge;
 
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUserConsumer;
+
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.app.backup.BackupManager;
@@ -41,7 +43,6 @@
 import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 import com.android.settings.fuelgauge.batteryusage.BatteryDiffEntry;
 import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
-import com.android.settings.fuelgauge.batteryusage.BatteryHistEntry;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.HelpUtils;
@@ -149,14 +150,13 @@
             Context context, int sourceMetricsCategory,
             BatteryDiffEntry diffEntry, String usagePercent, String slotInformation,
             boolean showTimeInformation) {
-        final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
         final LaunchBatteryDetailPageArgs launchArgs = new LaunchBatteryDetailPageArgs();
         // configure the launch argument.
         launchArgs.mUsagePercent = usagePercent;
         launchArgs.mPackageName = diffEntry.getPackageName();
         launchArgs.mAppLabel = diffEntry.getAppLabel();
         launchArgs.mSlotInformation = slotInformation;
-        launchArgs.mUid = (int) histEntry.mUid;
+        launchArgs.mUid = (int) diffEntry.mUid;
         launchArgs.mIconId = diffEntry.getAppIconId();
         launchArgs.mConsumedPower = (int) diffEntry.mConsumePower;
         if (showTimeInformation) {
@@ -164,7 +164,7 @@
             launchArgs.mBackgroundTimeMs = diffEntry.mBackgroundUsageTimeInMs;
             launchArgs.mScreenOnTimeMs = diffEntry.mScreenOnTimeInMs;
         }
-        launchArgs.mIsUserEntry = histEntry.isUserEntry();
+        launchArgs.mIsUserEntry = isUserConsumer(diffEntry.mConsumerType);
         startBatteryDetailPage(context, sourceMetricsCategory, launchArgs);
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java
deleted file mode 100644
index c336fcd..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoader.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import android.app.usage.UsageEvents;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.util.Log;
-
-import androidx.annotation.VisibleForTesting;
-
-import java.util.List;
-import java.util.Map;
-import java.util.function.Supplier;
-
-/** Load app usage events data in the background. */
-public final class AppUsageDataLoader {
-    private static final String TAG = "AppUsageDataLoader";
-
-    // For testing only.
-    @VisibleForTesting
-    static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
-    @VisibleForTesting
-    static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
-
-    private AppUsageDataLoader() {}
-
-    static void enqueueWork(final Context context) {
-        AsyncTask.execute(() -> {
-            Log.d(TAG, "loadAppUsageDataSafely() in the AsyncTask");
-            loadAppUsageDataSafely(context.getApplicationContext());
-        });
-    }
-
-    @VisibleForTesting
-    static void loadAppUsageData(final Context context) {
-        final long start = System.currentTimeMillis();
-        final Map<Long, UsageEvents> appUsageEvents =
-                sFakeAppUsageEventsSupplier != null
-                        ? sFakeAppUsageEventsSupplier.get()
-                        : DataProcessor.getAppUsageEvents(context);
-        if (appUsageEvents == null) {
-            Log.w(TAG, "loadAppUsageData() returns null");
-            return;
-        }
-        final List<AppUsageEvent> appUsageEventList =
-                sFakeUsageEventsListSupplier != null
-                        ? sFakeUsageEventsListSupplier.get()
-                        : DataProcessor.generateAppUsageEventListFromUsageEvents(
-                                context, appUsageEvents);
-        if (appUsageEventList == null || appUsageEventList.isEmpty()) {
-            Log.w(TAG, "loadAppUsageData() returns null or empty content");
-            return;
-        }
-        final long elapsedTime = System.currentTimeMillis() - start;
-        Log.d(TAG, String.format("loadAppUsageData() size=%d in %d/ms", appUsageEventList.size(),
-                elapsedTime));
-        // Uploads the AppUsageEvent data into database.
-        DatabaseUtils.sendAppUsageEventData(context, appUsageEventList);
-    }
-
-    private static void loadAppUsageDataSafely(final Context context) {
-        try {
-            loadAppUsageData(context);
-        } catch (RuntimeException e) {
-            Log.e(TAG, "loadAppUsageData:" + e);
-        }
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
index 3231e55..e926f79 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceController.java
@@ -36,6 +36,7 @@
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
@@ -43,6 +44,7 @@
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnCreate;
 import com.android.settingslib.core.lifecycle.events.OnDestroy;
+import com.android.settingslib.core.lifecycle.events.OnPause;
 import com.android.settingslib.core.lifecycle.events.OnResume;
 import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
 
@@ -50,12 +52,17 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 /** Controls the update for chart graph and the list items. */
 public class BatteryChartPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy,
+        implements PreferenceControllerMixin, LifecycleObserver, OnCreate, OnDestroy, OnPause,
         OnSaveInstanceState, OnResume {
     private static final String TAG = "BatteryChartPreferenceController";
     private static final String PREFERENCE_KEY = "battery_chart";
@@ -125,7 +132,6 @@
     Map<Integer, Map<Integer, BatteryDiffData>> mBatteryUsageMap;
 
     private boolean mIs24HourFormat;
-    private boolean mHourlyChartVisible = true;
     private View mBatteryChartViewGroup;
     private TextView mChartSummaryTextView;
     private BatteryChartViewModel mDailyViewModel;
@@ -133,14 +139,17 @@
     private OnBatteryUsageUpdatedListener mOnBatteryUsageUpdatedListener;
     private OnScreenOnTimeUpdatedListener mOnScreenOnTimeUpdatedListener;
     private OnBatteryTipsUpdatedListener mOnBatteryTipsUpdatedListener;
+    private AtomicBoolean mIsAppResume = new AtomicBoolean(false);
 
     private final SettingsActivity mActivity;
     private final MetricsFeatureProvider mMetricsFeatureProvider;
+    private final PowerUsageFeatureProvider mPowerUsageFeatureProvider;
     private final Handler mHandler = new Handler(Looper.getMainLooper());
     private final AnimatorListenerAdapter mHourlyChartFadeInAdapter =
             createHourlyChartAnimatorListenerAdapter(/*visible=*/ true);
     private final AnimatorListenerAdapter mHourlyChartFadeOutAdapter =
             createHourlyChartAnimatorListenerAdapter(/*visible=*/ false);
+    private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
 
     @VisibleForTesting
     final DailyChartLabelTextGenerator mDailyChartLabelTextGenerator =
@@ -156,6 +165,8 @@
         mIs24HourFormat = DateFormat.is24HourFormat(context);
         mMetricsFeatureProvider =
                 FeatureFactory.getFactory(mContext).getMetricsFeatureProvider();
+        mPowerUsageFeatureProvider =
+                FeatureFactory.getFactory(mContext).getPowerUsageFeatureProvider(context);
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
@@ -173,9 +184,15 @@
         Log.d(TAG, String.format("onCreate() dailyIndex=%d hourlyIndex=%d",
                 mDailyChartIndex, mHourlyChartIndex));
     }
+    @Override
+    public void onPause() {
+        mIsAppResume.compareAndSet(/* expect= */ true, /* update= */ false);
+    }
+
 
     @Override
     public void onResume() {
+        mIsAppResume.compareAndSet(/* expect= */ false, /* update= */ true);
         mIs24HourFormat = DateFormat.is24HourFormat(mContext);
         mMetricsFeatureProvider.action(mPrefContext, SettingsEnums.OPEN_BATTERY_USAGE);
     }
@@ -227,20 +244,8 @@
         mOnBatteryTipsUpdatedListener = listener;
     }
 
-    void setBatteryHistoryMap(
-            final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
-        Log.d(TAG, "setBatteryHistoryMap() " + (batteryHistoryMap == null ? "null"
-                : ("size=" + batteryHistoryMap.size())));
-        // Ensure the battery chart group is visible for users.
-        animateBatteryChartViewGroup();
-        final BatteryLevelData batteryLevelData =
-                DataProcessManager.getBatteryLevelData(mContext, mHandler, batteryHistoryMap,
-                        batteryUsageMap -> {
-                            mBatteryUsageMap = batteryUsageMap;
-                            logScreenUsageTime();
-                            refreshUi();
-                        });
-        Log.d(TAG, "getBatteryLevelData: " + batteryLevelData);
+    void onBatteryLevelDataUpdate(final BatteryLevelData batteryLevelData) {
+        Log.d(TAG, "onBatteryLevelDataUpdate: " + batteryLevelData);
         mMetricsFeatureProvider.action(
                 mPrefContext,
                 SettingsEnums.ACTION_BATTERY_HISTORY_LOADED,
@@ -271,6 +276,13 @@
         refreshUi();
     }
 
+    void onBatteryUsageMapUpdate(Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
+        Log.d(TAG, "onBatteryUsageMapUpdate: " + batteryUsageMap);
+        mBatteryUsageMap = batteryUsageMap;
+        logScreenUsageTime();
+        refreshUi();
+    }
+
     void setBatteryChartView(@NonNull final BatteryChartView dailyChartView,
             @NonNull final BatteryChartView hourlyChartView) {
         final View parentView = (View) dailyChartView.getParent();
@@ -363,14 +375,36 @@
             mOnBatteryUsageUpdatedListener.onBatteryUsageUpdated(
                     slotUsageData, getSlotInformation(), isBatteryUsageMapNullOrEmpty());
 
+            Log.d(TAG, "isBatteryTipsEnabled = "
+                    + mPowerUsageFeatureProvider.isBatteryTipsEnabled());
             if (mOnBatteryTipsUpdatedListener != null) {
-                // TODO: replace with a selected powerAnomalyEvent with highest score
-                mOnBatteryTipsUpdatedListener.onBatteryTipsUpdated(null);
+                mExecutor.execute(() -> {
+                    final PowerAnomalyEventList anomalyEventList = mPowerUsageFeatureProvider
+                            .detectSettingsAnomaly(mContext, /* displayDrain= */ 0);
+                    Log.d(TAG, "anomalyEventList = " + anomalyEventList);
+                    final PowerAnomalyEvent displayEvent =
+                            getHighestScoreAnomalyEvent(anomalyEventList);
+                    mHandler.post(() -> {
+                                if (mIsAppResume.get()) {
+                                    mOnBatteryTipsUpdatedListener
+                                            .onBatteryTipsUpdated(displayEvent);
+                                }
+                            }
+                    );
+                });
             }
         }
         return true;
     }
 
+    private PowerAnomalyEvent getHighestScoreAnomalyEvent(PowerAnomalyEventList anomalyEventList) {
+        if (anomalyEventList == null || anomalyEventList.getPowerAnomalyEventsCount() == 0) {
+            return null;
+        }
+        return Collections.max(anomalyEventList.getPowerAnomalyEventsList(),
+                Comparator.comparing(PowerAnomalyEvent::getScore));
+    }
+
     private boolean refreshUiWithNoLevelDataCase() {
         setChartSummaryVisible(false);
         if (mBatteryUsageMap == null) {
@@ -472,10 +506,10 @@
     }
 
     private void animateBatteryHourlyChartView(final boolean visible) {
-        if (mHourlyChartView == null || mHourlyChartVisible == visible) {
+        if (mHourlyChartView == null
+                || (mHourlyChartView.getVisibility() == View.VISIBLE) == visible) {
             return;
         }
-        mHourlyChartVisible = visible;
 
         if (visible) {
             mHourlyChartView.setVisibility(View.VISIBLE);
@@ -632,10 +666,8 @@
             return null;
         }
         for (BatteryDiffEntry entry : entries) {
-            final BatteryHistEntry batteryHistEntry = entry.mBatteryHistEntry;
-            if (batteryHistEntry != null
-                    && batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
-                    && batteryHistEntry.mUserId == userId
+            if (!entry.isSystemEntry()
+                    && entry.mUserId == userId
                     && packageName.equals(entry.getPackageName())) {
                 return entry;
             }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
index 891e5e0..086f56c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryChartView.java
@@ -17,6 +17,7 @@
 
 import static com.android.settings.Utils.formatPercentage;
 import static com.android.settings.fuelgauge.batteryusage.BatteryChartViewModel.AxisLabelPosition.BETWEEN_TRAPEZOIDS;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
 
 import static java.lang.Math.abs;
 import static java.lang.Math.round;
@@ -615,8 +616,8 @@
 
     private static boolean isTrapezoidValid(
             @NonNull BatteryChartViewModel viewModel, int trapezoidIndex) {
-        return viewModel.getLevel(trapezoidIndex) != null
-                && viewModel.getLevel(trapezoidIndex + 1) != null;
+        return viewModel.getLevel(trapezoidIndex) != BATTERY_LEVEL_UNKNOWN
+                && viewModel.getLevel(trapezoidIndex + 1) != BATTERY_LEVEL_UNKNOWN;
     }
 
     private static boolean isTrapezoidIndexValid(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index 47ae568..53861e3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
+
 import android.content.Context;
 import android.os.BatteryConsumer;
 
@@ -34,6 +36,10 @@
 public class BatteryDiffData {
     static final double SMALL_PERCENTAGE_THRESHOLD = 1f;
 
+    private final long mStartTimestamp;
+    private final long mEndTimestamp;
+    private final int mStartBatteryLevel;
+    private final int mEndBatteryLevel;
     private final long mScreenOnTime;
     private final List<BatteryDiffEntry> mAppEntries;
     private final List<BatteryDiffEntry> mSystemEntries;
@@ -41,12 +47,20 @@
     /** Constructor for the diff entries. */
     public BatteryDiffData(
             final Context context,
+            final long startTimestamp,
+            final long endTimestamp,
+            final int startBatteryLevel,
+            final int endBatteryLevel,
             final long screenOnTime,
             final @NonNull List<BatteryDiffEntry> appDiffEntries,
             final @NonNull List<BatteryDiffEntry> systemDiffEntries,
             final @NonNull Set<String> systemAppsPackageNames,
             final @NonNull Set<Integer> systemAppsUids,
             final boolean isAccumulated) {
+        mStartTimestamp = startTimestamp;
+        mEndTimestamp = endTimestamp;
+        mStartBatteryLevel = startBatteryLevel;
+        mEndBatteryLevel = endBatteryLevel;
         mScreenOnTime = screenOnTime;
         mAppEntries = appDiffEntries;
         mSystemEntries = systemDiffEntries;
@@ -63,18 +77,48 @@
         processAndSortEntries(mSystemEntries);
     }
 
-    public long getScreenOnTime() {
+    long getStartTimestamp() {
+        return mStartTimestamp;
+    }
+
+    long getEndTimestamp() {
+        return mEndTimestamp;
+    }
+
+    int getStartBatteryLevel() {
+        return mStartBatteryLevel;
+    }
+
+    int getEndBatteryLevel() {
+        return mEndBatteryLevel;
+    }
+
+    long getScreenOnTime() {
         return mScreenOnTime;
     }
 
-    public List<BatteryDiffEntry> getAppDiffEntryList() {
+    List<BatteryDiffEntry> getAppDiffEntryList() {
         return mAppEntries;
     }
 
-    public List<BatteryDiffEntry> getSystemDiffEntryList() {
+    List<BatteryDiffEntry> getSystemDiffEntryList() {
         return mSystemEntries;
     }
 
+    @Override
+    public String toString() {
+        return new StringBuilder("BatteryDiffData{")
+                .append("startTimestamp:" + utcToLocalTimeForLogging(mStartTimestamp))
+                .append("|endTimestamp:" + utcToLocalTimeForLogging(mEndTimestamp))
+                .append("|startLevel:" + mStartBatteryLevel)
+                .append("|endLevel:" + mEndBatteryLevel)
+                .append("|screenOnTime:" + mScreenOnTime)
+                .append("|appEntries.size:" + mAppEntries.size())
+                .append("|systemEntries.size:" + mSystemEntries.size())
+                .append("}")
+                .toString();
+    }
+
     /** Removes fake usage data and hidden packages. */
     private void purgeBatteryDiffData(final PowerUsageFeatureProvider featureProvider) {
         purgeBatteryDiffData(featureProvider, mAppEntries);
@@ -109,7 +153,7 @@
             final long screenOnTimeInMs = entry.mScreenOnTimeInMs;
             final double comsumePower = entry.mConsumePower;
             final String packageName = entry.getPackageName();
-            final Integer componentId = entry.mBatteryHistEntry.mDrainType;
+            final Integer componentId = entry.mComponentId;
             if ((screenOnTimeInMs < screenOnTimeThresholdInMs
                     && comsumePower < consumePowerThreshold)
                     || ConvertUtils.FAKE_PACKAGE_NAME.equals(packageName)
@@ -130,14 +174,16 @@
             final @NonNull Set<Integer> systemAppsUids,
             final @NonNull List<BatteryDiffEntry> appEntries) {
         final List<String> systemAppsAllowlist = featureProvider.getSystemAppsAllowlist();
-        BatteryDiffEntry.SystemAppsBatteryDiffEntry systemAppsDiffEntry = null;
+        BatteryDiffEntry systemAppsDiffEntry = null;
         final Iterator<BatteryDiffEntry> appListIterator = appEntries.iterator();
         while (appListIterator.hasNext()) {
             final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
             if (needsCombineInSystemApp(batteryDiffEntry, systemAppsAllowlist,
                     systemAppsPackageNames, systemAppsUids)) {
                 if (systemAppsDiffEntry == null) {
-                    systemAppsDiffEntry = new BatteryDiffEntry.SystemAppsBatteryDiffEntry(context);
+                    systemAppsDiffEntry = new BatteryDiffEntry(context,
+                            BatteryDiffEntry.SYSTEM_APPS_KEY, BatteryDiffEntry.SYSTEM_APPS_KEY,
+                            ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
                 }
                 systemAppsDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
                 systemAppsDiffEntry.mForegroundUsageTimeInMs +=
@@ -159,17 +205,18 @@
         final Set<Integer> othersSystemComponentSet = featureProvider.getOthersSystemComponentSet();
         final Set<String> othersCustomComponentNameSet =
                 featureProvider.getOthersCustomComponentNameSet();
-        BatteryDiffEntry.OthersBatteryDiffEntry othersDiffEntry = null;
+        BatteryDiffEntry othersDiffEntry = null;
         final Iterator<BatteryDiffEntry> systemListIterator = systemEntries.iterator();
         while (systemListIterator.hasNext()) {
             final BatteryDiffEntry batteryDiffEntry = systemListIterator.next();
-            final int componentId = batteryDiffEntry.mBatteryHistEntry.mDrainType;
+            final int componentId = batteryDiffEntry.mComponentId;
             if (othersSystemComponentSet.contains(componentId) || (
                     componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
                             && othersCustomComponentNameSet.contains(
                                     batteryDiffEntry.getAppLabel()))) {
                 if (othersDiffEntry == null) {
-                    othersDiffEntry = new BatteryDiffEntry.OthersBatteryDiffEntry(context);
+                    othersDiffEntry = new BatteryDiffEntry(context, BatteryDiffEntry.OTHERS_KEY,
+                            BatteryDiffEntry.OTHERS_KEY, ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
                 }
                 othersDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
                 othersDiffEntry.setTotalConsumePower(
@@ -188,7 +235,7 @@
             final @NonNull List<String> systemAppsAllowlist,
             final @NonNull Set<String> systemAppsPackageNames,
             final @NonNull Set<Integer> systemAppsUids) {
-        if (batteryDiffEntry.mBatteryHistEntry.mIsHidden) {
+        if (batteryDiffEntry.mIsHidden) {
             return true;
         }
 
@@ -201,7 +248,7 @@
             return true;
         }
 
-        int uid = (int) batteryDiffEntry.mBatteryHistEntry.mUid;
+        int uid = (int) batteryDiffEntry.mUid;
         return systemAppsPackageNames.contains(packageName) || systemAppsUids.contains(uid);
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index 2ed9196..b284ea5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -15,7 +15,6 @@
  */
 package com.android.settings.fuelgauge.batteryusage;
 
-import android.content.ContentValues;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
@@ -24,6 +23,7 @@
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.Log;
+import android.util.Pair;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -45,12 +45,29 @@
     static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>();
     // Whether a specific item is valid to launch restriction page?
     @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
-    public static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
-
+    static final Map<String, Boolean> sValidForRestriction = new HashMap<>();
     /** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
-    public static final Comparator<BatteryDiffEntry> COMPARATOR =
+    static final Comparator<BatteryDiffEntry> COMPARATOR =
             (a, b) -> Double.compare(b.getSortingKey(), a.getSortingKey());
+    static final String SYSTEM_APPS_KEY = "A|SystemApps";
+    static final String OTHERS_KEY = "S|Others";
 
+    // key -> (label_id, icon_id)
+    private static final Map<String, Pair<Integer, Integer>> SPECIAL_ENTRY_MAP = Map.of(
+            SYSTEM_APPS_KEY,
+            Pair.create(R.string.battery_usage_system_apps, R.drawable.ic_power_system),
+            OTHERS_KEY,
+            Pair.create(R.string.battery_usage_others,
+                    R.drawable.ic_settings_battery_usage_others));
+
+    public long mUid;
+    public long mUserId;
+    public String mKey;
+    public boolean mIsHidden;
+    public int mComponentId;
+    public String mLegacyPackageName;
+    public String mLegacyLabel;
+    public int mConsumerType;
     public long mForegroundUsageTimeInMs;
     public long mBackgroundUsageTimeInMs;
     public long mScreenOnTimeInMs;
@@ -59,8 +76,6 @@
     public double mForegroundServiceUsageConsumePower;
     public double mBackgroundUsageConsumePower;
     public double mCachedUsageConsumePower;
-    // A BatteryHistEntry corresponding to this diff usage data.
-    public final BatteryHistEntry mBatteryHistEntry;
 
     protected Context mContext;
 
@@ -83,6 +98,14 @@
 
     public BatteryDiffEntry(
             Context context,
+            long uid,
+            long userId,
+            String key,
+            boolean isHidden,
+            int componentId,
+            String legacyPackageName,
+            String legacyLabel,
+            int consumerType,
             long foregroundUsageTimeInMs,
             long backgroundUsageTimeInMs,
             long screenOnTimeInMs,
@@ -90,21 +113,36 @@
             double foregroundUsageConsumePower,
             double foregroundServiceUsageConsumePower,
             double backgroundUsageConsumePower,
-            double cachedUsageConsumePower,
-            BatteryHistEntry batteryHistEntry) {
+            double cachedUsageConsumePower) {
         mContext = context;
+        mUid = uid;
+        mUserId = userId;
+        mKey = key;
+        mIsHidden = isHidden;
+        mComponentId = componentId;
+        mLegacyPackageName = legacyPackageName;
+        mLegacyLabel = legacyLabel;
+        mConsumerType = consumerType;
+        mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
+        mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
+        mScreenOnTimeInMs = screenOnTimeInMs;
         mConsumePower = consumePower;
         mForegroundUsageConsumePower = foregroundUsageConsumePower;
         mForegroundServiceUsageConsumePower = foregroundServiceUsageConsumePower;
         mBackgroundUsageConsumePower = backgroundUsageConsumePower;
         mCachedUsageConsumePower = cachedUsageConsumePower;
-        mForegroundUsageTimeInMs = foregroundUsageTimeInMs;
-        mBackgroundUsageTimeInMs = backgroundUsageTimeInMs;
-        mScreenOnTimeInMs = screenOnTimeInMs;
-        mBatteryHistEntry = batteryHistEntry;
         mUserManager = context.getSystemService(UserManager.class);
     }
 
+    public BatteryDiffEntry(Context context, String key, String legacyLabel, int consumerType) {
+        this(context, /*uid=*/ 0, /*userId=*/ 0, key, /*isHidden=*/ false, /*componentId=*/ -1,
+                /*legacyPackageName=*/ null, legacyLabel, consumerType,
+                /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0,
+                /*screenOnTimeInMs=*/ 0, /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
+                /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
+                /*cachedUsageConsumePower=*/ 0);
+    }
+
     /** Sets the total consumed power in a specific time slot. */
     public void setTotalConsumePower(double totalConsumePower) {
         mTotalConsumePower = totalConsumePower;
@@ -135,13 +173,22 @@
 
     /** Gets the key for sorting */
     public double getSortingKey() {
-        return getPercentage() + getAdjustPercentageOffset();
+        return getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())
+                ? -1 : getPercentage() + getAdjustPercentageOffset();
     }
 
     /** Clones a new instance. */
     public BatteryDiffEntry clone() {
         return new BatteryDiffEntry(
                 this.mContext,
+                this.mUid,
+                this.mUserId,
+                this.mKey,
+                this.mIsHidden,
+                this.mComponentId,
+                this.mLegacyPackageName,
+                this.mLegacyLabel,
+                this.mConsumerType,
                 this.mForegroundUsageTimeInMs,
                 this.mBackgroundUsageTimeInMs,
                 this.mScreenOnTimeInMs,
@@ -149,17 +196,14 @@
                 this.mForegroundUsageConsumePower,
                 this.mForegroundServiceUsageConsumePower,
                 this.mBackgroundUsageConsumePower,
-                this.mCachedUsageConsumePower,
-                this.mBatteryHistEntry /*same instance*/);
+                this.mCachedUsageConsumePower);
     }
 
     /** Gets the app label name for this entry. */
     public String getAppLabel() {
         loadLabelAndIcon();
-        // Returns default applicationn label if we cannot find it.
-        return mAppLabel == null || mAppLabel.length() == 0
-                ? mBatteryHistEntry.mAppLabel
-                : mAppLabel;
+        // Returns default application label if we cannot find it.
+        return mAppLabel == null || mAppLabel.length() == 0 ? mLegacyLabel : mAppLabel;
     }
 
     /** Gets the app icon {@link Drawable} for this entry. */
@@ -179,7 +223,7 @@
     /** Gets the searching package name for UID battery type. */
     public String getPackageName() {
         final String packageName = mDefaultPackageName != null
-                ? mDefaultPackageName : mBatteryHistEntry.mPackageName;
+                ? mDefaultPackageName : mLegacyPackageName;
         if (packageName == null) {
             return packageName;
         }
@@ -198,10 +242,10 @@
 
     /** Whether the current BatteryDiffEntry is system component or not. */
     public boolean isSystemEntry() {
-        if (mBatteryHistEntry.mIsHidden) {
+        if (mIsHidden) {
             return false;
         }
-        switch (mBatteryHistEntry.mConsumerType) {
+        switch (mConsumerType) {
             case ConvertUtils.CONSUMER_TYPE_USER_BATTERY:
             case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
                 return true;
@@ -236,12 +280,22 @@
         updateRestrictionFlagState();
         sValidForRestriction.put(getKey(), Boolean.valueOf(mValidForRestriction));
 
+        if (getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())) {
+            Pair<Integer, Integer> pair = SPECIAL_ENTRY_MAP.get(getKey());
+            mAppLabel = mContext.getString(pair.first);
+            mAppIconId = pair.second;
+            mAppIcon = mContext.getDrawable(mAppIconId);
+            sResourceCache.put(
+                    getKey(),
+                    new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
+            return;
+        }
+
         // Loads application icon and label based on consumer type.
-        switch (mBatteryHistEntry.mConsumerType) {
+        switch (mConsumerType) {
             case ConvertUtils.CONSUMER_TYPE_USER_BATTERY:
                 final BatteryEntry.NameAndIcon nameAndIconForUser =
-                        BatteryEntry.getNameAndIconFromUserId(
-                                mContext, (int) mBatteryHistEntry.mUserId);
+                        BatteryEntry.getNameAndIconFromUserId(mContext, (int) mUserId);
                 if (nameAndIconForUser != null) {
                     mAppIcon = nameAndIconForUser.mIcon;
                     mAppLabel = nameAndIconForUser.mName;
@@ -252,8 +306,7 @@
                 break;
             case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
                 final BatteryEntry.NameAndIcon nameAndIconForSystem =
-                        BatteryEntry.getNameAndIconFromPowerComponent(
-                                mContext, mBatteryHistEntry.mDrainType);
+                        BatteryEntry.getNameAndIconFromPowerComponent(mContext, mComponentId);
                 if (nameAndIconForSystem != null) {
                     mAppLabel = nameAndIconForSystem.mName;
                     if (nameAndIconForSystem.mIconId != 0) {
@@ -283,12 +336,12 @@
     }
 
     String getKey() {
-        return mBatteryHistEntry.getKey();
+        return mKey;
     }
 
     @VisibleForTesting
     void updateRestrictionFlagState() {
-        if (!mBatteryHistEntry.isAppEntry()) {
+        if (isSystemEntry()) {
             mValidForRestriction = false;
             return;
         }
@@ -348,7 +401,7 @@
             return;
         }
 
-        final int uid = (int) mBatteryHistEntry.mUid;
+        final int uid = (int) mUid;
         final String[] packages = packageManager.getPackagesForUid(uid);
         // Loads special defined application label and icon if available.
         if (packages == null || packages.length == 0) {
@@ -394,8 +447,7 @@
                         StringUtil.formatElapsedTime(mContext, (double) mScreenOnTimeInMs,
                                 /*withSeconds=*/ true, /*collapseTimeUnit=*/ false)))
                 .append(String.format("\n\tpackage:%s|%s uid:%d userId:%d",
-                        mBatteryHistEntry.mPackageName, getPackageName(),
-                        mBatteryHistEntry.mUid, mBatteryHistEntry.mUserId));
+                        mLegacyPackageName, getPackageName(), mUid, mUserId));
         return builder.toString();
     }
 
@@ -406,130 +458,8 @@
     }
 
     private Drawable getBadgeIconForUser(Drawable icon) {
-        final int userId = UserHandle.getUserId((int) mBatteryHistEntry.mUid);
+        final int userId = UserHandle.getUserId((int) mUid);
         return userId == UserHandle.USER_OWNER ? icon :
                 mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
     }
-
-    /** Specific battery diff entry for system apps. */
-    static class SystemAppsBatteryDiffEntry extends BatteryDiffEntry {
-        SystemAppsBatteryDiffEntry(Context context) {
-            super(context,
-                    /*foregroundUsageTimeInMs=*/ 0,
-                    /*backgroundUsageTimeInMs=*/ 0,
-                    /*screenOnTimeInMs=*/ 0,
-                    /*consumePower=*/ 0,
-                    /*foregroundUsageConsumePower=*/ 0,
-                    /*foregroundServiceUsageConsumePower=*/ 0,
-                    /*backgroundUsageConsumePower=*/ 0,
-                    /*cachedUsageConsumePower=*/ 0,
-                    new BatteryHistEntry(new ContentValues()));
-        }
-
-        @Override
-        public String getKey() {
-            return "A|SystemApps";
-        }
-
-        @Override
-        public String getAppLabel() {
-            return mContext.getString(R.string.battery_usage_system_apps);
-        }
-
-        @Override
-        public Drawable getAppIcon() {
-            return mContext.getDrawable(R.drawable.ic_power_system);
-        }
-
-        @Override
-        public boolean validForRestriction() {
-            return false;
-        }
-
-        @Override
-        public boolean isSystemEntry() {
-            return false;
-        }
-
-        @Override
-        public double getSortingKey() {
-            // Always on the bottom of the app list.
-            return -1;
-        }
-
-        @Override
-        public BatteryDiffEntry clone() {
-            SystemAppsBatteryDiffEntry newEntry = new SystemAppsBatteryDiffEntry(this.mContext);
-            newEntry.mForegroundUsageTimeInMs = this.mForegroundUsageTimeInMs;
-            newEntry.mBackgroundUsageTimeInMs = this.mBackgroundUsageTimeInMs;
-            newEntry.mScreenOnTimeInMs = this.mScreenOnTimeInMs;
-            newEntry.mConsumePower = this.mConsumePower;
-            newEntry.mForegroundUsageConsumePower = this.mForegroundUsageConsumePower;
-            newEntry.mForegroundServiceUsageConsumePower = this.mForegroundServiceUsageConsumePower;
-            newEntry.mBackgroundUsageConsumePower = this.mBackgroundUsageConsumePower;
-            newEntry.mCachedUsageConsumePower = this.mCachedUsageConsumePower;
-            return newEntry;
-        }
-    }
-
-    /** Specific battery diff entry for others. */
-    static class OthersBatteryDiffEntry extends BatteryDiffEntry {
-        OthersBatteryDiffEntry(Context context) {
-            super(context,
-                    /*foregroundUsageTimeInMs=*/ 0,
-                    /*backgroundUsageTimeInMs=*/ 0,
-                    /*screenOnTimeInMs=*/ 0,
-                    /*consumePower=*/ 0,
-                    /*foregroundUsageConsumePower=*/ 0,
-                    /*foregroundServiceUsageConsumePower=*/ 0,
-                    /*backgroundUsageConsumePower=*/ 0,
-                    /*cachedUsageConsumePower=*/ 0,
-                    new BatteryHistEntry(new ContentValues()));
-        }
-
-        @Override
-        public String getKey() {
-            return "S|Others";
-        }
-
-        @Override
-        public String getAppLabel() {
-            return mContext.getString(R.string.battery_usage_others);
-        }
-
-        @Override
-        public Drawable getAppIcon() {
-            return mContext.getDrawable(R.drawable.ic_settings_battery_usage_others);
-        }
-
-        @Override
-        public boolean validForRestriction() {
-            return false;
-        }
-
-        @Override
-        public boolean isSystemEntry() {
-            return true;
-        }
-
-        @Override
-        public double getSortingKey() {
-            // Always on the bottom of the system list.
-            return -1;
-        }
-
-        @Override
-        public BatteryDiffEntry clone() {
-            OthersBatteryDiffEntry newEntry = new OthersBatteryDiffEntry(this.mContext);
-            newEntry.mForegroundUsageTimeInMs = this.mForegroundUsageTimeInMs;
-            newEntry.mBackgroundUsageTimeInMs = this.mBackgroundUsageTimeInMs;
-            newEntry.mScreenOnTimeInMs = this.mScreenOnTimeInMs;
-            newEntry.mConsumePower = this.mConsumePower;
-            newEntry.mForegroundUsageConsumePower = this.mForegroundUsageConsumePower;
-            newEntry.mForegroundServiceUsageConsumePower = this.mForegroundServiceUsageConsumePower;
-            newEntry.mBackgroundUsageConsumePower = this.mBackgroundUsageConsumePower;
-            newEntry.mCachedUsageConsumePower = this.mCachedUsageConsumePower;
-            return newEntry;
-        }
-    }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
index 827f0fc..6f78566 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntry.java
@@ -169,21 +169,6 @@
         return mIsValidEntry;
     }
 
-    /** Whether this {@link BatteryHistEntry} is user consumer or not. */
-    public boolean isUserEntry() {
-        return mConsumerType == ConvertUtils.CONSUMER_TYPE_USER_BATTERY;
-    }
-
-    /** Whether this {@link BatteryHistEntry} is app consumer or not. */
-    public boolean isAppEntry() {
-        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/batteryusage/BatteryHistoryLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
deleted file mode 100644
index 9a0e410..0000000
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryLoader.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.settings.fuelgauge.batteryusage;
-
-import android.content.Context;
-
-import com.android.settingslib.utils.AsyncLoaderCompat;
-
-import java.util.Calendar;
-import java.util.Map;
-
-/** Loader that can be used to load battery history information. */
-public class BatteryHistoryLoader
-        extends AsyncLoaderCompat<Map<Long, Map<String, BatteryHistEntry>>> {
-    private static final String TAG = "BatteryHistoryLoader";
-
-    private final Context mContext;
-
-    public BatteryHistoryLoader(Context context) {
-        super(context);
-        mContext = context;
-    }
-
-    @Override
-    protected void onDiscardResult(Map<Long, Map<String, BatteryHistEntry>> result) {
-    }
-
-    @Override
-    public Map<Long, Map<String, BatteryHistEntry>> loadInBackground() {
-        return DatabaseUtils.getHistoryMapSinceLastFullCharge(mContext, Calendar.getInstance());
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
index c78b3c7..d64bf34 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreference.java
@@ -17,17 +17,13 @@
 package com.android.settings.fuelgauge.batteryusage;
 
 import android.content.Context;
-import android.os.BatteryUsageStats;
 import android.util.AttributeSet;
 import android.widget.TextView;
 
-import androidx.annotation.NonNull;
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.BatteryUtils;
 
 /**
@@ -36,9 +32,6 @@
 public class BatteryHistoryPreference extends Preference {
     private static final String TAG = "BatteryHistoryPreference";
 
-    @VisibleForTesting
-    BatteryInfo mBatteryInfo;
-
     private BatteryChartView mDailyChartView;
     private BatteryChartView mHourlyChartView;
     private BatteryChartPreferenceController mChartPreferenceController;
@@ -49,13 +42,6 @@
         setSelectable(false);
     }
 
-    void setBatteryUsageStats(@NonNull BatteryUsageStats batteryUsageStats) {
-        BatteryInfo.getBatteryInfo(getContext(), info -> {
-            mBatteryInfo = info;
-            notifyChanged();
-        }, batteryUsageStats, false);
-    }
-
     void setChartPreferenceController(BatteryChartPreferenceController controller) {
         mChartPreferenceController = controller;
         if (mDailyChartView != null && mHourlyChartView != null) {
@@ -67,9 +53,6 @@
     public void onBindViewHolder(PreferenceViewHolder view) {
         super.onBindViewHolder(view);
         final long startTime = System.currentTimeMillis();
-        if (mBatteryInfo == null) {
-            return;
-        }
         final TextView companionTextView = (TextView) view.findViewById(R.id.companion_text);
         mDailyChartView = (BatteryChartView) view.findViewById(R.id.daily_battery_chart);
         mDailyChartView.setCompanionTextView(companionTextView);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
index 4ff9eeb..53ebbd9 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelData.java
@@ -16,15 +16,28 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
+
+import android.text.format.DateUtils;
+import android.util.ArrayMap;
+
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
 import androidx.core.util.Preconditions;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
+import java.util.Map;
 import java.util.Objects;
 
 /** Wraps the battery timestamp and level data used for battery usage chart. */
 public final class BatteryLevelData {
+    private static final long MIN_SIZE = 2;
+    private static final long TIME_SLOT = DateUtils.HOUR_IN_MILLIS * 2;
+
     /** A container for the battery timestamp and level data. */
     public static final class PeriodBatteryLevelData {
         // The length of mTimestamps and mLevels must be the same. mLevels[index] might be null when
@@ -33,12 +46,14 @@
         private final List<Integer> mLevels;
 
         public PeriodBatteryLevelData(
-                @NonNull List<Long> timestamps, @NonNull List<Integer> levels) {
-            Preconditions.checkArgument(timestamps.size() == levels.size(),
-                    /* errorMessage= */ "Timestamp: " + timestamps.size() + ", Level: "
-                            + levels.size());
+                @NonNull Map<Long, Integer> batteryLevelMap,
+                @NonNull List<Long> timestamps) {
             mTimestamps = timestamps;
-            mLevels = levels;
+            mLevels = new ArrayList<>(timestamps.size());
+            for (Long timestamp : timestamps) {
+                mLevels.add(batteryLevelMap.containsKey(timestamp)
+                        ? batteryLevelMap.get(timestamp) : BATTERY_LEVEL_UNKNOWN);
+            }
         }
 
         public List<Long> getTimestamps() {
@@ -68,15 +83,21 @@
     // The size of hourly data must be the size of daily data - 1.
     private final List<PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
 
-    public BatteryLevelData(
-            @NonNull PeriodBatteryLevelData dailyBatteryLevels,
-            @NonNull List<PeriodBatteryLevelData> hourlyBatteryLevelsPerDay) {
-        final long dailySize = dailyBatteryLevels.getTimestamps().size();
-        final long hourlySize = hourlyBatteryLevelsPerDay.size();
-        Preconditions.checkArgument(hourlySize == dailySize - 1,
-                /* errorMessage= */ "DailySize: " + dailySize + ", HourlySize: " + hourlySize);
-        mDailyBatteryLevels = dailyBatteryLevels;
-        mHourlyBatteryLevelsPerDay = hourlyBatteryLevelsPerDay;
+    public BatteryLevelData(@NonNull Map<Long, Integer> batteryLevelMap) {
+        final int mapSize = batteryLevelMap.size();
+        Preconditions.checkArgument(mapSize >= MIN_SIZE, "batteryLevelMap size:" + mapSize);
+
+        final List<Long> timestampList = new ArrayList<>(batteryLevelMap.keySet());
+        Collections.sort(timestampList);
+        final List<Long> dailyTimestamps = getDailyTimestamps(timestampList);
+        final List<List<Long>> hourlyTimestamps = getHourlyTimestamps(dailyTimestamps);
+
+        mDailyBatteryLevels = new PeriodBatteryLevelData(batteryLevelMap, dailyTimestamps);
+        mHourlyBatteryLevelsPerDay = new ArrayList<>(hourlyTimestamps.size());
+        for (List<Long> hourlyTimestampsPerDay : hourlyTimestamps) {
+            mHourlyBatteryLevelsPerDay.add(
+                    new PeriodBatteryLevelData(batteryLevelMap, hourlyTimestampsPerDay));
+        }
     }
 
     public PeriodBatteryLevelData getDailyBatteryLevels() {
@@ -94,5 +115,69 @@
                 Objects.toString(mDailyBatteryLevels),
                 Objects.toString(mHourlyBatteryLevelsPerDay));
     }
+
+    @Nullable
+    static BatteryLevelData combine(@Nullable BatteryLevelData existingBatteryLevelData,
+            List<BatteryEvent> batteryLevelRecordEvents) {
+        final Map<Long, Integer> batteryLevelMap = new ArrayMap<>(batteryLevelRecordEvents.size());
+        for (BatteryEvent event : batteryLevelRecordEvents) {
+            batteryLevelMap.put(event.getTimestamp(), event.getBatteryLevel());
+        }
+        if (existingBatteryLevelData != null) {
+            List<PeriodBatteryLevelData> multiDaysData =
+                    existingBatteryLevelData.getHourlyBatteryLevelsPerDay();
+            for (int dayIndex = 0; dayIndex < multiDaysData.size(); dayIndex++) {
+                PeriodBatteryLevelData oneDayData = multiDaysData.get(dayIndex);
+                for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size(); hourIndex++) {
+                    batteryLevelMap.put(oneDayData.getTimestamps().get(hourIndex),
+                            oneDayData.getLevels().get(hourIndex));
+                }
+            }
+        }
+        return batteryLevelMap.size() < MIN_SIZE ? null : new BatteryLevelData(batteryLevelMap);
+    }
+
+    /**
+     * Computes expected daily timestamp slots.
+     *
+     * The valid result should be composed of 3 parts:
+     * 1) start timestamp
+     * 2) every 00:00 timestamp (default timezone) between the start and end
+     * 3) end timestamp
+     * Otherwise, returns an empty list.
+     */
+    @VisibleForTesting
+    static List<Long> getDailyTimestamps(final List<Long> timestampList) {
+        Preconditions.checkArgument(
+                timestampList.size() >= MIN_SIZE, "timestampList size:" + timestampList.size());
+        final List<Long> dailyTimestampList = new ArrayList<>();
+        final long startTimestamp = timestampList.get(0);
+        final long endTimestamp = timestampList.get(timestampList.size() - 1);
+        for (long timestamp = startTimestamp; timestamp < endTimestamp;
+                timestamp = TimestampUtils.getNextDayTimestamp(timestamp)) {
+            dailyTimestampList.add(timestamp);
+        }
+        dailyTimestampList.add(endTimestamp);
+        return dailyTimestampList;
+    }
+
+    private static List<List<Long>> getHourlyTimestamps(final List<Long> dailyTimestamps) {
+        final List<List<Long>> hourlyTimestamps = new ArrayList<>();
+        for (int dailyIndex = 0; dailyIndex < dailyTimestamps.size() - 1; dailyIndex++) {
+            final List<Long> hourlyTimestampsPerDay = new ArrayList<>();
+            final long startTime = dailyTimestamps.get(dailyIndex);
+            final long endTime = dailyTimestamps.get(dailyIndex + 1);
+
+            hourlyTimestampsPerDay.add(startTime);
+            for (long timestamp = TimestampUtils.getNextEvenHourTimestamp(startTime);
+                    timestamp < endTime; timestamp += TIME_SLOT) {
+                hourlyTimestampsPerDay.add(timestamp);
+            }
+            hourlyTimestampsPerDay.add(endTime);
+
+            hourlyTimestamps.add(hourlyTimestampsPerDay);
+        }
+        return hourlyTimestamps;
+    }
 }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
index f59f2e2..5857d62 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreference.java
@@ -101,6 +101,7 @@
                     .setDestination(mDestinationComponentName)
                     .setSourceMetricsCategory(mSourceMetricsCategory)
                     .launch();
+            setVisible(false);
         } else if (viewId == R.id.dismiss_button) {
             setVisible(false);
         }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
index 991a8f6..42604f5 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsController.java
@@ -36,8 +36,6 @@
     private static final String ROOT_PREFERENCE_KEY = "battery_tips_category";
     private static final String CARD_PREFERENCE_KEY = "battery_tips_card";
 
-    private final String[] mPowerAnomalyKeys;
-
     @VisibleForTesting
     BatteryTipsCardPreference mCardPreference;
     @VisibleForTesting
@@ -47,7 +45,6 @@
         super(context, ROOT_PREFERENCE_KEY);
         mPowerUsageFeatureProvider = FeatureFactory.getFactory(context)
                 .getPowerUsageFeatureProvider(context);
-        mPowerAnomalyKeys = context.getResources().getStringArray(R.array.power_anomaly_keys);
     }
 
     private boolean isTipsCardVisible() {
@@ -66,16 +63,6 @@
         mCardPreference = screen.findPreference(CARD_PREFERENCE_KEY);
     }
 
-    @VisibleForTesting
-    int getPowerAnomalyEventIndex(String powerAnomalyKey) {
-        for (int index = 0; index < mPowerAnomalyKeys.length; index++) {
-            if (mPowerAnomalyKeys[index].equals(powerAnomalyKey)) {
-                return index;
-            }
-        }
-        return -1;
-    }
-
     private <T> T getInfo(PowerAnomalyEvent powerAnomalyEvent,
                           Function<WarningBannerInfo, T> warningBannerInfoSupplier,
                           Function<WarningItemInfo, T> warningItemInfoSupplier) {
@@ -98,8 +85,9 @@
             return string;
         }
 
-        if (resourceIndex >= 0) {
-            string = mContext.getResources().getStringArray(resourceId)[resourceIndex];
+        String[] stringArray = mContext.getResources().getStringArray(resourceId);
+        if (resourceIndex >= 0 && resourceIndex < stringArray.length) {
+            string = stringArray[resourceIndex];
         }
 
         return string;
@@ -117,10 +105,11 @@
         }
 
         // Get card preference strings and navigate fragment info
-        final int index = getPowerAnomalyEventIndex(powerAnomalyEvent.getKey());
+        final int resourceIndex = powerAnomalyEvent.hasKey()
+                ? powerAnomalyEvent.getKey().getNumber() : -1;
 
         String titleString = getString(powerAnomalyEvent, WarningBannerInfo::getTitleString,
-                WarningItemInfo::getTitleString, R.array.power_anomaly_titles, index);
+                WarningItemInfo::getTitleString, R.array.power_anomaly_titles, resourceIndex);
         if (titleString.isEmpty()) {
             mCardPreference.setVisible(false);
             return;
@@ -128,10 +117,10 @@
 
         String mainBtnString = getString(powerAnomalyEvent,
                 WarningBannerInfo::getMainButtonString, WarningItemInfo::getMainButtonString,
-                R.array.power_anomaly_main_btn_strings, index);
+                R.array.power_anomaly_main_btn_strings, resourceIndex);
         String dismissBtnString = getString(powerAnomalyEvent,
                 WarningBannerInfo::getCancelButtonString, WarningItemInfo::getCancelButtonString,
-                R.array.power_anomaly_dismiss_btn_strings, index);
+                R.array.power_anomaly_dismiss_btn_strings, resourceIndex);
 
         String destinationClassName = getString(powerAnomalyEvent,
                 WarningBannerInfo::getMainButtonDestination,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
index b262dee..8aa31e2 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java
@@ -144,19 +144,17 @@
         }
         final PowerGaugePreference powerPref = (PowerGaugePreference) preference;
         final BatteryDiffEntry diffEntry = powerPref.getBatteryDiffEntry();
-        final BatteryHistEntry histEntry = diffEntry.mBatteryHistEntry;
-        final String packageName = histEntry.mPackageName;
-        final boolean isAppEntry = histEntry.isAppEntry();
+        final String packageName = diffEntry.getPackageName();
         mMetricsFeatureProvider.action(
                 /* attribution */ SettingsEnums.OPEN_BATTERY_USAGE,
-                /* action */ isAppEntry
-                        ? SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM
-                        : SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
+                /* action */ diffEntry.isSystemEntry()
+                        ? SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM
+                        : SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
                 /* pageId */ SettingsEnums.OPEN_BATTERY_USAGE,
                 TextUtils.isEmpty(packageName) ? PACKAGE_NAME_NONE : packageName,
                 (int) Math.round(diffEntry.getPercentage()));
         Log.d(TAG, String.format("handleClick() label=%s key=%s package=%s",
-                diffEntry.getAppLabel(), histEntry.getKey(), histEntry.mPackageName));
+                diffEntry.getAppLabel(), diffEntry.getKey(), packageName));
         AdvancedPowerUsageDetail.startBatteryDetailPage(
                 mActivity, mFragment, diffEntry, powerPref.getPercentage(), mSlotTimestamp);
         return true;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
index 1b2d4cd..edba7c4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProvider.java
@@ -21,7 +21,6 @@
 import android.content.UriMatcher;
 import android.database.Cursor;
 import android.net.Uri;
-import android.os.AsyncTask;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -36,12 +35,14 @@
 import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotDao;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
 
 import java.time.Clock;
 import java.time.Duration;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /** {@link ContentProvider} class to fetch battery usage data. */
 public class BatteryUsageContentProvider extends ContentProvider {
@@ -55,7 +56,12 @@
     private static final int APP_USAGE_LATEST_TIMESTAMP_CODE = 2;
     private static final int APP_USAGE_EVENT_CODE = 3;
     private static final int BATTERY_EVENT_CODE = 4;
+    private static final int LAST_FULL_CHARGE_TIMESTAMP_CODE = 5;
+    private static final int BATTERY_STATE_LATEST_TIMESTAMP_CODE = 6;
+    private static final int BATTERY_USAGE_SLOT_CODE = 7;
 
+    private static final List<Integer> ALL_BATTERY_EVENT_TYPES =
+            Arrays.stream(BatteryEventType.values()).map(type -> type.getNumber()).toList();
     private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
 
     static {
@@ -75,12 +81,25 @@
                 DatabaseUtils.AUTHORITY,
                 /*path=*/ DatabaseUtils.BATTERY_EVENT_TABLE,
                 /*code=*/ BATTERY_EVENT_CODE);
+        sUriMatcher.addURI(
+                DatabaseUtils.AUTHORITY,
+                /*path=*/ DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH,
+                /*code=*/ LAST_FULL_CHARGE_TIMESTAMP_CODE);
+        sUriMatcher.addURI(
+                DatabaseUtils.AUTHORITY,
+                /*path=*/ DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH,
+                /*code=*/ BATTERY_STATE_LATEST_TIMESTAMP_CODE);
+        sUriMatcher.addURI(
+                DatabaseUtils.AUTHORITY,
+                /*path=*/ DatabaseUtils.BATTERY_USAGE_SLOT_TABLE,
+                /*code=*/ BATTERY_USAGE_SLOT_CODE);
     }
 
     private Clock mClock;
     private BatteryStateDao mBatteryStateDao;
     private AppUsageEventDao mAppUsageEventDao;
     private BatteryEventDao mBatteryEventDao;
+    private BatteryUsageSlotDao mBatteryUsageSlotDao;
 
     @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
     public void setClock(Clock clock) {
@@ -94,9 +113,11 @@
             return false;
         }
         mClock = Clock.systemUTC();
-        mBatteryStateDao = BatteryStateDatabase.getInstance(getContext()).batteryStateDao();
-        mAppUsageEventDao = BatteryStateDatabase.getInstance(getContext()).appUsageEventDao();
-        mBatteryEventDao = BatteryStateDatabase.getInstance(getContext()).batteryEventDao();
+        final BatteryStateDatabase database = BatteryStateDatabase.getInstance(getContext());
+        mBatteryStateDao = database.batteryStateDao();
+        mAppUsageEventDao = database.appUsageEventDao();
+        mBatteryEventDao = database.batteryEventDao();
+        mBatteryUsageSlotDao = database.batteryUsageSlotDao();
         Log.w(TAG, "create content provider from " + getCallingPackage());
         return true;
     }
@@ -118,6 +139,12 @@
                 return getAppUsageLatestTimestamp(uri);
             case BATTERY_EVENT_CODE:
                 return getBatteryEvents(uri);
+            case LAST_FULL_CHARGE_TIMESTAMP_CODE:
+                return getLastFullChargeTimestamp(uri);
+            case BATTERY_STATE_LATEST_TIMESTAMP_CODE:
+                return getBatteryStateLatestTimestamp(uri);
+            case BATTERY_USAGE_SLOT_CODE:
+                return getBatteryUsageSlots(uri);
             default:
                 throw new IllegalArgumentException("unknown URI: " + uri);
         }
@@ -132,34 +159,31 @@
     @Nullable
     @Override
     public Uri insert(@NonNull Uri uri, @Nullable ContentValues contentValues) {
-        switch (sUriMatcher.match(uri)) {
-            case BATTERY_STATE_CODE:
-                try {
+        try {
+            switch (sUriMatcher.match(uri)) {
+                case BATTERY_STATE_CODE:
                     mBatteryStateDao.insert(BatteryState.create(contentValues));
-                    return uri;
-                } catch (RuntimeException e) {
-                    Log.e(TAG, "insert() from:" + uri + " error:" + e);
-                    return null;
-                }
-            case APP_USAGE_EVENT_CODE:
-                try {
+                    break;
+                case APP_USAGE_EVENT_CODE:
                     mAppUsageEventDao.insert(AppUsageEventEntity.create(contentValues));
-                    return uri;
-                } catch (RuntimeException e) {
-                    Log.e(TAG, "insert() from:" + uri + " error:" + e);
-                    return null;
-                }
-            case BATTERY_EVENT_CODE:
-                try {
+                    break;
+                case BATTERY_EVENT_CODE:
                     mBatteryEventDao.insert(BatteryEventEntity.create(contentValues));
-                    return uri;
-                } catch (RuntimeException e) {
-                    Log.e(TAG, "insert() from:" + uri + " error:" + e);
-                    return null;
-                }
-            default:
-                throw new IllegalArgumentException("unknown URI: " + uri);
+                    break;
+                case BATTERY_USAGE_SLOT_CODE:
+                    mBatteryUsageSlotDao.insert(BatteryUsageSlotEntity.create(contentValues));
+                    break;
+                default:
+                    throw new IllegalArgumentException("unknown URI: " + uri);
+            }
+        } catch (RuntimeException e) {
+            if (e instanceof  IllegalArgumentException) {
+                throw e;
+            }
+            Log.e(TAG, "insert() from:" + uri + " error:", e);
+            return null;
         }
+        return uri;
     }
 
     @Override
@@ -176,21 +200,44 @@
         throw new UnsupportedOperationException("unsupported!");
     }
 
-    private Cursor getBatteryStates(Uri uri) {
-        final long queryTimestamp = getQueryTimestamp(uri);
-        return getBatteryStates(uri, queryTimestamp);
-    }
-
-    private Cursor getBatteryStates(Uri uri, long firstTimestamp) {
+    private Cursor getLastFullChargeTimestamp(Uri uri) {
         final long timestamp = mClock.millis();
         Cursor cursor = null;
         try {
-            cursor = mBatteryStateDao.getCursorSinceLastFullCharge(firstTimestamp);
+            cursor = mBatteryEventDao.getLastFullChargeTimestamp();
         } catch (RuntimeException e) {
-            Log.e(TAG, "query() from:" + uri + " error:" + e);
+            Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        AsyncTask.execute(() -> BootBroadcastReceiver.invokeJobRecheck(getContext()));
-        Log.d(TAG, "query battery states in " + (mClock.millis() - timestamp) + "/ms");
+        Log.d(TAG, String.format("getLastFullChargeTimestamp() in %d/ms",
+                mClock.millis() - timestamp));
+        return cursor;
+    }
+
+    private Cursor getBatteryStateLatestTimestamp(Uri uri) {
+        final long queryTimestamp = getQueryTimestamp(uri);
+        final long timestamp = mClock.millis();
+        Cursor cursor = null;
+        try {
+            cursor = mBatteryStateDao.getLatestTimestampBefore(queryTimestamp);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "query() from:" + uri + " error:", e);
+        }
+        Log.d(TAG, String.format("getBatteryStateLatestTimestamp() no later than %d in %d/ms",
+                queryTimestamp, mClock.millis() - timestamp));
+        return cursor;
+    }
+
+    private Cursor getBatteryStates(Uri uri) {
+        final long queryTimestamp = getQueryTimestamp(uri);
+        final long timestamp = mClock.millis();
+        Cursor cursor = null;
+        try {
+            cursor = mBatteryStateDao.getBatteryStatesAfter(queryTimestamp);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "query() from:" + uri + " error:", e);
+        }
+        Log.d(TAG, String.format("getBatteryStates() after %d in %d/ms",
+                queryTimestamp, mClock.millis() - timestamp));
         return cursor;
     }
 
@@ -205,9 +252,9 @@
         try {
             cursor = mAppUsageEventDao.getAllForUsersAfter(queryUserIds, queryTimestamp);
         } catch (RuntimeException e) {
-            Log.e(TAG, "query() from:" + uri + " error:" + e);
+            Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.w(TAG, "query app usage events in " + (mClock.millis() - timestamp) + "/ms");
+        Log.w(TAG, "getAppUsageEvents() in " + (mClock.millis() - timestamp) + "/ms");
         return cursor;
     }
 
@@ -221,42 +268,78 @@
         try {
             cursor = mAppUsageEventDao.getLatestTimestampOfUser(queryUserId);
         } catch (RuntimeException e) {
-            Log.e(TAG, "query() from:" + uri + " error:" + e);
+            Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.d(TAG, String.format("query app usage latest timestamp %d for user %d in %d/ms",
-                timestamp, queryUserId, (mClock.millis() - timestamp)));
+        Log.d(TAG, String.format("getAppUsageLatestTimestamp() for user %d in %d/ms",
+                queryUserId, (mClock.millis() - timestamp)));
         return cursor;
     }
 
     private Cursor getBatteryEvents(Uri uri) {
+        List<Integer> queryBatteryEventTypes = getQueryBatteryEventTypes(uri);
+        if (queryBatteryEventTypes == null || queryBatteryEventTypes.isEmpty()) {
+            queryBatteryEventTypes = ALL_BATTERY_EVENT_TYPES;
+        }
         final long queryTimestamp = getQueryTimestamp(uri);
         final long timestamp = mClock.millis();
         Cursor cursor = null;
         try {
-            cursor = mBatteryEventDao.getAllAfter(queryTimestamp);
+            cursor = mBatteryEventDao.getAllAfter(queryTimestamp, queryBatteryEventTypes);
         } catch (RuntimeException e) {
-            Log.e(TAG, "query() from:" + uri + " error:" + e);
+            Log.e(TAG, "query() from:" + uri + " error:", e);
         }
-        Log.w(TAG, "query app usage events in " + (mClock.millis() - timestamp) + "/ms");
+        Log.w(TAG, "getBatteryEvents() in " + (mClock.millis() - timestamp) + "/ms");
         return cursor;
     }
 
+    private Cursor getBatteryUsageSlots(Uri uri) {
+        final long queryTimestamp = getQueryTimestamp(uri);
+        final long timestamp = mClock.millis();
+        Cursor cursor = null;
+        try {
+            cursor = mBatteryUsageSlotDao.getAllAfter(queryTimestamp);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "query() from:" + uri + " error:", e);
+        }
+        Log.w(TAG, "getBatteryUsageSlots() in " + (mClock.millis() - timestamp) + "/ms");
+        return cursor;
+    }
+
+    private List<Integer> getQueryBatteryEventTypes(Uri uri) {
+        Log.d(TAG, "getQueryBatteryEventTypes from uri: " + uri);
+        final String batteryEventTypesParameter =
+                uri.getQueryParameter(DatabaseUtils.QUERY_BATTERY_EVENT_TYPE);
+        if (TextUtils.isEmpty(batteryEventTypesParameter)) {
+            return null;
+        }
+        try {
+            List<Integer> batteryEventTypes = new ArrayList<>();
+            for (String typeString : batteryEventTypesParameter.split(",")) {
+                batteryEventTypes.add(Integer.parseInt(typeString.trim()));
+            }
+            return batteryEventTypes;
+        } catch (NumberFormatException e) {
+            Log.e(TAG, "invalid query value: " + batteryEventTypesParameter, e);
+            return null;
+        }
+    }
+
     // If URI contains query parameter QUERY_KEY_USERID, use the value directly.
     // Otherwise, return null.
     private List<Long> getQueryUserIds(Uri uri) {
         Log.d(TAG, "getQueryUserIds from uri: " + uri);
-        final String value = uri.getQueryParameter(DatabaseUtils.QUERY_KEY_USERID);
-        if (TextUtils.isEmpty(value)) {
-            Log.w(TAG, "empty query value");
+        final String userIdsParameter = uri.getQueryParameter(DatabaseUtils.QUERY_KEY_USERID);
+        if (TextUtils.isEmpty(userIdsParameter)) {
             return null;
         }
         try {
-            return Arrays.asList(value.split(","))
-                    .stream()
-                    .map(s -> Long.parseLong(s.trim()))
-                    .collect(Collectors.toList());
+            List<Long> userIds = new ArrayList<>();
+            for (String idString : userIdsParameter.split(",")) {
+                userIds.add(Long.parseLong(idString.trim()));
+            }
+            return userIds;
         } catch (NumberFormatException e) {
-            Log.e(TAG, "invalid query value: " + value, e);
+            Log.e(TAG, "invalid query value: " + userIdsParameter, e);
             return null;
         }
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index ae86095..48a39f4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -16,9 +16,12 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import android.app.usage.UsageEvents;
 import android.content.Context;
 import android.os.AsyncTask;
 import android.os.BatteryUsageStats;
+import android.os.Handler;
+import android.os.Looper;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -27,6 +30,7 @@
 import com.android.settings.fuelgauge.batteryusage.bugreport.BatteryUsageLogUtils;
 
 import java.util.List;
+import java.util.Map;
 import java.util.function.Supplier;
 
 /** Load battery usage data in the background. */
@@ -36,6 +40,10 @@
     // For testing only.
     @VisibleForTesting
     static Supplier<List<BatteryEntry>> sFakeBatteryEntryListSupplier;
+    @VisibleForTesting
+    static Supplier<Map<Long, UsageEvents>> sFakeAppUsageEventsSupplier;
+    @VisibleForTesting
+    static Supplier<List<AppUsageEvent>> sFakeUsageEventsListSupplier;
 
     private BatteryUsageDataLoader() {
     }
@@ -48,9 +56,9 @@
     }
 
     @VisibleForTesting
-    static void loadUsageData(final Context context, final boolean isFullChargeStart) {
+    static void loadBatteryStatsData(final Context context, final boolean isFullChargeStart) {
         BatteryUsageLogUtils.writeLog(context, Action.FETCH_USAGE_DATA, "");
-        final long start = System.currentTimeMillis();
+        final long currentTime = System.currentTimeMillis();
         final BatteryUsageStats batteryUsageStats = DataProcessor.getBatteryUsageStats(context);
         final List<BatteryEntry> batteryEntryList =
                 sFakeBatteryEntryListSupplier != null ? sFakeBatteryEntryListSupplier.get()
@@ -59,25 +67,81 @@
         if (batteryEntryList == null || batteryEntryList.isEmpty()) {
             Log.w(TAG, "getBatteryEntryList() returns null or empty content");
         }
-        final long elapsedTime = System.currentTimeMillis() - start;
+        final long elapsedTime = System.currentTimeMillis() - currentTime;
         Log.d(TAG, String.format("getBatteryUsageStats() in %d/ms", elapsedTime));
         if (isFullChargeStart) {
             DatabaseUtils.recordDateTime(
                     context, DatabaseUtils.KEY_LAST_LOAD_FULL_CHARGE_TIME);
+            DatabaseUtils.sendBatteryEventData(context, ConvertUtils.convertToBatteryEvent(
+                    currentTime, BatteryEventType.FULL_CHARGED, 100));
         }
 
         // Uploads the BatteryEntry data into database.
         DatabaseUtils.sendBatteryEntryData(
-                context, batteryEntryList, batteryUsageStats, isFullChargeStart);
+                context, currentTime, batteryEntryList, batteryUsageStats, isFullChargeStart);
         DataProcessor.closeBatteryUsageStats(batteryUsageStats);
     }
 
+    @VisibleForTesting
+    static void loadAppUsageData(final Context context) {
+        final long start = System.currentTimeMillis();
+        final Map<Long, UsageEvents> appUsageEvents =
+                sFakeAppUsageEventsSupplier != null
+                        ? sFakeAppUsageEventsSupplier.get()
+                        : DataProcessor.getAppUsageEvents(context);
+        if (appUsageEvents == null) {
+            Log.w(TAG, "loadAppUsageData() returns null");
+            return;
+        }
+        final List<AppUsageEvent> appUsageEventList =
+                sFakeUsageEventsListSupplier != null
+                        ? sFakeUsageEventsListSupplier.get()
+                        : DataProcessor.generateAppUsageEventListFromUsageEvents(
+                                context, appUsageEvents);
+        if (appUsageEventList == null || appUsageEventList.isEmpty()) {
+            Log.w(TAG, "loadAppUsageData() returns null or empty content");
+            return;
+        }
+        final long elapsedTime = System.currentTimeMillis() - start;
+        Log.d(TAG, String.format("loadAppUsageData() size=%d in %d/ms", appUsageEventList.size(),
+                elapsedTime));
+        // Uploads the AppUsageEvent data into database.
+        DatabaseUtils.sendAppUsageEventData(context, appUsageEventList);
+    }
+
+    private static void preprocessBatteryUsageSlots(final Context context) {
+        final long start = System.currentTimeMillis();
+        final Handler handler = new Handler(Looper.getMainLooper());
+        final BatteryLevelData batteryLevelData = DataProcessManager.getBatteryLevelData(
+                context, handler, /*isFromPeriodJob=*/ true,
+                batteryDiffDataMap -> DatabaseUtils.sendBatteryUsageSlotData(context,
+                        ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap)));
+        if (batteryLevelData == null) {
+            Log.d(TAG, "preprocessBatteryUsageSlots() no new battery usage data.");
+            return;
+        }
+
+        DatabaseUtils.sendBatteryEventData(
+                context, ConvertUtils.convertToBatteryEventList(batteryLevelData));
+        Log.d(TAG, String.format(
+                "preprocessBatteryUsageSlots() batteryLevelData=%s in %d/ms",
+                batteryLevelData, System.currentTimeMillis() - start));
+    }
+
     private static void loadUsageDataSafely(
             final Context context, final boolean isFullChargeStart) {
         try {
-            loadUsageData(context, isFullChargeStart);
+            final long start = System.currentTimeMillis();
+            loadBatteryStatsData(context, isFullChargeStart);
+            if (!isFullChargeStart) {
+                // No app usage data or battery diff data at this time.
+                loadAppUsageData(context);
+                preprocessBatteryUsageSlots(context);
+            }
+            Log.d(TAG, String.format(
+                    "loadUsageDataSafely() in %d/ms", System.currentTimeMillis() - start));
         } catch (RuntimeException e) {
-            Log.e(TAG, "loadUsageData:" + e);
+            Log.e(TAG, "loadUsageData:", e);
         }
     }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
index 5fc4ad5..ec0d01a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ConvertUtils.java
@@ -33,15 +33,21 @@
 import android.util.Base64;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.fuelgauge.BatteryUtils;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
 import java.util.TimeZone;
 
 /** A utility class to convert data into another types. */
@@ -75,7 +81,22 @@
     private ConvertUtils() {
     }
 
-    /** Converts {@link BatteryEntry} to content values */
+    /** Whether {@code consumerType} is app consumer or not. */
+    public static boolean isUidConsumer(final int consumerType) {
+        return consumerType == CONSUMER_TYPE_UID_BATTERY;
+    }
+
+    /** Whether {@code consumerType} is user consumer or not. */
+    public static boolean isUserConsumer(final int consumerType) {
+        return consumerType == CONSUMER_TYPE_USER_BATTERY;
+    }
+
+    /** Whether {@code consumerType} is system consumer or not. */
+    public static boolean isSystemConsumer(final int consumerType) {
+        return consumerType == CONSUMER_TYPE_SYSTEM_BATTERY;
+    }
+
+    /** Converts {@link BatteryEntry} to {@link ContentValues} */
     public static ContentValues convertBatteryEntryToContentValues(
             final BatteryEntry entry,
             final BatteryUsageStats batteryUsageStats,
@@ -118,7 +139,7 @@
         return values;
     }
 
-    /** Converts {@link AppUsageEvent} to content values */
+    /** Converts {@link AppUsageEvent} to {@link ContentValues} */
     public static ContentValues convertAppUsageEventToContentValues(final AppUsageEvent event) {
         final ContentValues values = new ContentValues();
         values.put(AppUsageEventEntity.KEY_UID, event.getUid());
@@ -131,7 +152,7 @@
         return values;
     }
 
-    /** Converts {@link BatteryEvent} to content values */
+    /** Converts {@link BatteryEvent} to {@link ContentValues} */
     public static ContentValues convertBatteryEventToContentValues(final BatteryEvent event) {
         final ContentValues values = new ContentValues();
         values.put(BatteryEventEntity.KEY_TIMESTAMP, event.getTimestamp());
@@ -140,6 +161,16 @@
         return values;
     }
 
+    /** Converts {@link BatteryUsageSlot} to {@link ContentValues} */
+    public static ContentValues convertBatteryUsageSlotToContentValues(
+            final BatteryUsageSlot batteryUsageSlot) {
+        final ContentValues values = new ContentValues(2);
+        values.put(BatteryUsageSlotEntity.KEY_TIMESTAMP, batteryUsageSlot.getStartTimestamp());
+        values.put(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT,
+                Base64.encodeToString(batteryUsageSlot.toByteArray(), Base64.DEFAULT));
+        return values;
+    }
+
     /** Gets the encoded string from {@link BatteryInformation} instance. */
     public static String convertBatteryInformationToString(
             final BatteryInformation batteryInformation) {
@@ -183,7 +214,7 @@
                         /*isFullChargeStart=*/ false));
     }
 
-    /** Converts to {@link AppUsageEvent} from {@link Event} */
+    /** Converts from {@link Event} to {@link AppUsageEvent} */
     @Nullable
     public static AppUsageEvent convertToAppUsageEvent(
             Context context, IUsageStatsManager usageStatsManager, final Event event,
@@ -234,8 +265,8 @@
         return appUsageEventBuilder.build();
     }
 
-    /** Converts to {@link AppUsageEvent} from {@link Cursor} */
-    public static AppUsageEvent convertToAppUsageEventFromCursor(final Cursor cursor) {
+    /** Converts from {@link Cursor} to {@link AppUsageEvent} */
+    public static AppUsageEvent convertToAppUsageEvent(final Cursor cursor) {
         final AppUsageEvent.Builder eventBuilder = AppUsageEvent.newBuilder();
         eventBuilder.setTimestamp(getLongFromCursor(cursor, AppUsageEventEntity.KEY_TIMESTAMP));
         eventBuilder.setType(
@@ -253,7 +284,7 @@
         return eventBuilder.build();
     }
 
-    /** Converts to {@link BatteryEvent} from {@link BatteryEventType} */
+    /** Converts from {@link BatteryEventType} to {@link BatteryEvent} */
     public static BatteryEvent convertToBatteryEvent(
             long timestamp, BatteryEventType type, int batteryLevel) {
         final BatteryEvent.Builder eventBuilder = BatteryEvent.newBuilder();
@@ -263,8 +294,8 @@
         return eventBuilder.build();
     }
 
-    /** Converts to {@link BatteryEvent} from {@link Cursor} */
-    public static BatteryEvent convertToBatteryEventFromCursor(final Cursor cursor) {
+    /** Converts from {@link Cursor} to {@link BatteryEvent} */
+    public static BatteryEvent convertToBatteryEvent(final Cursor cursor) {
         final BatteryEvent.Builder eventBuilder = BatteryEvent.newBuilder();
         eventBuilder.setTimestamp(getLongFromCursor(cursor, BatteryEventEntity.KEY_TIMESTAMP));
         eventBuilder.setType(
@@ -276,6 +307,42 @@
         return eventBuilder.build();
     }
 
+    /** Converts from {@link BatteryLevelData} to {@link List<BatteryEvent>} */
+    public static List<BatteryEvent> convertToBatteryEventList(
+            final BatteryLevelData batteryLevelData) {
+        final List<BatteryEvent> batteryEventList = new ArrayList<>();
+        final List<BatteryLevelData.PeriodBatteryLevelData> levelDataList =
+                batteryLevelData.getHourlyBatteryLevelsPerDay();
+        for (BatteryLevelData.PeriodBatteryLevelData oneDayData : levelDataList) {
+            for (int hourIndex = 0; hourIndex < oneDayData.getLevels().size() - 1; hourIndex++) {
+                batteryEventList.add(convertToBatteryEvent(
+                        oneDayData.getTimestamps().get(hourIndex),
+                        BatteryEventType.EVEN_HOUR,
+                        oneDayData.getLevels().get(hourIndex)));
+            }
+        }
+        return batteryEventList;
+    }
+
+    /** Converts from {@link Cursor} to {@link BatteryUsageSlot} */
+    public static BatteryUsageSlot convertToBatteryUsageSlot(final Cursor cursor) {
+        final BatteryUsageSlot defaultInstance = BatteryUsageSlot.getDefaultInstance();
+        final int columnIndex =
+                cursor.getColumnIndex(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT);
+        return columnIndex < 0 ? defaultInstance : BatteryUtils.parseProtoFromString(
+                cursor.getString(columnIndex), defaultInstance);
+    }
+
+    /** Converts from {@link Map<Long, BatteryDiffData>} to {@link List<BatteryUsageSlot>} */
+    public static List<BatteryUsageSlot> convertToBatteryUsageSlotList(
+            final Map<Long, BatteryDiffData> batteryDiffDataMap) {
+        List<BatteryUsageSlot> batteryUsageSlotList = new ArrayList<>();
+        for (BatteryDiffData batteryDiffData : batteryDiffDataMap.values()) {
+            batteryUsageSlotList.add(convertToBatteryUsageSlot(batteryDiffData));
+        }
+        return batteryUsageSlotList;
+    }
+
     /** Converts UTC timestamp to local time string for logging only, so use the US locale for
      *  better readability in debugging. */
     public static String utcToLocalTimeForLogging(long timestamp) {
@@ -396,6 +463,100 @@
         }
     }
 
+    private static BatteryUsageDiff convertToBatteryUsageDiff(BatteryDiffEntry batteryDiffEntry) {
+        BatteryUsageDiff.Builder builder = BatteryUsageDiff.newBuilder()
+                .setUid(batteryDiffEntry.mUid)
+                .setUserId(batteryDiffEntry.mUserId)
+                .setIsHidden(batteryDiffEntry.mIsHidden)
+                .setComponentId(batteryDiffEntry.mComponentId)
+                .setConsumerType(batteryDiffEntry.mConsumerType)
+                .setConsumePower(batteryDiffEntry.mConsumePower)
+                .setForegroundUsageConsumePower(batteryDiffEntry.mForegroundUsageConsumePower)
+                .setBackgroundUsageConsumePower(batteryDiffEntry.mBackgroundUsageConsumePower)
+                .setForegroundUsageTime(batteryDiffEntry.mForegroundUsageTimeInMs)
+                .setBackgroundUsageTime(batteryDiffEntry.mBackgroundUsageTimeInMs)
+                .setScreenOnTime(batteryDiffEntry.mScreenOnTimeInMs);
+        if (batteryDiffEntry.mKey != null) {
+            builder.setKey(batteryDiffEntry.mKey);
+        }
+        if (batteryDiffEntry.mLegacyPackageName != null) {
+            builder.setPackageName(batteryDiffEntry.mLegacyPackageName);
+        }
+        if (batteryDiffEntry.mLegacyLabel != null) {
+            builder.setLabel(batteryDiffEntry.mLegacyLabel);
+        }
+        return builder.build();
+    }
+
+    private static BatteryUsageSlot convertToBatteryUsageSlot(
+            final BatteryDiffData batteryDiffData) {
+        if (batteryDiffData == null) {
+            return BatteryUsageSlot.getDefaultInstance();
+        }
+        final BatteryUsageSlot.Builder builder = BatteryUsageSlot.newBuilder()
+                .setStartTimestamp(batteryDiffData.getStartTimestamp())
+                .setEndTimestamp(batteryDiffData.getEndTimestamp())
+                .setStartBatteryLevel(batteryDiffData.getStartBatteryLevel())
+                .setEndBatteryLevel(batteryDiffData.getEndBatteryLevel())
+                .setScreenOnTime(batteryDiffData.getScreenOnTime());
+        for (BatteryDiffEntry batteryDiffEntry : batteryDiffData.getAppDiffEntryList()) {
+            builder.addAppUsage(convertToBatteryUsageDiff(batteryDiffEntry));
+        }
+        for (BatteryDiffEntry batteryDiffEntry : batteryDiffData.getSystemDiffEntryList()) {
+            builder.addSystemUsage(convertToBatteryUsageDiff(batteryDiffEntry));
+        }
+        return builder.build();
+    }
+
+    private static BatteryDiffEntry convertToBatteryDiffEntry(
+            Context context, final BatteryUsageDiff batteryUsageDiff) {
+        return new BatteryDiffEntry(
+                context,
+                batteryUsageDiff.getUid(),
+                batteryUsageDiff.getUserId(),
+                batteryUsageDiff.getKey(),
+                batteryUsageDiff.getIsHidden(),
+                batteryUsageDiff.getComponentId(),
+                batteryUsageDiff.getPackageName(),
+                batteryUsageDiff.getLabel(),
+                batteryUsageDiff.getConsumerType(),
+                batteryUsageDiff.getForegroundUsageTime(),
+                batteryUsageDiff.getBackgroundUsageTime(),
+                batteryUsageDiff.getScreenOnTime(),
+                batteryUsageDiff.getConsumePower(),
+                batteryUsageDiff.getForegroundUsageConsumePower(),
+                /*foregroundServiceUsageConsumePower=*/ 0,
+                batteryUsageDiff.getBackgroundUsageConsumePower(),
+                /*cachedUsageConsumePower=*/ 0);
+    }
+
+    static BatteryDiffData convertToBatteryDiffData(
+            Context context,
+            final BatteryUsageSlot batteryUsageSlot,
+            @NonNull final Set<String> systemAppsPackageNames,
+            @NonNull final Set<Integer> systemAppsUids) {
+        final List<BatteryDiffEntry> appDiffEntries = new ArrayList<>();
+        final List<BatteryDiffEntry> systemDiffEntries = new ArrayList<>();
+        for (BatteryUsageDiff batteryUsageDiff : batteryUsageSlot.getAppUsageList()) {
+            appDiffEntries.add(convertToBatteryDiffEntry(context, batteryUsageDiff));
+        }
+        for (BatteryUsageDiff batteryUsageDiff : batteryUsageSlot.getSystemUsageList()) {
+            systemDiffEntries.add(convertToBatteryDiffEntry(context, batteryUsageDiff));
+        }
+        return new BatteryDiffData(
+                context,
+                batteryUsageSlot.getStartTimestamp(),
+                batteryUsageSlot.getEndTimestamp(),
+                batteryUsageSlot.getStartBatteryLevel(),
+                batteryUsageSlot.getEndBatteryLevel(),
+                batteryUsageSlot.getScreenOnTime(),
+                appDiffEntries,
+                systemDiffEntries,
+                systemAppsPackageNames,
+                systemAppsUids,
+                /*isAccumulated=*/ false);
+    }
+
     private static BatteryInformation constructBatteryInformation(
             final BatteryEntry entry,
             final BatteryUsageStats batteryUsageStats,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
index 1c851fd..1a226fd 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
@@ -23,6 +23,7 @@
 import android.os.Looper;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.ArrayMap;
 import android.util.Log;
 
 import androidx.annotation.NonNull;
@@ -33,10 +34,10 @@
 
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Manages the async tasks to process battery and app usage data.
@@ -69,28 +70,37 @@
  */
 public class DataProcessManager {
     private static final String TAG = "DataProcessManager";
+    private static final List<BatteryEventType> POWER_CONNECTION_EVENTS =
+            List.of(BatteryEventType.POWER_CONNECTED, BatteryEventType.POWER_DISCONNECTED);
+    private static final List<BatteryEventType> BATTERY_LEVEL_RECORD_EVENTS =
+            List.of(BatteryEventType.FULL_CHARGED, BatteryEventType.EVEN_HOUR);
 
-    private final Handler mHandler;
-    private final DataProcessor.UsageMapAsyncResponse mCallbackFunction;
-    private final List<AppUsageEvent> mAppUsageEventList = new ArrayList<>();
-    private final List<BatteryEvent> mBatteryEventList = new ArrayList<>();
-
-    private Context mContext;
-    private UserManager mUserManager;
-    private List<BatteryLevelData.PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
-    private Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
+    // For testing only.
+    @VisibleForTesting
+    static Map<Long, Map<String, BatteryHistEntry>> sFakeBatteryHistoryMap;
 
     // Raw start timestamp with round to the nearest hour.
-    private long mRawStartTimestamp;
+    private final long mRawStartTimestamp;
+    private final long mLastFullChargeTimestamp;
+    private final Context mContext;
+    private final Handler mHandler;
+    private final UserManager mUserManager;
+    private final OnBatteryDiffDataMapLoadedListener mCallbackFunction;
+    private final List<AppUsageEvent> mAppUsageEventList = new ArrayList<>();
+    private final List<BatteryEvent> mBatteryEventList = new ArrayList<>();
+    private final List<BatteryUsageSlot> mBatteryUsageSlotList = new ArrayList<>();
+    private final List<BatteryLevelData.PeriodBatteryLevelData> mHourlyBatteryLevelsPerDay;
+    private final Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
 
     private boolean mIsCurrentBatteryHistoryLoaded = false;
     private boolean mIsCurrentAppUsageLoaded = false;
     private boolean mIsDatabaseAppUsageLoaded = false;
     private boolean mIsBatteryEventLoaded = false;
+    private boolean mIsBatteryUsageSlotLoaded = false;
     // Used to identify whether screen-on time data should be shown in the UI.
     private boolean mShowScreenOnTime = true;
-    // Used to identify whether battery level data should be shown in the UI.
-    private boolean mShowBatteryLevel = true;
+    private Set<String> mSystemAppsPackageNames = null;
+    private Set<Integer> mSystemAppsUids = null;
 
     /**
      * The indexed {@link AppUsagePeriod} list data for each corresponding time slot.
@@ -101,22 +111,33 @@
             mAppUsagePeriodMap;
 
     /**
+     *  A callback listener when all the data is processed.
+     *  This happens when all the async tasks complete and generate the final callback.
+     */
+    public interface OnBatteryDiffDataMapLoadedListener {
+        /** The callback function when all the data is processed. */
+        void onBatteryDiffDataMapLoaded(Map<Long, BatteryDiffData> batteryDiffDataMap);
+    }
+
+    /**
      * Constructor when there exists battery level data.
      */
     DataProcessManager(
             Context context,
             Handler handler,
             final long rawStartTimestamp,
-            @NonNull final DataProcessor.UsageMapAsyncResponse callbackFunction,
+            final long lastFullChargeTimestamp,
+            @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction,
             @NonNull final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
             @NonNull final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
         mContext = context.getApplicationContext();
         mHandler = handler;
         mUserManager = mContext.getSystemService(UserManager.class);
+        mRawStartTimestamp = rawStartTimestamp;
+        mLastFullChargeTimestamp = lastFullChargeTimestamp;
         mCallbackFunction = callbackFunction;
         mHourlyBatteryLevelsPerDay = hourlyBatteryLevelsPerDay;
         mBatteryHistoryMap = batteryHistoryMap;
-        mRawStartTimestamp = rawStartTimestamp;
     }
 
     /**
@@ -125,31 +146,49 @@
     DataProcessManager(
             Context context,
             Handler handler,
-            @NonNull final DataProcessor.UsageMapAsyncResponse callbackFunction) {
+            @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction) {
         mContext = context.getApplicationContext();
         mHandler = handler;
         mUserManager = mContext.getSystemService(UserManager.class);
         mCallbackFunction = callbackFunction;
+        mRawStartTimestamp = 0L;
+        mLastFullChargeTimestamp = 0L;
+        mHourlyBatteryLevelsPerDay = null;
+        mBatteryHistoryMap = null;
         // When there is no battery level data, don't show screen-on time and battery level chart on
         // the UI.
         mShowScreenOnTime = false;
-        mShowBatteryLevel = false;
     }
 
     /**
      * Starts the async tasks to load battery history data and app usage data.
      */
     public void start() {
+        start(/*isFromPeriodJob=*/ false);
+    }
+
+    /**
+     * Starts the async tasks to load battery history data and app usage data.
+     */
+    public void start(boolean isFromPeriodJob) {
         // If we have battery level data, load the battery history map and app usage simultaneously.
-        if (mShowBatteryLevel) {
-            // Loads the latest battery history data from the service.
-            loadCurrentBatteryHistoryMap();
+        if (mHourlyBatteryLevelsPerDay != null) {
+            if (isFromPeriodJob) {
+                mIsCurrentBatteryHistoryLoaded = true;
+                mIsCurrentAppUsageLoaded = true;
+                mIsBatteryUsageSlotLoaded = true;
+            } else {
+                // Loads the latest battery history data from the service.
+                loadCurrentBatteryHistoryMap();
+                // Loads the latest app usage list from the service.
+                loadCurrentAppUsageList();
+                // Loads existing battery usage slots from database.
+                loadBatteryUsageSlotList();
+            }
             // Loads app usage list from database.
             loadDatabaseAppUsageList();
-            // Loads the latest app usage list from the service.
-            loadCurrentAppUsageList();
             // Loads the battery event list from database.
-            loadBatteryEventList();
+            loadPowerConnectionBatteryEventList();
         } else {
             // If there is no battery level data, only load the battery history data from service
             // and show it as the app list directly.
@@ -193,11 +232,6 @@
         return mShowScreenOnTime;
     }
 
-    @VisibleForTesting
-    boolean getShowBatteryLevel() {
-        return mShowBatteryLevel;
-    }
-
     private void loadCurrentBatteryHistoryMap() {
         new AsyncTask<Void, Void, Map<String, BatteryHistEntry>>() {
             @Override
@@ -323,7 +357,7 @@
         }.execute();
     }
 
-    private void loadBatteryEventList() {
+    private void loadPowerConnectionBatteryEventList() {
         new AsyncTask<Void, Void, List<BatteryEvent>>() {
             @Override
             protected List<BatteryEvent> doInBackground(Void... voids) {
@@ -331,8 +365,10 @@
                 // Loads the battery event data from the database.
                 final List<BatteryEvent> batteryEventList =
                         DatabaseUtils.getBatteryEvents(
-                                mContext, Calendar.getInstance(), mRawStartTimestamp);
-                Log.d(TAG, String.format("execute loadBatteryEventList size=%d in %d/ms",
+                                mContext, Calendar.getInstance(), mRawStartTimestamp,
+                                POWER_CONNECTION_EVENTS);
+                Log.d(TAG, String.format(
+                        "execute loadPowerConnectionBatteryEventList size=%d in %d/ms",
                         batteryEventList.size(), (System.currentTimeMillis() - startTime)));
                 return batteryEventList;
             }
@@ -352,29 +388,55 @@
         }.execute();
     }
 
-    private void loadAndApplyBatteryMapFromServiceOnly() {
-        new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
+    private void loadBatteryUsageSlotList() {
+        new AsyncTask<Void, Void, List<BatteryUsageSlot>>() {
             @Override
-            protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
+            protected List<BatteryUsageSlot> doInBackground(Void... voids) {
                 final long startTime = System.currentTimeMillis();
-                final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
-                        DataProcessor.getBatteryUsageMapFromStatsService(mContext);
-                DataProcessor.loadLabelAndIcon(batteryUsageMap);
-                Log.d(TAG, String.format(
-                        "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
-                        batteryUsageMap.size(), (System.currentTimeMillis() - startTime)));
-                return batteryUsageMap;
+                // Loads the battery usage slot data from the database.
+                final List<BatteryUsageSlot> batteryUsageSlotList =
+                        DatabaseUtils.getBatteryUsageSlots(
+                                mContext, Calendar.getInstance(), mLastFullChargeTimestamp);
+                Log.d(TAG, String.format("execute loadBatteryUsageSlotList size=%d in %d/ms",
+                        batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+                return batteryUsageSlotList;
             }
 
             @Override
-            protected void onPostExecute(
-                    final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
-                // Set the unused variables to null.
-                mContext = null;
+            protected void onPostExecute(final List<BatteryUsageSlot> batteryUsageSlotList) {
+                if (batteryUsageSlotList == null || batteryUsageSlotList.isEmpty()) {
+                    Log.d(TAG, "batteryUsageSlotList is null or empty");
+                } else {
+                    mBatteryUsageSlotList.clear();
+                    mBatteryUsageSlotList.addAll(batteryUsageSlotList);
+                }
+                mIsBatteryUsageSlotLoaded = true;
+                tryToGenerateFinalDataAndApplyCallback();
+            }
+        }.execute();
+    }
+
+    private void loadAndApplyBatteryMapFromServiceOnly() {
+        new AsyncTask<Void, Void, Map<Long, BatteryDiffData>>() {
+            @Override
+            protected Map<Long, BatteryDiffData> doInBackground(Void... voids) {
+                final long startTime = System.currentTimeMillis();
+                final Map<Long, BatteryDiffData> batteryDiffDataMap =
+                        DataProcessor.getBatteryDiffDataMapFromStatsService(
+                                mContext, mRawStartTimestamp, getSystemAppsPackageNames(),
+                                getSystemAppsUids());
+                Log.d(TAG, String.format(
+                        "execute loadAndApplyBatteryMapFromServiceOnly size=%d in %d/ms",
+                        batteryDiffDataMap.size(), (System.currentTimeMillis() - startTime)));
+                return batteryDiffDataMap;
+            }
+
+            @Override
+            protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
                 // Post results back to main thread to refresh UI.
                 if (mHandler != null && mCallbackFunction != null) {
                     mHandler.post(() -> {
-                        mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
+                        mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
                     });
                 }
             }
@@ -406,38 +468,41 @@
         if (!mIsCurrentBatteryHistoryLoaded
                 || !mIsCurrentAppUsageLoaded
                 || !mIsDatabaseAppUsageLoaded
-                || !mIsBatteryEventLoaded) {
+                || !mIsBatteryEventLoaded
+                || !mIsBatteryUsageSlotLoaded) {
             return;
         }
         generateFinalDataAndApplyCallback();
     }
 
-    private void generateFinalDataAndApplyCallback() {
-        new AsyncTask<Void, Void, Map<Integer, Map<Integer, BatteryDiffData>>>() {
+    private synchronized void generateFinalDataAndApplyCallback() {
+        new AsyncTask<Void, Void, Map<Long, BatteryDiffData>>() {
             @Override
-            protected Map<Integer, Map<Integer, BatteryDiffData>> doInBackground(Void... voids) {
+            protected Map<Long, BatteryDiffData> doInBackground(Void... voids) {
                 final long startTime = System.currentTimeMillis();
-                final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
-                        DataProcessor.getBatteryUsageMap(
-                                mContext, mHourlyBatteryLevelsPerDay, mBatteryHistoryMap,
-                                mAppUsagePeriodMap);
-                DataProcessor.loadLabelAndIcon(batteryUsageMap);
-                Log.d(TAG, String.format("execute generateFinalDataAndApplyCallback in %d/ms",
-                        (System.currentTimeMillis() - startTime)));
-                return batteryUsageMap;
+                final Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>();
+                for (BatteryUsageSlot batteryUsageSlot : mBatteryUsageSlotList) {
+                    batteryDiffDataMap.put(batteryUsageSlot.getStartTimestamp(),
+                            ConvertUtils.convertToBatteryDiffData(
+                                    mContext, batteryUsageSlot, getSystemAppsPackageNames(),
+                                    getSystemAppsUids()));
+                }
+                batteryDiffDataMap.putAll(DataProcessor.getBatteryDiffDataMap(mContext,
+                        mHourlyBatteryLevelsPerDay, mBatteryHistoryMap, mAppUsagePeriodMap,
+                        getSystemAppsPackageNames(), getSystemAppsUids()));
+
+                Log.d(TAG, String.format(
+                        "execute generateFinalDataAndApplyCallback size=%d in %d/ms",
+                        batteryDiffDataMap.size(), System.currentTimeMillis() - startTime));
+                return batteryDiffDataMap;
             }
 
             @Override
-            protected void onPostExecute(
-                    final Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap) {
-                // Set the unused variables to null.
-                mContext = null;
-                mHourlyBatteryLevelsPerDay = null;
-                mBatteryHistoryMap = null;
+            protected void onPostExecute(final Map<Long, BatteryDiffData> batteryDiffDataMap) {
                 // Post results back to main thread to refresh UI.
                 if (mHandler != null && mCallbackFunction != null) {
                     mHandler.post(() -> {
-                        mCallbackFunction.onBatteryCallbackDataLoaded(batteryUsageMap);
+                        mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
                     });
                 }
             }
@@ -445,7 +510,7 @@
     }
 
     // Whether we should load app usage data from service or database.
-    private boolean shouldLoadAppUsageData() {
+    private synchronized boolean shouldLoadAppUsageData() {
         if (!mShowScreenOnTime) {
             return false;
         }
@@ -480,6 +545,20 @@
         return userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
     }
 
+    private synchronized Set<String> getSystemAppsPackageNames() {
+        if (mSystemAppsPackageNames == null) {
+            mSystemAppsPackageNames = DataProcessor.getSystemAppsPackageNames(mContext);
+        }
+        return mSystemAppsPackageNames;
+    }
+
+    private synchronized Set<Integer> getSystemAppsUids() {
+        if (mSystemAppsUids == null) {
+            mSystemAppsUids = DataProcessor.getSystemAppsUids(mContext);
+        }
+        return mSystemAppsUids;
+    }
+
     /**
      * @return Returns battery level data and start async task to compute battery diff usage data
      * and load app labels + icons.
@@ -489,14 +568,55 @@
     public static BatteryLevelData getBatteryLevelData(
             Context context,
             @Nullable Handler handler,
-            @Nullable final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
-            final DataProcessor.UsageMapAsyncResponse asyncResponseDelegate) {
-        if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
-            Log.d(TAG, "batteryHistoryMap is null in getBatteryLevelData()");
-            new DataProcessManager(context, handler, asyncResponseDelegate).start();
+            final boolean isFromPeriodJob,
+            final OnBatteryDiffDataMapLoadedListener onBatteryUsageMapLoadedListener) {
+        final long start = System.currentTimeMillis();
+        final long lastFullChargeTime = DatabaseUtils.getLastFullChargeTime(context);
+        final List<BatteryEvent> batteryLevelRecordEvents =
+                DatabaseUtils.getBatteryEvents(
+                        context, Calendar.getInstance(), lastFullChargeTime,
+                        BATTERY_LEVEL_RECORD_EVENTS);
+        final long startTimestamp = batteryLevelRecordEvents.isEmpty()
+                ? lastFullChargeTime : batteryLevelRecordEvents.get(0).getTimestamp();
+        final BatteryLevelData batteryLevelData = getPeriodBatteryLevelData(context, handler,
+                startTimestamp, lastFullChargeTime, isFromPeriodJob,
+                onBatteryUsageMapLoadedListener);
+        Log.d(TAG, String.format("execute getBatteryLevelData in %d/ms,"
+                        + " batteryLevelRecordEvents.size=%d",
+                (System.currentTimeMillis() - start), batteryLevelRecordEvents.size()));
+
+        return isFromPeriodJob
+                ? batteryLevelData
+                : BatteryLevelData.combine(batteryLevelData, batteryLevelRecordEvents);
+    }
+
+    private static BatteryLevelData getPeriodBatteryLevelData(
+            Context context,
+            @Nullable Handler handler,
+            final long startTimestamp,
+            final long lastFullChargeTime,
+            final boolean isFromPeriodJob,
+            final OnBatteryDiffDataMapLoadedListener onBatteryDiffDataMapLoadedListener) {
+        final long currentTime = System.currentTimeMillis();
+        Log.d(TAG, String.format("getPeriodBatteryLevelData() startTimestamp=%s",
+                ConvertUtils.utcToLocalTimeForLogging(startTimestamp)));
+        if (isFromPeriodJob
+                && startTimestamp >= TimestampUtils.getLastEvenHourTimestamp(currentTime)) {
+            // Nothing needs to be loaded for period job.
             return null;
         }
+
         handler = handler != null ? handler : new Handler(Looper.getMainLooper());
+        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
+                sFakeBatteryHistoryMap != null ? sFakeBatteryHistoryMap
+                        : DatabaseUtils.getHistoryMapSinceLatestRecordBeforeQueryTimestamp(context,
+                                Calendar.getInstance(), startTimestamp, lastFullChargeTime);
+        if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
+            Log.d(TAG, "batteryHistoryMap is null in getPeriodBatteryLevelData()");
+            new DataProcessManager(context, handler, onBatteryDiffDataMapLoadedListener).start();
+            return null;
+        }
+
         // Process raw history map data into hourly timestamps.
         final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap =
                 DataProcessor.getHistoryMapWithExpectedTimestamps(context, batteryHistoryMap);
@@ -505,20 +625,20 @@
                 DataProcessor.getLevelDataThroughProcessedHistoryMap(
                         context, processedBatteryHistoryMap);
         if (batteryLevelData == null) {
-            new DataProcessManager(context, handler, asyncResponseDelegate).start();
+            new DataProcessManager(context, handler, onBatteryDiffDataMapLoadedListener).start();
             Log.d(TAG, "getBatteryLevelData() returns null");
             return null;
         }
 
-        final long rawStartTimestamp = Collections.min(batteryHistoryMap.keySet());
         // Start the async task to compute diff usage data and load labels and icons.
         new DataProcessManager(
                 context,
                 handler,
-                rawStartTimestamp,
-                asyncResponseDelegate,
+                startTimestamp,
+                lastFullChargeTime,
+                onBatteryDiffDataMapLoadedListener,
                 batteryLevelData.getHourlyBatteryLevelsPerDay(),
-                processedBatteryHistoryMap).start();
+                processedBatteryHistoryMap).start(isFromPeriodJob);
 
         return batteryLevelData;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index 620ae31..925cb3a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -17,6 +17,9 @@
 package com.android.settings.fuelgauge.batteryusage;
 
 import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.getEffectivePackageName;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isSystemConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUidConsumer;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
 
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageEvents;
@@ -44,6 +47,7 @@
 import android.util.Log;
 import android.util.SparseArray;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.internal.annotations.VisibleForTesting;
@@ -54,6 +58,8 @@
 import com.android.settingslib.fuelgauge.BatteryStatus;
 import com.android.settingslib.spaprivileged.model.app.AppListRepositoryUtil;
 
+import com.google.common.base.Preconditions;
+
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -76,9 +82,7 @@
     private static final int POWER_COMPONENT_WAKELOCK = 12;
     private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10;
     private static final int MIN_DAILY_DATA_SIZE = 2;
-    private static final int MIN_TIMESTAMP_DATA_SIZE = 2;
     private static final int MAX_DIFF_SECONDS_OF_UPPER_TIMESTAMP = 5;
-    private static final long MIN_TIME_SLOT = DateUtils.HOUR_IN_MILLIS * 2;
     private static final String MEDIASERVER_PACKAGE_NAME = "mediaserver";
     private static final String ANDROID_CORE_APPS_SHARED_USER_ID = "android.uid.shared";
     private static final Map<String, BatteryHistEntry> EMPTY_BATTERY_MAP = new ArrayMap<>();
@@ -157,11 +161,14 @@
         }
         return batteryLevelData == null
                 ? null
-                : getBatteryUsageMap(
-                        context,
-                        batteryLevelData.getHourlyBatteryLevelsPerDay(),
-                        processedBatteryHistoryMap,
-                        /*appUsagePeriodMap=*/ null);
+                : generateBatteryUsageMap(context,
+                        getBatteryDiffDataMap(context,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(),
+                                processedBatteryHistoryMap,
+                                /*appUsagePeriodMap=*/ null,
+                                getSystemAppsPackageNames(context),
+                                getSystemAppsUids(context)),
+                        batteryLevelData);
     }
 
     /**
@@ -261,7 +268,7 @@
      * </ul>
      *
      * <p>The structure is consistent with the battery usage map returned by
-     * {@code getBatteryUsageMap}.</p>
+     * {@code generateBatteryUsageMap}.</p>
      *
      * <p>{@code Long} stands for the userId.</p>
      * <p>{@code String} stands for the packageName.</p>
@@ -403,8 +410,8 @@
 
     /**
      * @return Returns the processed history map which has interpolated to every hour data.
-     * The start and end timestamp must be the even hours.
-     * The keys of processed history map should contain every hour between the start and end
+     * The start timestamp is the first timestamp in batteryHistoryMap. The end timestamp is current
+     * time. The keys of processed history map should contain every hour between the start and end
      * timestamp. If there's no data in some key, the value will be the empty map.
      */
     static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapWithExpectedTimestamps(
@@ -431,28 +438,23 @@
     static BatteryLevelData getLevelDataThroughProcessedHistoryMap(
             Context context,
             final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap) {
-        final List<Long> timestampList = new ArrayList<>(processedBatteryHistoryMap.keySet());
-        Collections.sort(timestampList);
-        final List<Long> dailyTimestamps = getDailyTimestamps(timestampList);
         // There should be at least the start and end timestamps. Otherwise, return null to not show
         // data in usage chart.
-        if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
+        if (processedBatteryHistoryMap.size() < MIN_DAILY_DATA_SIZE) {
             return null;
         }
-
-        final List<List<Long>> hourlyTimestamps = getHourlyTimestamps(dailyTimestamps);
-        final BatteryLevelData.PeriodBatteryLevelData dailyLevelData =
-                getPeriodBatteryLevelData(context, processedBatteryHistoryMap, dailyTimestamps);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyLevelData =
-                getHourlyPeriodBatteryLevelData(
-                        context, processedBatteryHistoryMap, hourlyTimestamps);
-        return new BatteryLevelData(dailyLevelData, hourlyLevelData);
+        Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+        for (Long timestamp : processedBatteryHistoryMap.keySet()) {
+            batteryLevelMap.put(
+                    timestamp, getLevel(context, processedBatteryHistoryMap, timestamp));
+        }
+        return new BatteryLevelData(batteryLevelMap);
     }
 
     /**
-     * Computes expected timestamp slots. The start timestamp is the last full charge time.
-     * The end timestamp is current time. The middle timestamps are the sharp hour timestamps
-     * between the start and end timestamps.
+     * Computes expected timestamp slots. The start timestamp is the first timestamp in
+     * rawTimestampList. The end timestamp is current time. The middle timestamps are the sharp hour
+     * timestamps between the start and end timestamps.
      */
     @VisibleForTesting
     static List<Long> getTimestampSlots(final List<Long> rawTimestampList, final long currentTime) {
@@ -475,56 +477,6 @@
         return timestampSlots;
     }
 
-    /**
-     * Computes expected daily timestamp slots.
-     *
-     * The valid result should be composed of 3 parts:
-     * 1) start timestamp
-     * 2) every 00:00 timestamp (default timezone) between the start and end
-     * 3) end timestamp
-     * Otherwise, returns an empty list.
-     */
-    @VisibleForTesting
-    static List<Long> getDailyTimestamps(final List<Long> timestampList) {
-        final List<Long> dailyTimestampList = new ArrayList<>();
-        // If timestamp number is smaller than 2, the following computation is not necessary.
-        if (timestampList.size() < MIN_TIMESTAMP_DATA_SIZE) {
-            return dailyTimestampList;
-        }
-        final long startTime = timestampList.get(0);
-        final long endTime = timestampList.get(timestampList.size() - 1);
-        for (long timestamp = startTime; timestamp < endTime;
-                timestamp = TimestampUtils.getNextDayTimestamp(timestamp)) {
-            dailyTimestampList.add(timestamp);
-        }
-        dailyTimestampList.add(endTime);
-        return dailyTimestampList;
-    }
-
-    @VisibleForTesting
-    static List<List<Long>> getHourlyTimestamps(final List<Long> dailyTimestamps) {
-        final List<List<Long>> hourlyTimestamps = new ArrayList<>();
-        if (dailyTimestamps.size() < MIN_DAILY_DATA_SIZE) {
-            return hourlyTimestamps;
-        }
-
-        for (int dailyIndex = 0; dailyIndex < dailyTimestamps.size() - 1; dailyIndex++) {
-            final List<Long> hourlyTimestampsPerDay = new ArrayList<>();
-            final long startTime = dailyTimestamps.get(dailyIndex);
-            final long endTime = dailyTimestamps.get(dailyIndex + 1);
-
-            hourlyTimestampsPerDay.add(startTime);
-            for (long timestamp = TimestampUtils.getNextEvenHourTimestamp(startTime);
-                    timestamp < endTime; timestamp += MIN_TIME_SLOT) {
-                hourlyTimestampsPerDay.add(timestamp);
-            }
-            hourlyTimestampsPerDay.add(endTime);
-
-            hourlyTimestamps.add(hourlyTimestampsPerDay);
-        }
-        return hourlyTimestamps;
-    }
-
     @VisibleForTesting
     static boolean isFromFullCharge(@Nullable final Map<String, BatteryHistEntry> entryList) {
         if (entryList == null) {
@@ -560,34 +512,102 @@
         return results;
     }
 
+    static Map<Long, BatteryDiffData> getBatteryDiffDataMap(
+            Context context,
+            final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
+            final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
+            final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
+                    appUsagePeriodMap,
+            final @NonNull Set<String> systemAppsPackageNames,
+            final @NonNull Set<Integer> systemAppsUids) {
+        final Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>();
+        final int currentUserId = context.getUserId();
+        final UserHandle userHandle =
+                Utils.getManagedProfile(context.getSystemService(UserManager.class));
+        final int workProfileUserId =
+                userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
+        // Each time slot usage diff data =
+        //     sum(Math.abs(timestamp[i+1] data - timestamp[i] data));
+        // since we want to aggregate every hour usage diff data into a single time slot.
+        for (int dailyIndex = 0; dailyIndex < hourlyBatteryLevelsPerDay.size(); dailyIndex++) {
+            if (hourlyBatteryLevelsPerDay.get(dailyIndex) == null) {
+                continue;
+            }
+            final List<Long> hourlyTimestamps =
+                    hourlyBatteryLevelsPerDay.get(dailyIndex).getTimestamps();
+            for (int hourlyIndex = 0; hourlyIndex < hourlyTimestamps.size() - 1; hourlyIndex++) {
+                final Long startTimestamp = hourlyTimestamps.get(hourlyIndex);
+                final Long endTimestamp = hourlyTimestamps.get(hourlyIndex + 1);
+                final int startBatteryLevel =
+                        hourlyBatteryLevelsPerDay.get(dailyIndex).getLevels().get(hourlyIndex);
+                final int endBatteryLevel =
+                        hourlyBatteryLevelsPerDay.get(dailyIndex).getLevels().get(hourlyIndex + 1);
+                final long slotDuration = endTimestamp - startTimestamp;
+                List<Map<String, BatteryHistEntry>> slotBatteryHistoryList = new ArrayList<>();
+                slotBatteryHistoryList.add(
+                        batteryHistoryMap.getOrDefault(startTimestamp, EMPTY_BATTERY_MAP));
+                for (Long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
+                        timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
+                    slotBatteryHistoryList.add(
+                            batteryHistoryMap.getOrDefault(timestamp, EMPTY_BATTERY_MAP));
+                }
+                slotBatteryHistoryList.add(
+                        batteryHistoryMap.getOrDefault(endTimestamp, EMPTY_BATTERY_MAP));
+
+                final BatteryDiffData hourlyBatteryDiffData =
+                        insertHourlyUsageDiffDataPerSlot(
+                                context,
+                                startTimestamp,
+                                endTimestamp,
+                                startBatteryLevel,
+                                endBatteryLevel,
+                                currentUserId,
+                                workProfileUserId,
+                                slotDuration,
+                                systemAppsPackageNames,
+                                systemAppsUids,
+                                appUsagePeriodMap == null
+                                        || appUsagePeriodMap.get(dailyIndex) == null
+                                        ? null
+                                        : appUsagePeriodMap.get(dailyIndex).get(hourlyIndex),
+                                slotBatteryHistoryList);
+                batteryDiffDataMap.put(startTimestamp, hourlyBatteryDiffData);
+            }
+        }
+        return batteryDiffDataMap;
+    }
+
     /**
      * @return Returns the indexed battery usage data for each corresponding time slot.
      *
      * <p>There could be 2 cases of the returned value:</p>
      * <ul>
-     * <li>null: empty or invalid data.</li>
-     * <li>non-null: must be a 2d map and composed by 3 parts:</li>
+     * <li> null: empty or invalid data.</li>
+     * <li> 1 part: if batteryLevelData is null.</li>
+     * <p>  [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
+     * <li> 3 parts: if batteryLevelData is not null.</li>
      * <p>  1 - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]</p>
      * <p>  2 - [0][SELECTED_INDEX_ALL] ~ [maxDailyIndex][SELECTED_INDEX_ALL]</p>
      * <p>  3 - [0][0] ~ [maxDailyIndex][maxHourlyIndex]</p>
      * </ul>
      */
-    @Nullable
-    static Map<Integer, Map<Integer, BatteryDiffData>> getBatteryUsageMap(
+    static Map<Integer, Map<Integer, BatteryDiffData>> generateBatteryUsageMap(
             final Context context,
-            final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
-            final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
-            final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
-                    appUsagePeriodMap) {
-        if (batteryHistoryMap.isEmpty()) {
-            return null;
-        }
+            final Map<Long, BatteryDiffData> batteryDiffDataMap,
+            final @Nullable BatteryLevelData batteryLevelData) {
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap = new ArrayMap<>();
-        final Set<String> systemAppsPackageNames = getSystemAppsPackageNames(context);
-        final Set<Integer> systemAppsUids = getSystemAppsUids(context);
+        if (batteryLevelData == null) {
+            Preconditions.checkArgument(batteryDiffDataMap.size() == 1);
+            BatteryDiffData batteryDiffData = batteryDiffDataMap.values().stream().toList().get(0);
+            final Map<Integer, BatteryDiffData> allUsageMap = new ArrayMap<>();
+            allUsageMap.put(SELECTED_INDEX_ALL, batteryDiffData);
+            resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
+            return resultMap;
+        }
+        List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
+                batteryLevelData.getHourlyBatteryLevelsPerDay();
         // Insert diff data from [0][0] to [maxDailyIndex][maxHourlyIndex].
-        insertHourlyUsageDiffData(context, systemAppsPackageNames, systemAppsUids,
-                hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap, resultMap);
+        insertHourlyUsageDiffData(hourlyBatteryLevelsPerDay, batteryDiffDataMap, resultMap);
         // Insert diff data from [0][SELECTED_INDEX_ALL] to [maxDailyIndex][SELECTED_INDEX_ALL].
         insertDailyUsageDiffData(context, hourlyBatteryLevelsPerDay, resultMap);
         // Insert diff data [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL].
@@ -602,7 +622,10 @@
     @Nullable
     static BatteryDiffData generateBatteryDiffData(
             final Context context,
-            final List<BatteryHistEntry> batteryHistEntryList) {
+            final long startTimestamp,
+            final List<BatteryHistEntry> batteryHistEntryList,
+            final @NonNull Set<String> systemAppsPackageNames,
+            final @NonNull Set<Integer> systemAppsUids) {
         if (batteryHistEntryList == null || batteryHistEntryList.isEmpty()) {
             Log.w(TAG, "batteryHistEntryList is null or empty in generateBatteryDiffData()");
             return null;
@@ -624,6 +647,14 @@
             } else {
                 final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
                         context,
+                        entry.mUid,
+                        entry.mUserId,
+                        entry.getKey(),
+                        entry.mIsHidden,
+                        entry.mDrainType,
+                        entry.mPackageName,
+                        entry.mAppLabel,
+                        entry.mConsumerType,
                         entry.mForegroundUsageTimeInMs,
                         entry.mBackgroundUsageTimeInMs,
                         /*screenOnTimeInMs=*/ 0,
@@ -631,8 +662,7 @@
                         entry.mForegroundUsageConsumePower,
                         entry.mForegroundServiceUsageConsumePower,
                         entry.mBackgroundUsageConsumePower,
-                        entry.mCachedUsageConsumePower,
-                        entry);
+                        entry.mCachedUsageConsumePower);
                 if (currentBatteryDiffEntry.isSystemEntry()) {
                     systemEntries.add(currentBatteryDiffEntry);
                 } else {
@@ -645,11 +675,10 @@
         if (appEntries.isEmpty() && systemEntries.isEmpty()) {
             return null;
         }
-
-        final Set<String> systemAppsPackageNames = getSystemAppsPackageNames(context);
-        final Set<Integer> systemAppsUids = getSystemAppsUids(context);
-        return new BatteryDiffData(context, /* screenOnTime= */ 0L, appEntries, systemEntries,
-                systemAppsPackageNames, systemAppsUids, /* isAccumulated= */ false);
+        return new BatteryDiffData(context, startTimestamp, getCurrentTimeMillis(),
+                /* startBatteryLevel =*/ 100, getCurrentLevel(context), /* screenOnTime= */ 0L,
+                appEntries, systemEntries, systemAppsPackageNames, systemAppsUids,
+                /* isAccumulated= */ false);
     }
 
     /**
@@ -845,21 +874,15 @@
         return getScreenOnTime(appUsageMap.get(userId).get(packageName));
     }
 
-    /**
-     * @return Returns the overall battery usage data from battery stats service directly.
-     *
-     * The returned value should be always a 2d map and composed by only 1 part:
-     * - [SELECTED_INDEX_ALL][SELECTED_INDEX_ALL]
-     */
-    static Map<Integer, Map<Integer, BatteryDiffData>> getBatteryUsageMapFromStatsService(
-            final Context context) {
-        final Map<Integer, Map<Integer, BatteryDiffData>> resultMap = new ArrayMap<>();
-        final Map<Integer, BatteryDiffData> allUsageMap = new ArrayMap<>();
-        // Always construct the map whether the value is null or not.
-        allUsageMap.put(SELECTED_INDEX_ALL,
-                generateBatteryDiffData(context, getBatteryHistListFromFromStatsService(context)));
-        resultMap.put(SELECTED_INDEX_ALL, allUsageMap);
-        return resultMap;
+    static Map<Long, BatteryDiffData> getBatteryDiffDataMapFromStatsService(
+            final Context context, final long startTimestamp,
+            @NonNull final Set<String> systemAppsPackageNames,
+            @NonNull final Set<Integer> systemAppsUids) {
+        Map<Long, BatteryDiffData> batteryDiffDataMap = new ArrayMap<>(1);
+        batteryDiffDataMap.put(startTimestamp, generateBatteryDiffData(
+                context, startTimestamp, getBatteryHistListFromFromStatsService(context),
+                systemAppsPackageNames, systemAppsUids));
+        return batteryDiffDataMap;
     }
 
     static void loadLabelAndIcon(
@@ -878,6 +901,22 @@
         }
     }
 
+    static Set<String> getSystemAppsPackageNames(Context context) {
+        return sTestSystemAppsPackageNames != null ? sTestSystemAppsPackageNames
+                : AppListRepositoryUtil.getSystemPackageNames(context, context.getUserId());
+    }
+
+    static Set<Integer> getSystemAppsUids(Context context) {
+        Set<Integer> result = new ArraySet<>(1);
+        try {
+            result.add(context.getPackageManager().getUidForSharedUser(
+                    ANDROID_CORE_APPS_SHARED_USER_ID));
+        } catch (PackageManager.NameNotFoundException e) {
+            // No Android Core Apps
+        }
+        return result;
+    }
+
     /**
      * Generates the list of {@link AppUsageEvent} within the specific time range.
      * The buffer is added to make sure the app usage calculation near the boundaries is correct.
@@ -1158,28 +1197,6 @@
         resultMap.put(currentSlot, newHistEntryMap);
     }
 
-    private static List<BatteryLevelData.PeriodBatteryLevelData> getHourlyPeriodBatteryLevelData(
-            Context context,
-            final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
-            final List<List<Long>> timestamps) {
-        final List<BatteryLevelData.PeriodBatteryLevelData> levelData = new ArrayList<>();
-        timestamps.forEach(
-                timestampList -> levelData.add(
-                        getPeriodBatteryLevelData(
-                                context, processedBatteryHistoryMap, timestampList)));
-        return levelData;
-    }
-
-    private static BatteryLevelData.PeriodBatteryLevelData getPeriodBatteryLevelData(
-            Context context,
-            final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
-            final List<Long> timestamps) {
-        final List<Integer> levels = new ArrayList<>();
-        timestamps.forEach(
-                timestamp -> levels.add(getLevel(context, processedBatteryHistoryMap, timestamp)));
-        return new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels);
-    }
-
     private static Integer getLevel(
             Context context,
             final Map<Long, Map<String, BatteryHistEntry>> processedBatteryHistoryMap,
@@ -1188,13 +1205,12 @@
         if (entryMap == null || entryMap.isEmpty()) {
             Log.e(TAG, "abnormal entry list in the timestamp:"
                     + ConvertUtils.utcToLocalTimeForLogging(timestamp));
-            return null;
+            return BATTERY_LEVEL_UNKNOWN;
         }
         // The current time battery history hasn't been loaded yet, returns the current battery
         // level.
         if (entryMap.containsKey(CURRENT_TIME_BATTERY_HISTORY_PLACEHOLDER)) {
-            final Intent intent = BatteryUtils.getBatteryIntent(context);
-            return BatteryStatus.getBatteryLevel(intent);
+            return getCurrentLevel(context);
         }
         // Averages the battery level in each time slot to avoid corner conditions.
         float batteryLevelCounter = 0;
@@ -1204,20 +1220,15 @@
         return Math.round(batteryLevelCounter / entryMap.size());
     }
 
+    private static int getCurrentLevel(Context context) {
+        final Intent intent = BatteryUtils.getBatteryIntent(context);
+        return BatteryStatus.getBatteryLevel(intent);
+    }
+
     private static void insertHourlyUsageDiffData(
-            Context context,
-            final Set<String> systemAppsPackageNames,
-            final Set<Integer> systemAppsUids,
             final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
-            final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap,
-            final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
-                    appUsagePeriodMap,
+            final Map<Long, BatteryDiffData> batteryDiffDataMap,
             final Map<Integer, Map<Integer, BatteryDiffData>> resultMap) {
-        final int currentUserId = context.getUserId();
-        final UserHandle userHandle =
-                Utils.getManagedProfile(context.getSystemService(UserManager.class));
-        final int workProfileUserId =
-                userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
         // Each time slot usage diff data =
         //     sum(Math.abs(timestamp[i+1] data - timestamp[i] data));
         // since we want to aggregate every hour usage diff data into a single time slot.
@@ -1231,33 +1242,7 @@
                     hourlyBatteryLevelsPerDay.get(dailyIndex).getTimestamps();
             for (int hourlyIndex = 0; hourlyIndex < hourlyTimestamps.size() - 1; hourlyIndex++) {
                 final Long startTimestamp = hourlyTimestamps.get(hourlyIndex);
-                final Long endTimestamp = hourlyTimestamps.get(hourlyIndex + 1);
-                final long slotDuration = endTimestamp - startTimestamp;
-                List<Map<String, BatteryHistEntry>> slotBatteryHistoryList = new ArrayList<>();
-                slotBatteryHistoryList.add(
-                        batteryHistoryMap.getOrDefault(startTimestamp, EMPTY_BATTERY_MAP));
-                for (Long timestamp = TimestampUtils.getNextHourTimestamp(startTimestamp);
-                        timestamp < endTimestamp; timestamp += DateUtils.HOUR_IN_MILLIS) {
-                    slotBatteryHistoryList.add(
-                            batteryHistoryMap.getOrDefault(timestamp, EMPTY_BATTERY_MAP));
-                }
-                slotBatteryHistoryList.add(
-                        batteryHistoryMap.getOrDefault(endTimestamp, EMPTY_BATTERY_MAP));
-
-                final BatteryDiffData hourlyBatteryDiffData =
-                        insertHourlyUsageDiffDataPerSlot(
-                                context,
-                                currentUserId,
-                                workProfileUserId,
-                                slotDuration,
-                                systemAppsPackageNames,
-                                systemAppsUids,
-                                appUsagePeriodMap == null
-                                        || appUsagePeriodMap.get(dailyIndex) == null
-                                        ? null
-                                        : appUsagePeriodMap.get(dailyIndex).get(hourlyIndex),
-                                slotBatteryHistoryList);
-                dailyDiffMap.put(hourlyIndex, hourlyBatteryDiffData);
+                dailyDiffMap.put(hourlyIndex, batteryDiffDataMap.get(startTimestamp));
             }
         }
     }
@@ -1292,6 +1277,10 @@
     @Nullable
     private static BatteryDiffData insertHourlyUsageDiffDataPerSlot(
             final Context context,
+            final long startTimestamp,
+            final long endTimestamp,
+            final int startBatteryLevel,
+            final int endBatteryLevel,
             final int currentUserId,
             final int workProfileUserId,
             final long slotDuration,
@@ -1401,7 +1390,7 @@
                                 currentEntry.mCachedUsageConsumePower,
                                 nextEntry.mCachedUsageConsumePower);
             }
-            if (selectedBatteryEntry.isSystemEntry()
+            if (isSystemConsumer(selectedBatteryEntry.mConsumerType)
                     && selectedBatteryEntry.mDrainType == BatteryConsumer.POWER_COMPONENT_SCREEN) {
                 // Replace Screen system component time with screen on time.
                 foregroundUsageTimeInMs = slotScreenOnTime;
@@ -1447,6 +1436,14 @@
                     backgroundUsageTimeInMs, (long) slotDuration - screenOnTime);
             final BatteryDiffEntry currentBatteryDiffEntry = new BatteryDiffEntry(
                     context,
+                    selectedBatteryEntry.mUid,
+                    selectedBatteryEntry.mUserId,
+                    selectedBatteryEntry.getKey(),
+                    selectedBatteryEntry.mIsHidden,
+                    selectedBatteryEntry.mDrainType,
+                    selectedBatteryEntry.mPackageName,
+                    selectedBatteryEntry.mAppLabel,
+                    selectedBatteryEntry.mConsumerType,
                     foregroundUsageTimeInMs,
                     backgroundUsageTimeInMs,
                     screenOnTime,
@@ -1454,8 +1451,7 @@
                     foregroundUsageConsumePower,
                     foregroundServiceUsageConsumePower,
                     backgroundUsageConsumePower,
-                    cachedUsageConsumePower,
-                    selectedBatteryEntry);
+                    cachedUsageConsumePower);
             if (currentBatteryDiffEntry.isSystemEntry()) {
                 systemEntries.add(currentBatteryDiffEntry);
             } else {
@@ -1468,7 +1464,8 @@
             return null;
         }
 
-        return new BatteryDiffData(context, slotScreenOnTime, appEntries, systemEntries,
+        return new BatteryDiffData(context, startTimestamp, endTimestamp, startBatteryLevel,
+                endBatteryLevel, slotScreenOnTime, appEntries, systemEntries,
                 systemAppsPackageNames, systemAppsUids, /* isAccumulated= */ false);
     }
 
@@ -1519,7 +1516,7 @@
             final int currentUserId,
             final int workProfileUserId,
             final BatteryHistEntry batteryHistEntry) {
-        return batteryHistEntry.mConsumerType == ConvertUtils.CONSUMER_TYPE_UID_BATTERY
+        return isUidConsumer(batteryHistEntry.mConsumerType)
                 && batteryHistEntry.mUserId != currentUserId
                 && batteryHistEntry.mUserId != workProfileUserId;
     }
@@ -1531,11 +1528,23 @@
         final List<BatteryDiffEntry> appEntries = new ArrayList<>();
         final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
 
+        long startTimestamp = Long.MAX_VALUE;
+        long endTimestamp = 0;
+        int startBatteryLevel = BATTERY_LEVEL_UNKNOWN;
+        int endBatteryLevel = BATTERY_LEVEL_UNKNOWN;
         long totalScreenOnTime = 0;
         for (BatteryDiffData batteryDiffData : batteryDiffDataList) {
             if (batteryDiffData == null) {
                 continue;
             }
+            if (startTimestamp > batteryDiffData.getStartTimestamp()) {
+                startTimestamp = batteryDiffData.getStartTimestamp();
+                startBatteryLevel = batteryDiffData.getStartBatteryLevel();
+            }
+            if (endTimestamp > batteryDiffData.getEndTimestamp()) {
+                endTimestamp = batteryDiffData.getEndTimestamp();
+                endBatteryLevel = batteryDiffData.getEndBatteryLevel();
+            }
             totalScreenOnTime += batteryDiffData.getScreenOnTime();
             for (BatteryDiffEntry entry : batteryDiffData.getAppDiffEntryList()) {
                 computeUsageDiffDataPerEntry(entry, diffEntryMap);
@@ -1554,8 +1563,9 @@
             }
         }
 
-        return diffEntryList.isEmpty() ? null : new BatteryDiffData(context, totalScreenOnTime,
-                appEntries, systemEntries, /* systemAppsPackageNames= */ new ArraySet<>(),
+        return diffEntryList.isEmpty() ? null : new BatteryDiffData(context, startTimestamp,
+                endTimestamp, startBatteryLevel, endBatteryLevel, totalScreenOnTime, appEntries,
+                systemEntries, /* systemAppsPackageNames= */ new ArraySet<>(),
                 /* systemAppsUids= */ new ArraySet<>(), /* isAccumulated= */ true);
     }
 
@@ -1751,22 +1761,6 @@
         return v2 > v1 ? v2 - v1 : 0;
     }
 
-    private static Set<String> getSystemAppsPackageNames(Context context) {
-        return sTestSystemAppsPackageNames != null ? sTestSystemAppsPackageNames
-                : AppListRepositoryUtil.getSystemPackageNames(context, context.getUserId());
-    }
-
-    private static Set<Integer> getSystemAppsUids(Context context) {
-        Set<Integer> result = new ArraySet<>();
-        try {
-            result.add(context.getPackageManager().getUidForSharedUser(
-                    ANDROID_CORE_APPS_SHARED_USER_ID));
-        } catch (PackageManager.NameNotFoundException e) {
-            // No Android Core Apps
-        }
-        return result;
-    }
-
     private static long getCurrentTimeMillis() {
         return sTestCurrentTimeMillis > 0 ? sTestCurrentTimeMillis : System.currentTimeMillis();
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index b54563b..465afbe 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -15,6 +15,8 @@
  */
 
 package com.android.settings.fuelgauge.batteryusage;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.utcToLocalTimeForLogging;
+
 import android.app.usage.IUsageStatsManager;
 import android.app.usage.UsageStatsManager;
 import android.content.ContentResolver;
@@ -76,12 +78,20 @@
     public static final String BATTERY_EVENT_TABLE = "BatteryEvent";
     /** A table name for battery usage history. */
     public static final String BATTERY_STATE_TABLE = "BatteryState";
+    /** A table name for battery usage slot. */
+    public static final String BATTERY_USAGE_SLOT_TABLE = "BatteryUsageSlot";
+    /** A path name for last full charge time query. */
+    public static final String LAST_FULL_CHARGE_TIMESTAMP_PATH = "lastFullChargeTimestamp";
+    /** A path name for querying the latest record timestamp in battery state table. */
+    public static final String BATTERY_STATE_LATEST_TIMESTAMP_PATH = "batteryStateLatestTimestamp";
     /** A path name for app usage latest timestamp query. */
     public static final String APP_USAGE_LATEST_TIMESTAMP_PATH = "appUsageLatestTimestamp";
     /** Key for query parameter timestamp used in BATTERY_CONTENT_URI **/
     public static final String QUERY_KEY_TIMESTAMP = "timestamp";
     /** Key for query parameter userid used in APP_USAGE_EVENT_URI **/
     public static final String QUERY_KEY_USERID = "userid";
+    /** Key for query parameter battery event type used in BATTERY_EVENT_URI **/
+    public static final String QUERY_BATTERY_EVENT_TYPE = "batteryEventType";
 
     public static final long INVALID_USER_ID = Integer.MIN_VALUE;
     /**
@@ -111,6 +121,13 @@
                     .authority(AUTHORITY)
                     .appendPath(BATTERY_STATE_TABLE)
                     .build();
+    /** A content URI to access battery usage slots data. */
+    public static final Uri BATTERY_USAGE_SLOT_URI =
+            new Uri.Builder()
+                    .scheme(ContentResolver.SCHEME_CONTENT)
+                    .authority(AUTHORITY)
+                    .appendPath(BATTERY_USAGE_SLOT_TABLE)
+                    .build();
 
     // For testing only.
     @VisibleForTesting
@@ -140,7 +157,7 @@
                         .build();
         final long latestTimestamp =
                 loadAppUsageLatestTimestampFromContentProvider(context, appUsageLatestTimestampUri);
-        final String latestTimestampString = ConvertUtils.utcToLocalTimeForLogging(latestTimestamp);
+        final String latestTimestampString = utcToLocalTimeForLogging(latestTimestamp);
         Log.d(TAG, String.format(
                 "getAppUsageStartTimestampOfUser() userId=%d latestTimestamp=%s in %d/ms",
                 userId, latestTimestampString, (System.currentTimeMillis() - startTime)));
@@ -161,8 +178,7 @@
         // sure the app usage calculation near the boundaries is correct.
         final long queryTimestamp =
                 Math.max(rawStartTimestamp, sixDaysAgoTimestamp) - USAGE_QUERY_BUFFER_HOURS;
-        Log.d(TAG, "sixDayAgoTimestamp: " + ConvertUtils.utcToLocalTimeForLogging(
-                sixDaysAgoTimestamp));
+        Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
         final String queryUserIdString = userIds.stream()
                 .map(userId -> String.valueOf(userId))
                 .collect(Collectors.joining(","));
@@ -189,11 +205,15 @@
     public static List<BatteryEvent> getBatteryEvents(
             Context context,
             final Calendar calendar,
-            final long rawStartTimestamp) {
+            final long rawStartTimestamp,
+            final List<BatteryEventType> queryBatteryEventTypes) {
         final long startTime = System.currentTimeMillis();
         final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
         final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
         Log.d(TAG, "getBatteryEvents for timestamp: " + queryTimestamp);
+        final String queryBatteryEventTypesString = queryBatteryEventTypes.stream()
+                .map(type -> String.valueOf(type.getNumber()))
+                .collect(Collectors.joining(","));
         // Builds the content uri everytime to avoid cache.
         final Uri batteryEventUri =
                 new Uri.Builder()
@@ -202,6 +222,8 @@
                         .appendPath(BATTERY_EVENT_TABLE)
                         .appendQueryParameter(
                                 QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(
+                                QUERY_BATTERY_EVENT_TYPE, queryBatteryEventTypesString)
                         .build();
 
         final List<BatteryEvent> batteryEventList =
@@ -211,13 +233,82 @@
         return batteryEventList;
     }
 
-    /** Long: for timestamp and String: for BatteryHistEntry.getKey() */
-    public static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceLastFullCharge(
-            Context context, Calendar calendar) {
+    /**
+     * Returns the battery usage slot data after {@code rawStartTimestamp} in battery event table.
+     */
+    public static List<BatteryUsageSlot> getBatteryUsageSlots(
+            Context context,
+            final Calendar calendar,
+            final long rawStartTimestamp) {
         final long startTime = System.currentTimeMillis();
         final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
-        Log.d(TAG, "sixDayAgoTimestamp: " + ConvertUtils.utcToLocalTimeForLogging(
-                sixDaysAgoTimestamp));
+        final long queryTimestamp = Math.max(rawStartTimestamp, sixDaysAgoTimestamp);
+        Log.d(TAG, "getBatteryUsageSlots for timestamp: " + queryTimestamp);
+        // Builds the content uri everytime to avoid cache.
+        final Uri batteryUsageSlotUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(AUTHORITY)
+                        .appendPath(BATTERY_USAGE_SLOT_TABLE)
+                        .appendQueryParameter(
+                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .build();
+
+        final List<BatteryUsageSlot> batteryUsageSlotList =
+                loadBatteryUsageSlotsFromContentProvider(context, batteryUsageSlotUri);
+        Log.d(TAG, String.format("getBatteryUsageSlots size=%d in %d/ms",
+                batteryUsageSlotList.size(), (System.currentTimeMillis() - startTime)));
+        return batteryUsageSlotList;
+    }
+
+    /** Returns the last full charge time. */
+    public static long getLastFullChargeTime(Context context) {
+        final long startTime = System.currentTimeMillis();
+        // Builds the content uri everytime to avoid cache.
+        final Uri lastFullChargeTimeUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(AUTHORITY)
+                        .appendPath(LAST_FULL_CHARGE_TIMESTAMP_PATH)
+                        .build();
+        final long lastFullChargeTime = loadLastFullChargeTimeFromContentProvider(
+                context, lastFullChargeTimeUri);
+        final String lastFullChargeTimeString = utcToLocalTimeForLogging(lastFullChargeTime);
+        Log.d(TAG, String.format(
+                "getLastFullChargeTime() lastFullChargeTime=%s in %d/ms",
+                lastFullChargeTimeString, (System.currentTimeMillis() - startTime)));
+        return lastFullChargeTime;
+    }
+
+    /** Returns the first battery state timestamp no later than the {@code queryTimestamp}. */
+    @VisibleForTesting
+    static long getBatteryStateLatestTimestampBeforeQueryTimestamp(
+            Context context, final long queryTimestamp) {
+        final long startTime = System.currentTimeMillis();
+        // Builds the content uri everytime to avoid cache.
+        final Uri batteryStateLatestTimestampUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(AUTHORITY)
+                        .appendPath(BATTERY_STATE_LATEST_TIMESTAMP_PATH)
+                        .appendQueryParameter(
+                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .build();
+        final long batteryStateLatestTimestamp = loadBatteryStateLatestTimestampFromContentProvider(
+                context, batteryStateLatestTimestampUri);
+        final String batteryStateLatestTimestampString =
+                utcToLocalTimeForLogging(batteryStateLatestTimestamp);
+        Log.d(TAG, String.format(
+                "getBatteryStateLatestTimestamp() batteryStateLatestTimestamp=%s in %d/ms",
+                batteryStateLatestTimestampString, (System.currentTimeMillis() - startTime)));
+        return batteryStateLatestTimestamp;
+    }
+
+    /** Returns the battery history map after the given timestamp. */
+    @VisibleForTesting
+    static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceQueryTimestamp(
+            Context context, final long queryTimestamp) {
+        final long startTime = System.currentTimeMillis();
         // Builds the content uri everytime to avoid cache.
         final Uri batteryStateUri =
                 new Uri.Builder()
@@ -225,20 +316,46 @@
                         .authority(AUTHORITY)
                         .appendPath(BATTERY_STATE_TABLE)
                         .appendQueryParameter(
-                                QUERY_KEY_TIMESTAMP, Long.toString(sixDaysAgoTimestamp))
+                                QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
                         .build();
 
         final Map<Long, Map<String, BatteryHistEntry>> resultMap =
                 loadHistoryMapFromContentProvider(context, batteryStateUri);
         if (resultMap == null || resultMap.isEmpty()) {
-            Log.d(TAG, "getHistoryMapSinceLastFullCharge() returns empty or null");
+            Log.d(TAG, "getBatteryHistoryMap() returns empty or null");
         } else {
-            Log.d(TAG, String.format("getHistoryMapSinceLastFullCharge() size=%d in %d/ms",
+            Log.d(TAG, String.format("getBatteryHistoryMap() size=%d in %d/ms",
                     resultMap.size(), (System.currentTimeMillis() - startTime)));
         }
         return resultMap;
     }
 
+    /**
+     * Returns the battery history map since the latest record no later than the given timestamp.
+     * If there is no record before the given timestamp or the given timestamp is before last full
+     * charge time, returns the history map since last full charge time.
+     */
+    public static Map<Long, Map<String, BatteryHistEntry>>
+            getHistoryMapSinceLatestRecordBeforeQueryTimestamp(Context context, Calendar calendar,
+                    final long queryTimestamp, final long lastFullChargeTime) {
+        final long sixDaysAgoTimestamp = getTimestampSixDaysAgo(calendar);
+        Log.d(TAG, "sixDaysAgoTimestamp: " + utcToLocalTimeForLogging(sixDaysAgoTimestamp));
+        final long batteryStateLatestTimestamp =
+                queryTimestamp == 0L ? 0L : getBatteryStateLatestTimestampBeforeQueryTimestamp(
+                        context, queryTimestamp);
+        final long maxTimestamp = Math.max(Math.max(
+                sixDaysAgoTimestamp, lastFullChargeTime), batteryStateLatestTimestamp);
+        return getHistoryMapSinceQueryTimestamp(context, maxTimestamp);
+    }
+
+    /** Returns the history map since last full charge time. */
+    public static Map<Long, Map<String, BatteryHistEntry>> getHistoryMapSinceLastFullCharge(
+            Context context, Calendar calendar) {
+        final long lastFullChargeTime = getLastFullChargeTime(context);
+        return getHistoryMapSinceLatestRecordBeforeQueryTimestamp(
+                context, calendar, 0, lastFullChargeTime);
+    }
+
     /** Clears all data in the battery usage database. */
     public static void clearAll(Context context) {
         AsyncTask.execute(() -> {
@@ -248,6 +365,7 @@
                 database.appUsageEventDao().clearAll();
                 database.batteryEventDao().clearAll();
                 database.batteryStateDao().clearAll();
+                database.batteryUsageSlotDao().clearAll();
             } catch (RuntimeException e) {
                 Log.e(TAG, "clearAll() failed", e);
             }
@@ -265,6 +383,7 @@
                 database.appUsageEventDao().clearAllBefore(earliestTimestamp);
                 database.batteryEventDao().clearAllBefore(earliestTimestamp);
                 database.batteryStateDao().clearAllBefore(earliestTimestamp);
+                database.batteryUsageSlotDao().clearAllBefore(earliestTimestamp);
             } catch (RuntimeException e) {
                 Log.e(TAG, "clearAllBefore() failed", e);
             }
@@ -293,7 +412,7 @@
                         /*user=*/ context.getSystemService(UserManager.class)
                                 .getProfileParent(context.getUser()));
             } catch (PackageManager.NameNotFoundException e) {
-                Log.e(TAG, "context.createPackageContextAsUser() fail:" + e);
+                Log.e(TAG, "context.createPackageContextAsUser() fail:", e);
                 return null;
             }
         }
@@ -320,7 +439,7 @@
                 resolver.notifyChange(APP_USAGE_EVENT_URI, /*observer=*/ null);
                 Log.d(TAG, "insert() app usage events data into database");
             } catch (Exception e) {
-                Log.e(TAG, "bulkInsert() app usage data into database error:\n" + e);
+                Log.e(TAG, "bulkInsert() app usage data into database error:", e);
             }
         }
         Log.d(TAG, String.format("sendAppUsageEventData() size=%d in %d/ms",
@@ -346,8 +465,65 @@
         return contentValues;
     }
 
+    static List<ContentValues> sendBatteryEventData(
+            final Context context, final List<BatteryEvent> batteryEventList) {
+        final long startTime = System.currentTimeMillis();
+        // Creates the ContentValues list to insert them into provider.
+        final List<ContentValues> valuesList = new ArrayList<>();
+        batteryEventList.stream()
+                .forEach(batteryEvent -> valuesList.add(
+                        ConvertUtils.convertBatteryEventToContentValues(batteryEvent)));
+        int size = 0;
+        final ContentResolver resolver = context.getContentResolver();
+        // Inserts all ContentValues into battery provider.
+        if (!valuesList.isEmpty()) {
+            final ContentValues[] valuesArray = new ContentValues[valuesList.size()];
+            valuesList.toArray(valuesArray);
+            try {
+                size = resolver.bulkInsert(BATTERY_EVENT_URI, valuesArray);
+                resolver.notifyChange(BATTERY_EVENT_URI, /*observer=*/ null);
+                Log.d(TAG, "insert() battery event data into database");
+            } catch (Exception e) {
+                Log.e(TAG, "bulkInsert() battery event data into database error:", e);
+            }
+        }
+        Log.d(TAG, String.format("sendBatteryEventData() size=%d in %d/ms",
+                size, (System.currentTimeMillis() - startTime)));
+        clearMemory();
+        return valuesList;
+    }
+
+    static List<ContentValues> sendBatteryUsageSlotData(
+            final Context context, final List<BatteryUsageSlot> batteryUsageSlotList) {
+        final long startTime = System.currentTimeMillis();
+        // Creates the ContentValues list to insert them into provider.
+        final List<ContentValues> valuesList = new ArrayList<>();
+        batteryUsageSlotList.stream()
+                .forEach(batteryUsageSlot -> valuesList.add(
+                        ConvertUtils.convertBatteryUsageSlotToContentValues(batteryUsageSlot)));
+        int size = 0;
+        final ContentResolver resolver = context.getContentResolver();
+        // Inserts all ContentValues into battery provider.
+        if (!valuesList.isEmpty()) {
+            final ContentValues[] valuesArray = new ContentValues[valuesList.size()];
+            valuesList.toArray(valuesArray);
+            try {
+                size = resolver.bulkInsert(BATTERY_USAGE_SLOT_URI, valuesArray);
+                resolver.notifyChange(BATTERY_USAGE_SLOT_URI, /*observer=*/ null);
+                Log.d(TAG, "insert() battery usage slots data into database");
+            } catch (Exception e) {
+                Log.e(TAG, "bulkInsert() battery usage slots data into database error:", e);
+            }
+        }
+        Log.d(TAG, String.format("sendBatteryUsageSlotData() size=%d in %d/ms",
+                size, (System.currentTimeMillis() - startTime)));
+        clearMemory();
+        return valuesList;
+    }
+
     static List<ContentValues> sendBatteryEntryData(
             final Context context,
+            final long snapshotTimestamp,
             final List<BatteryEntry> batteryEntryList,
             final BatteryUsageStats batteryUsageStats,
             final boolean isFullChargeStart) {
@@ -364,7 +540,6 @@
         final int batteryHealth = intent.getIntExtra(
                 BatteryManager.EXTRA_HEALTH, BatteryManager.BATTERY_HEALTH_UNKNOWN);
         // We should use the same timestamp for each data snapshot.
-        final long snapshotTimestamp = Clock.systemUTC().millis();
         final long snapshotBootTimestamp = SystemClock.elapsedRealtime();
 
         // Creates the ContentValues list to insert them into provider.
@@ -409,8 +584,7 @@
                 Log.d(TAG, "insert() battery states data into database with isFullChargeStart:"
                         + isFullChargeStart);
             } catch (Exception e) {
-                errorMessage = e.toString();
-                Log.e(TAG, "bulkInsert() data into database error:\n" + errorMessage);
+                Log.e(TAG, "bulkInsert() data into database error:", e);
             }
         } else {
             // Inserts one fake data into battery provider.
@@ -430,8 +604,7 @@
                         + isFullChargeStart);
 
             } catch (Exception e) {
-                errorMessage = e.toString();
-                Log.e(TAG, "insert() data into database error:\n" + errorMessage);
+                Log.e(TAG, "insert() data into database error:", e);
             }
             valuesList.add(contentValues);
         }
@@ -504,8 +677,7 @@
     static void recordDateTime(Context context, String preferenceKey) {
         final SharedPreferences sharedPreferences = getSharedPreferences(context);
         if (sharedPreferences != null) {
-            final String currentTime = ConvertUtils.utcToLocalTimeForLogging(
-                    System.currentTimeMillis());
+            final String currentTime = utcToLocalTimeForLogging(System.currentTimeMillis());
             sharedPreferences.edit().putString(preferenceKey, currentTime).apply();
         }
     }
@@ -533,11 +705,6 @@
             cursor.moveToFirst();
             // There is only one column returned so use the index 0 directly.
             final long latestTimestamp = cursor.getLong(/*columnIndex=*/ 0);
-            try {
-                cursor.close();
-            } catch (Exception e) {
-                Log.e(TAG, "cursor.close() failed", e);
-            }
             // If there is no data for this user, 0 will be returned from the database.
             return latestTimestamp == 0 ? INVALID_USER_ID : latestTimestamp;
         }
@@ -556,14 +723,9 @@
             if (cursor == null || cursor.getCount() == 0) {
                 return appUsageEventList;
             }
-            // Loads and recovers all AppUsageEvent data from cursor.
+            // Loads and converts all AppUsageEvent data from cursor.
             while (cursor.moveToNext()) {
-                appUsageEventList.add(ConvertUtils.convertToAppUsageEventFromCursor(cursor));
-            }
-            try {
-                cursor.close();
-            } catch (Exception e) {
-                Log.e(TAG, "cursor.close() failed", e);
+                appUsageEventList.add(ConvertUtils.convertToAppUsageEvent(cursor));
             }
         }
         return appUsageEventList;
@@ -582,19 +744,71 @@
             if (cursor == null || cursor.getCount() == 0) {
                 return batteryEventList;
             }
-            // Loads and recovers all AppUsageEvent data from cursor.
+            // Loads and converts all AppUsageEvent data from cursor.
             while (cursor.moveToNext()) {
-                batteryEventList.add(ConvertUtils.convertToBatteryEventFromCursor(cursor));
-            }
-            try {
-                cursor.close();
-            } catch (Exception e) {
-                Log.e(TAG, "cursor.close() failed", e);
+                batteryEventList.add(ConvertUtils.convertToBatteryEvent(cursor));
             }
         }
         return batteryEventList;
     }
 
+    private static List<BatteryUsageSlot> loadBatteryUsageSlotsFromContentProvider(
+            Context context, Uri batteryUsageSlotUri) {
+        final List<BatteryUsageSlot> batteryUsageSlotList = new ArrayList<>();
+        context = getParentContext(context);
+        if (context == null) {
+            return batteryUsageSlotList;
+        }
+        try (Cursor cursor = sFakeSupplier != null
+                ? sFakeSupplier.get()
+                : context.getContentResolver().query(batteryUsageSlotUri, null, null, null)) {
+            if (cursor == null || cursor.getCount() == 0) {
+                return batteryUsageSlotList;
+            }
+            // Loads and converts all AppUsageEvent data from cursor.
+            while (cursor.moveToNext()) {
+                batteryUsageSlotList.add(ConvertUtils.convertToBatteryUsageSlot(cursor));
+            }
+        }
+        return batteryUsageSlotList;
+    }
+
+    private static long loadLastFullChargeTimeFromContentProvider(
+            Context context, final Uri lastFullChargeTimeUri) {
+        // We have already make sure the context here is with profile parent's user identity. Don't
+        // need to check whether current user is work profile.
+        try (Cursor cursor = sFakeSupplier != null
+                ? sFakeSupplier.get()
+                : context.getContentResolver().query(
+                        lastFullChargeTimeUri, null, null, null)) {
+            if (cursor == null || cursor.getCount() == 0) {
+                return 0L;
+            }
+            cursor.moveToFirst();
+            // There is only one column returned so use the index 0 directly.
+            final long lastFullChargeTime = cursor.getLong(/*columnIndex=*/ 0);
+            return lastFullChargeTime;
+        }
+    }
+
+    private static long loadBatteryStateLatestTimestampFromContentProvider(
+            Context context, final Uri batteryStateLatestTimestampUri) {
+        // We have already make sure the context here is with profile parent's user identity. Don't
+        // need to check whether current user is work profile.
+        try (Cursor cursor = sFakeSupplier != null
+                ? sFakeSupplier.get()
+                : context.getContentResolver().query(
+                        batteryStateLatestTimestampUri, null, null, null)) {
+            if (cursor == null || cursor.getCount() == 0) {
+                return 0L;
+            }
+            cursor.moveToFirst();
+            // There is only one column returned so use the index 0 directly.
+            final long batteryStateLatestTimestamp = cursor.getLong(/*columnIndex=*/ 0);
+            return batteryStateLatestTimestamp;
+        }
+    }
+
     private static Map<Long, Map<String, BatteryHistEntry>> loadHistoryMapFromContentProvider(
             Context context, Uri batteryStateUri) {
         context = getParentContext(context);
@@ -607,7 +821,7 @@
             if (cursor == null || cursor.getCount() == 0) {
                 return resultMap;
             }
-            // Loads and recovers all BatteryHistEntry data from cursor.
+            // Loads and converts all BatteryHistEntry data from cursor.
             while (cursor.moveToNext()) {
                 final BatteryHistEntry entry = new BatteryHistEntry(cursor);
                 final long timestamp = entry.mTimestamp;
@@ -620,11 +834,6 @@
                 }
                 batteryHistEntryMap.put(key, entry);
             }
-            try {
-                cursor.close();
-            } catch (Exception e) {
-                Log.e(TAG, "cursor.close() failed", e);
-            }
         }
         return resultMap;
     }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
index 2bd0466..2371a19 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PeriodicJobReceiver.java
@@ -44,7 +44,6 @@
         }
         BatteryUsageLogUtils.writeLog(context, Action.EXECUTE_JOB, "");
         BatteryUsageDataLoader.enqueueWork(context, /*isFullChargeStart=*/ false);
-        AppUsageDataLoader.enqueueWork(context);
         Log.d(TAG, "refresh periodic job from action=" + action);
         PeriodicJobManager.getInstance(context).refreshJob(/*fromBoot=*/ false);
         DatabaseUtils.clearExpiredDataIfNeeded(context);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index 9a8680e..e4f8b39 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -21,12 +21,13 @@
 import android.content.Context;
 import android.database.ContentObserver;
 import android.net.Uri;
+import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
+import android.os.Looper;
 import android.provider.SearchIndexableResource;
 import android.util.Log;
 
-import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.Loader;
@@ -39,11 +40,13 @@
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.utils.AsyncLoaderCompat;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 
 /** Advanced power usage. */
 @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
@@ -55,16 +58,17 @@
     @VisibleForTesting
     BatteryHistoryPreference mHistPref;
     @VisibleForTesting
-    Map<Long, Map<String, BatteryHistEntry>> mBatteryHistoryMap;
-    @VisibleForTesting
-    final BatteryHistoryLoaderCallbacks mBatteryHistoryLoaderCallbacks =
-            new BatteryHistoryLoaderCallbacks();
+    final BatteryLevelDataLoaderCallbacks mBatteryLevelDataLoaderCallbacks =
+            new BatteryLevelDataLoaderCallbacks();
 
     private boolean mIsChartDataLoaded = false;
+    private long mResumeTimestamp;
     private BatteryChartPreferenceController mBatteryChartPreferenceController;
+    private Optional<BatteryLevelData> mBatteryLevelData;
 
+    private final Handler mHandler = new Handler(Looper.getMainLooper());
     private final ContentObserver mBatteryObserver =
-            new ContentObserver(new Handler()) {
+            new ContentObserver(mHandler) {
                 @Override
                 public void onChange(boolean selfChange) {
                     Log.d(TAG, "onBatteryContentChange: " + selfChange);
@@ -79,6 +83,7 @@
         super.onCreate(icicle);
         mHistPref = findPreference(KEY_BATTERY_CHART);
         setBatteryChartPreferenceController();
+        AsyncTask.execute(() -> BootBroadcastReceiver.invokeJobRecheck(getContext()));
     }
 
     @Override
@@ -109,6 +114,7 @@
         super.onPause();
         // Resets the flag to reload usage data in onResume() callback.
         mIsChartDataLoaded = false;
+        mBatteryLevelData = null;
         final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
         if (uri != null) {
             getContext().getContentResolver().unregisterContentObserver(mBatteryObserver);
@@ -118,6 +124,7 @@
     @Override
     public void onResume() {
         super.onResume();
+        mResumeTimestamp = System.currentTimeMillis();
         final Uri uri = DatabaseUtils.BATTERY_CONTENT_URI;
         if (uri != null) {
             getContext().getContentResolver().registerContentObserver(
@@ -159,20 +166,8 @@
     }
 
     @Override
-    protected boolean isBatteryHistoryNeeded() {
-        return true;
-    }
-
-    @Override
     protected void refreshUi(@BatteryUpdateType int refreshType) {
-        final Context context = getContext();
-        if (context == null) {
-            return;
-        }
-        updatePreference(mHistPref);
-        if (mBatteryChartPreferenceController != null && mBatteryHistoryMap != null) {
-            mBatteryChartPreferenceController.setBatteryHistoryMap(mBatteryHistoryMap);
-        }
+        // Do nothing
     }
 
     @Override
@@ -181,11 +176,32 @@
         bundle.putInt(KEY_REFRESH_TYPE, refreshType);
         if (!mIsChartDataLoaded) {
             mIsChartDataLoaded = true;
-            restartLoader(LoaderIndex.BATTERY_HISTORY_LOADER, bundle,
-                    mBatteryHistoryLoaderCallbacks);
+            restartLoader(LoaderIndex.BATTERY_LEVEL_DATA_LOADER, bundle,
+                    mBatteryLevelDataLoaderCallbacks);
         }
     }
 
+    private void onBatteryLevelDataUpdate(BatteryLevelData batteryLevelData) {
+        mBatteryLevelData = Optional.ofNullable(batteryLevelData);
+        if (mBatteryChartPreferenceController != null) {
+            mBatteryChartPreferenceController.onBatteryLevelDataUpdate(batteryLevelData);
+            Log.d(TAG, String.format("Battery chart shows in %d millis",
+                    System.currentTimeMillis() - mResumeTimestamp));
+        }
+    }
+
+    private void onBatteryDiffDataMapUpdate(Map<Long, BatteryDiffData> batteryDiffDataMap) {
+        if (mBatteryLevelData != null && mBatteryChartPreferenceController != null) {
+            Map<Integer, Map<Integer, BatteryDiffData>> batteryUsageMap =
+                    DataProcessor.generateBatteryUsageMap(
+                            getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
+            DataProcessor.loadLabelAndIcon(batteryUsageMap);
+            mBatteryChartPreferenceController.onBatteryUsageMapUpdate(batteryUsageMap);
+        }
+        Log.d(TAG, String.format("Battery usage list shows in %d millis",
+                System.currentTimeMillis() - mResumeTimestamp));
+    }
+
     private void setBatteryChartPreferenceController() {
         if (mHistPref != null && mBatteryChartPreferenceController != null) {
             mHistPref.setChartPreferenceController(mBatteryChartPreferenceController);
@@ -216,28 +232,31 @@
                 }
             };
 
-    private class BatteryHistoryLoaderCallbacks
-            implements LoaderManager.LoaderCallbacks<Map<Long, Map<String, BatteryHistEntry>>> {
-        private int mRefreshType;
-
+    private class BatteryLevelDataLoaderCallbacks
+            implements LoaderManager.LoaderCallbacks<BatteryLevelData> {
         @Override
-        @NonNull
-        public Loader<Map<Long, Map<String, BatteryHistEntry>>> onCreateLoader(
-                int id, Bundle bundle) {
-            mRefreshType = bundle.getInt(KEY_REFRESH_TYPE);
-            return new BatteryHistoryLoader(getContext());
+        public Loader<BatteryLevelData> onCreateLoader(int id, Bundle bundle) {
+            return new AsyncLoaderCompat<BatteryLevelData>(getContext().getApplicationContext()) {
+                @Override
+                protected void onDiscardResult(BatteryLevelData result) {}
+
+                @Override
+                public BatteryLevelData loadInBackground() {
+                    return DataProcessManager.getBatteryLevelData(
+                            getContext(), mHandler, /*isFromPeriodJob=*/ false,
+                            map -> PowerUsageAdvanced.this.onBatteryDiffDataMapUpdate(map));
+                }
+            };
         }
 
         @Override
-        public void onLoadFinished(Loader<Map<Long, Map<String, BatteryHistEntry>>> loader,
-                Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
-            mBatteryHistoryMap = batteryHistoryMap;
-            PowerUsageAdvanced.this.onLoadFinished(mRefreshType);
+        public void onLoadFinished(Loader<BatteryLevelData> loader,
+                BatteryLevelData batteryLevelData) {
+            PowerUsageAdvanced.this.onBatteryLevelDataUpdate(batteryLevelData);
         }
 
         @Override
-        public void onLoaderReset(Loader<Map<Long, Map<String, BatteryHistEntry>>> loader) {
+        public void onLoaderReset(Loader<BatteryLevelData> loader) {
         }
     }
-
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
index ed3a921..22856b6 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBase.java
@@ -32,7 +32,6 @@
 
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.fuelgauge.BatteryBroadcastReceiver;
-import com.android.settings.fuelgauge.BatteryUtils;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
@@ -63,14 +62,14 @@
             LoaderIndex.BATTERY_USAGE_STATS_LOADER,
             LoaderIndex.BATTERY_INFO_LOADER,
             LoaderIndex.BATTERY_TIP_LOADER,
-            LoaderIndex.BATTERY_HISTORY_LOADER
+            LoaderIndex.BATTERY_LEVEL_DATA_LOADER
 
     })
     public @interface LoaderIndex {
         int BATTERY_USAGE_STATS_LOADER = 0;
         int BATTERY_INFO_LOADER = 1;
         int BATTERY_TIP_LOADER = 2;
-        int BATTERY_HISTORY_LOADER = 3;
+        int BATTERY_LEVEL_DATA_LOADER = 3;
     }
 
     @Override
@@ -108,7 +107,7 @@
     protected void restartBatteryStatsLoader(int refreshType) {
         final Bundle bundle = new Bundle();
         bundle.putInt(KEY_REFRESH_TYPE, refreshType);
-        bundle.putBoolean(KEY_INCLUDE_HISTORY, isBatteryHistoryNeeded());
+        bundle.putBoolean(KEY_INCLUDE_HISTORY, false);
         restartLoader(LoaderIndex.BATTERY_USAGE_STATS_LOADER, bundle,
                 mBatteryUsageStatsLoaderCallbacks);
     }
@@ -137,14 +136,6 @@
 
     protected abstract void refreshUi(@BatteryUpdateType int refreshType);
 
-    protected abstract boolean isBatteryHistoryNeeded();
-
-    protected void updatePreference(BatteryHistoryPreference historyPref) {
-        final long startTime = System.currentTimeMillis();
-        historyPref.setBatteryUsageStats(mBatteryUsageStats);
-        BatteryUtils.logRuntime(TAG, "updatePreference", startTime);
-    }
-
     private class BatteryUsageStatsLoaderCallbacks
             implements LoaderManager.LoaderCallbacks<BatteryUsageStats> {
         private int mRefreshType;
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
index 0bec490..40fd3f4 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
@@ -45,7 +45,6 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.search.SearchIndexable;
-import com.android.settingslib.widget.LayoutPreference;
 
 import java.util.List;
 
@@ -69,8 +68,6 @@
     @VisibleForTesting
     BatteryUtils mBatteryUtils;
     @VisibleForTesting
-    LayoutPreference mBatteryLayoutPref;
-    @VisibleForTesting
     BatteryInfo mBatteryInfo;
 
     @VisibleForTesting
@@ -208,11 +205,6 @@
         return R.string.help_url_battery;
     }
 
-    @Override
-    protected boolean isBatteryHistoryNeeded() {
-        return false;
-    }
-
     protected void refreshUi(@BatteryUpdateType int refreshType) {
         final Context context = getContext();
         if (context == null) {
@@ -240,11 +232,6 @@
     }
 
     @VisibleForTesting
-    void setBatteryLayoutPreference(LayoutPreference layoutPreference) {
-        mBatteryLayoutPref = layoutPreference;
-    }
-
-    @VisibleForTesting
     void initFeatureProvider() {
         final Context context = getContext();
         mPowerFeatureProvider = FeatureFactory.getFactory(context)
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
index a638d09..0a6de71 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDao.java
@@ -36,9 +36,16 @@
     @Query("SELECT * FROM BatteryEventEntity ORDER BY timestamp DESC")
     List<BatteryEventEntity> getAll();
 
+    /** Gets the {@link Cursor} of the last full charge time . */
+    @Query("SELECT MAX(timestamp) FROM BatteryEventEntity"
+            + " WHERE batteryEventType = 3")  // BatteryEventType.FULL_CHARGED = 3
+    Cursor getLastFullChargeTimestamp();
+
     /** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
-    @Query("SELECT * FROM BatteryEventEntity WHERE timestamp > :timestamp ORDER BY timestamp DESC")
-    Cursor getAllAfter(long timestamp);
+    @Query("SELECT * FROM BatteryEventEntity"
+            + " WHERE timestamp > :timestamp AND batteryEventType IN (:batteryEventTypes)"
+            + " ORDER BY timestamp DESC")
+    Cursor getAllAfter(long timestamp, List<Integer> batteryEventTypes);
 
     /** Deletes all recorded data before a specific timestamp. */
     @Query("DELETE FROM BatteryEventEntity WHERE timestamp <= :timestamp")
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
index 6d2ab8d..520c6be 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDao.java
@@ -37,16 +37,18 @@
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     void insertAll(List<BatteryState> states);
 
+    /** Gets the {@link Cursor} of the latest record timestamp no later than the given timestamp. */
+    @Query("SELECT MAX(timestamp) FROM BatteryState WHERE timestamp <= :timestamp")
+    Cursor getLatestTimestampBefore(long timestamp);
+
+    /** Lists all recorded battery states after a specific timestamp. */
+    @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestamp ORDER BY timestamp ASC")
+    Cursor getBatteryStatesAfter(long timestamp);
+
     /** Lists all recorded data after a specific timestamp. */
     @Query("SELECT * FROM BatteryState WHERE timestamp > :timestamp ORDER BY timestamp DESC")
     List<BatteryState> getAllAfter(long timestamp);
 
-    /** Gets the {@link Cursor} of all recorded data since last full charge within 7 days. */
-    @Query("SELECT * FROM BatteryState WHERE timestamp >= :timestampSixDaysAgo AND timestamp >= "
-            + "(SELECT IFNULL((SELECT MAX(timestamp) FROM BatteryState "
-            + "WHERE isFullChargeCycleStart = 1), 0)) ORDER BY timestamp ASC")
-    Cursor getCursorSinceLastFullCharge(long timestampSixDaysAgo);
-
     /** Get the count of distinct timestamp after a specific timestamp. */
     @Query("SELECT COUNT(DISTINCT timestamp) FROM BatteryState WHERE timestamp > :timestamp")
     int getDistinctTimestampCount(long timestamp);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
index 466a7ca..28a0012 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
@@ -25,7 +25,8 @@
 
 /** A {@link RoomDatabase} for battery usage states history. */
 @Database(
-        entities = {AppUsageEventEntity.class, BatteryEventEntity.class, BatteryState.class},
+        entities = {AppUsageEventEntity.class, BatteryEventEntity.class, BatteryState.class,
+                BatteryUsageSlotEntity.class},
         version = 1)
 public abstract class BatteryStateDatabase extends RoomDatabase {
     private static final String TAG = "BatteryStateDatabase";
@@ -38,13 +39,15 @@
     public abstract BatteryEventDao batteryEventDao();
     /** Provides DAO for battery state table. */
     public abstract BatteryStateDao batteryStateDao();
+    /** Provides DAO for battery usage slot table. */
+    public abstract BatteryUsageSlotDao batteryUsageSlotDao();
 
     /** Gets or creates an instance of {@link RoomDatabase}. */
     public static BatteryStateDatabase getInstance(Context context) {
         if (sBatteryStateDatabase == null) {
             sBatteryStateDatabase =
                     Room.databaseBuilder(
-                                    context, BatteryStateDatabase.class, "battery-usage-db-v8")
+                                    context, BatteryStateDatabase.class, "battery-usage-db-v9")
                             // Allows accessing data in the main thread for dumping bugreport.
                             .allowMainThreadQueries()
                             .fallbackToDestructiveMigration()
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
new file mode 100644
index 0000000..a695f6a
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDao.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import android.database.Cursor;
+
+import androidx.room.Dao;
+import androidx.room.Insert;
+import androidx.room.OnConflictStrategy;
+import androidx.room.Query;
+
+import java.util.List;
+
+/** Data access object for accessing {@link BatteryUsageSlotEntity} in the database. */
+@Dao
+public interface BatteryUsageSlotDao {
+    /** Inserts a {@link BatteryUsageSlotEntity} data into the database. */
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    void insert(BatteryUsageSlotEntity event);
+
+    /** Gets all recorded data. */
+    @Query("SELECT * FROM BatteryUsageSlotEntity ORDER BY timestamp ASC")
+    List<BatteryUsageSlotEntity> getAll();
+
+    /** Gets the {@link Cursor} of all recorded data after a specific timestamp. */
+    @Query("SELECT * FROM BatteryUsageSlotEntity WHERE timestamp >= :timestamp"
+            + " ORDER BY timestamp ASC")
+    Cursor getAllAfter(long timestamp);
+
+    /** Deletes all recorded data before a specific timestamp. */
+    @Query("DELETE FROM BatteryUsageSlotEntity WHERE timestamp <= :timestamp")
+    void clearAllBefore(long timestamp);
+
+    /** Clears all recorded data in the database. */
+    @Query("DELETE FROM BatteryUsageSlotEntity")
+    void clearAll();
+}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
new file mode 100644
index 0000000..c2d5631
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntity.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import android.content.ContentValues;
+
+import androidx.room.Entity;
+import androidx.room.PrimaryKey;
+
+import com.android.settings.fuelgauge.batteryusage.ConvertUtils;
+
+import com.google.errorprone.annotations.CanIgnoreReturnValue;
+
+import java.util.Locale;
+
+/** A {@link Entity} class to save battery usage slot into database. */
+@Entity
+public class BatteryUsageSlotEntity {
+    /** Keys for accessing {@link ContentValues}. */
+    public static final String KEY_TIMESTAMP = "timestamp";
+    public static final String KEY_BATTERY_USAGE_SLOT = "batteryUsageSlot";
+
+    @PrimaryKey(autoGenerate = true)
+    private long mId;
+
+    public final long timestamp;
+    public final String batteryUsageSlot;
+
+    public BatteryUsageSlotEntity(final long timestamp, final String batteryUsageSlot) {
+        this.timestamp = timestamp;
+        this.batteryUsageSlot = batteryUsageSlot;
+    }
+
+    /** Sets the auto-generated content ID. */
+    public void setId(long id) {
+        this.mId = id;
+    }
+
+    /** Gets the auto-generated content ID. */
+    public long getId() {
+        return mId;
+    }
+
+    @Override
+    public String toString() {
+        final String recordAtDateTime = ConvertUtils.utcToLocalTimeForLogging(timestamp);
+        final StringBuilder builder = new StringBuilder()
+                .append("\nBatteryUsageSlot{")
+                .append(String.format(Locale.US, "\n\ttimestamp=%s|batteryUsageSlot=%s",
+                        recordAtDateTime, batteryUsageSlot))
+                .append("\n}");
+        return builder.toString();
+    }
+
+    /** Creates new {@link BatteryUsageSlotEntity} from {@link ContentValues}. */
+    public static BatteryUsageSlotEntity create(ContentValues contentValues) {
+        Builder builder = BatteryUsageSlotEntity.newBuilder();
+        if (contentValues.containsKey(KEY_TIMESTAMP)) {
+            builder.setTimestamp(contentValues.getAsLong(KEY_TIMESTAMP));
+        }
+        if (contentValues.containsKey(KEY_BATTERY_USAGE_SLOT)) {
+            builder.setBatteryUsageSlot(contentValues.getAsString(KEY_BATTERY_USAGE_SLOT));
+        }
+        return builder.build();
+    }
+
+    /** Creates a new {@link Builder} instance. */
+    public static Builder newBuilder() {
+        return new Builder();
+    }
+
+    /** A convenience builder class to improve readability. */
+    public static class Builder {
+        private long mTimestamp;
+        private String mBatteryUsageSlot;
+
+        /** Sets the timestamp. */
+        @CanIgnoreReturnValue
+        public Builder setTimestamp(final long timestamp) {
+            mTimestamp = timestamp;
+            return this;
+        }
+
+        /** Sets the battery usage slot. */
+        @CanIgnoreReturnValue
+        public Builder setBatteryUsageSlot(final String batteryUsageSlot) {
+            mBatteryUsageSlot = batteryUsageSlot;
+            return this;
+        }
+
+        /** Builds the {@link BatteryUsageSlotEntity}. */
+        public BatteryUsageSlotEntity build() {
+            return new BatteryUsageSlotEntity(mTimestamp, mBatteryUsageSlot);
+        }
+
+        private Builder() {}
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/protos/Android.bp b/src/com/android/settings/fuelgauge/protos/Android.bp
index 1f3cdd9..531bdc32 100644
--- a/src/com/android/settings/fuelgauge/protos/Android.bp
+++ b/src/com/android/settings/fuelgauge/protos/Android.bp
@@ -24,6 +24,14 @@
 }
 
 java_library {
+    name: "battery-usage-slot-protos-lite",
+    proto: {
+        type: "lite",
+    },
+    srcs: ["battery_usage_slot.proto"],
+}
+
+java_library {
     name: "fuelgauge-usage-state-protos-lite",
     proto: {
         type: "lite",
diff --git a/src/com/android/settings/fuelgauge/protos/battery_event.proto b/src/com/android/settings/fuelgauge/protos/battery_event.proto
index 80ccb3b..58ab3be 100644
--- a/src/com/android/settings/fuelgauge/protos/battery_event.proto
+++ b/src/com/android/settings/fuelgauge/protos/battery_event.proto
@@ -8,6 +8,8 @@
   UNKNOWN_EVENT = 0;
   POWER_CONNECTED = 1;
   POWER_DISCONNECTED = 2;
+  FULL_CHARGED = 3;
+  EVEN_HOUR = 4;
 }
 
 message BatteryEvent {
diff --git a/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
new file mode 100644
index 0000000..e3b604b
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/protos/battery_usage_slot.proto
@@ -0,0 +1,32 @@
+syntax = "proto2";
+
+option java_multiple_files = true;
+option java_package = "com.android.settings.fuelgauge.batteryusage";
+option java_outer_classname = "BatteryUsageSlotProto";
+
+message BatteryUsageSlot {
+  optional int64 start_timestamp = 1;
+  optional int64 end_timestamp = 2;
+  optional int32 start_battery_level = 3;
+  optional int32 end_battery_level = 4;
+  optional int64 screen_on_time = 5;
+  repeated BatteryUsageDiff app_usage = 6;
+  repeated BatteryUsageDiff system_usage = 7;
+}
+
+message BatteryUsageDiff {
+  optional int64 uid = 1;
+  optional int64 user_id = 2;
+  optional string package_name = 3;
+  optional string label = 4;
+  optional string key = 5;
+  optional bool is_hidden = 6;
+  optional int32 component_id = 7;
+  optional int32 consumer_type = 8;
+  optional double consume_power = 9;
+  optional double foreground_usage_consume_power = 10;
+  optional double background_usage_consume_power = 11;
+  optional int64 foreground_usage_time = 12;
+  optional int64 background_usage_time = 13;
+  optional int64 screen_on_time = 14;
+}
diff --git a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
index 380c786..c799d7a 100644
--- a/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
+++ b/src/com/android/settings/fuelgauge/protos/power_anomaly_event.proto
@@ -11,8 +11,8 @@
 message PowerAnomalyEvent {
   optional string event_id = 1;
   optional int64 timestamp = 2;
-  optional string type = 3;  // e.g. settings, apps
-  optional string key = 4;  // e.g. brightness, significant_increase
+  optional PowerAnomalyType type = 3;
+  optional PowerAnomalyKey key = 4;
   optional float score = 5;
   oneof info {
     WarningBannerInfo warning_banner_info = 6;
@@ -20,6 +20,25 @@
   }
 }
 
+// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
+// The enum value will be used to decide the tips card style like icons and colors.
+//
+// Next id: 2
+enum PowerAnomalyType{
+  TYPE_SETTINGS_BANNER = 0;
+  TYPE_APPS_ITEM = 1;
+}
+
+// NOTE: Please DO NOT delete enum items or change enum values. Use [deprecated = true] instead.
+// The enum value will be used to decide pre-defined title and button labels.
+//
+// Next id: 3
+enum PowerAnomalyKey{
+  KEY_BRIGHTNESS = 0;
+  KEY_SCREEN_TIMEOUT = 1;
+  KEY_APP = 2;
+}
+
 message WarningBannerInfo {
   optional string title_string = 1;
   optional string description_string = 2;
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index b71d295..4808773 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -50,6 +50,7 @@
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import androidx.core.graphics.ColorUtils;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -176,7 +177,8 @@
                     com.android.internal.R.id.expand_button);
             int textColor = obtainThemeColor(android.R.attr.textColorPrimary);
             int backgroundColor = obtainThemeColor(android.R.attr.colorBackgroundFloating);
-            expand.setDefaultPillColor(backgroundColor);
+            int pillColor = ColorUtils.blendARGB(textColor, backgroundColor, 0.9f);
+            expand.setDefaultPillColor(pillColor);
             expand.setDefaultTextColor(textColor);
             expand.setExpanded(false);
             header.setStateDescription(container.getVisibility() == View.VISIBLE
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index 3a1532b..09d1924 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -523,7 +523,6 @@
             setupPasswordRequirementsView(headerLayout);
 
             mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
-            mPasswordRestrictionView.setAccessibilityLiveRegion(ACCESSIBILITY_LIVE_REGION_POLITE);
             mPasswordEntry = view.findViewById(R.id.password_entry);
             mPasswordEntry.setOnEditorActionListener(this);
             mPasswordEntry.addTextChangedListener(this);
diff --git a/src/com/android/settings/password/PasswordRequirementAdapter.java b/src/com/android/settings/password/PasswordRequirementAdapter.java
index a4d349e..0d8f02e 100644
--- a/src/com/android/settings/password/PasswordRequirementAdapter.java
+++ b/src/com/android/settings/password/PasswordRequirementAdapter.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.password;
 
+import android.annotation.NonNull;
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -64,6 +65,11 @@
     }
 
     @Override
+    public void onViewAttachedToWindow(@NonNull PasswordRequirementViewHolder holder) {
+        holder.mDescriptionText.announceForAccessibility(holder.mDescriptionText.getText());
+    }
+
+    @Override
     public void onBindViewHolder(PasswordRequirementViewHolder holder, int position) {
         final int fontSize = mContext.getResources().getDimensionPixelSize(
                 R.dimen.password_requirement_font_size);
diff --git a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
index 72a57ed..35e99a7 100644
--- a/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
+++ b/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProvider.kt
@@ -122,7 +122,7 @@
 
 data class UserAspectRatioAppListItemModel(
     override val app: ApplicationInfo,
-    val override: Int,
+    val userOverride: Int,
     val suggested: Boolean,
     val canDisplay: Boolean,
 ) : AppRecord
@@ -137,7 +137,7 @@
         recordList: List<UserAspectRatioAppListItemModel>
     ): List<SpinnerOption> {
         val hasSuggested = recordList.any { it.suggested }
-        val hasOverride = recordList.any { it.override != USER_MIN_ASPECT_RATIO_UNSET }
+        val hasOverride = recordList.any { it.userOverride != USER_MIN_ASPECT_RATIO_UNSET }
         val options = mutableListOf(SpinnerItem.All)
         // Add suggested filter first as default
         if (hasSuggested) options.add(0, SpinnerItem.Suggested)
@@ -165,7 +165,7 @@
                     app = app,
                     suggested = !app.isSystemApp && getPackageAndActivityInfo(
                                     app)?.isFixedOrientationOrAspectRatio() == true,
-                    override = userAspectRatioManager.getUserMinAspectRatioValue(
+                    userOverride = userAspectRatioManager.getUserMinAspectRatioValue(
                                     app.packageName, uid),
                     canDisplay = userAspectRatioManager.canDisplayAspectRatioUi(app),
                 )
@@ -179,7 +179,7 @@
     ): Flow<List<UserAspectRatioAppListItemModel>> = recordListFlow.filterItem(
         when (SpinnerItem.values().getOrNull(option)) {
             SpinnerItem.Suggested -> ({ it.canDisplay && it.suggested })
-            SpinnerItem.Overridden -> ({ it.override != USER_MIN_ASPECT_RATIO_UNSET })
+            SpinnerItem.Overridden -> ({ it.userOverride != USER_MIN_ASPECT_RATIO_UNSET })
             else -> ({ it.canDisplay })
         }
     )
@@ -187,9 +187,10 @@
     @OptIn(ExperimentalLifecycleComposeApi::class)
     @Composable
     override fun getSummary(option: Int, record: UserAspectRatioAppListItemModel) : State<String> =
-        remember(record.override) {
+        remember(record.userOverride) {
             flow {
-                emit(userAspectRatioManager.getUserMinAspectRatioEntry(record.override))
+                emit(userAspectRatioManager.getUserMinAspectRatioEntry(record.userOverride,
+                    record.app.packageName))
             }.flowOn(Dispatchers.IO)
         }.collectAsStateWithLifecycle(initialValue = stringResource(R.string.summary_placeholder))
 
diff --git a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
index c61cf51..3f0d62f 100644
--- a/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
+++ b/src/com/android/settings/wifi/factory/WifiFeatureProvider.java
@@ -26,6 +26,7 @@
 import androidx.lifecycle.ViewModelProvider;
 import androidx.lifecycle.ViewModelStoreOwner;
 
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
 import com.android.settings.wifi.repository.WifiHotspotRepository;
 import com.android.settings.wifi.tether.WifiHotspotSecurityViewModel;
 import com.android.settings.wifi.tether.WifiHotspotSpeedViewModel;
@@ -44,6 +45,7 @@
     private TetheringManager mTetheringManager;
     private WifiVerboseLogging mWifiVerboseLogging;
     private WifiHotspotRepository mWifiHotspotRepository;
+    private SharedConnectivityRepository mSharedConnectivityRepository;
 
     public WifiFeatureProvider(@NonNull Context appContext) {
         mAppContext = appContext;
@@ -93,6 +95,17 @@
     }
 
     /**
+     * Gets SharedConnectivityRepository
+     */
+    public SharedConnectivityRepository getSharedConnectivityRepository() {
+        if (mSharedConnectivityRepository == null) {
+            mSharedConnectivityRepository = new SharedConnectivityRepository(mAppContext);
+            verboseLog(TAG, "getSharedConnectivityRepository():" + mSharedConnectivityRepository);
+        }
+        return mSharedConnectivityRepository;
+    }
+
+    /**
      * Gets WifiTetherViewModel
      */
     public WifiTetherViewModel getWifiTetherViewModel(@NotNull ViewModelStoreOwner owner) {
diff --git a/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
new file mode 100644
index 0000000..5daa5f3
--- /dev/null
+++ b/src/com/android/settings/wifi/repository/SharedConnectivityRepository.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi.repository;
+
+import android.app.PendingIntent;
+import android.content.Context;
+import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
+import android.net.wifi.sharedconnectivity.app.HotspotNetworkConnectionStatus;
+import android.net.wifi.sharedconnectivity.app.KnownNetwork;
+import android.net.wifi.sharedconnectivity.app.KnownNetworkConnectionStatus;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
+import android.os.HandlerThread;
+import android.provider.DeviceConfig;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.VisibleForTesting;
+import androidx.annotation.WorkerThread;
+import androidx.lifecycle.LiveData;
+import androidx.lifecycle.MutableLiveData;
+
+import com.android.settings.overlay.FeatureFactory;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+
+/**
+ * Shared Connectivity Repository for {@link SharedConnectivityManager}
+ */
+public class SharedConnectivityRepository {
+    private static final String TAG = "SharedConnectivityRepository";
+    private static final String DEVICE_CONFIG_NAMESPACE = "wifi";
+    private static final String DEVICE_CONFIG_KEY = "shared_connectivity_enabled";
+
+    private Context mAppContext;
+    private SharedConnectivityManager mManager;
+    private ClientCallback mClientCallback = new ClientCallback();
+    private HandlerThread mWorkerThread = new HandlerThread(TAG);
+    private Executor mWorkerExecutor = cmd -> mWorkerThread.getThreadHandler().post(cmd);
+    private Runnable mLaunchSettingsRunnable = () -> handleLaunchSettings();
+    @VisibleForTesting
+    MutableLiveData<SharedConnectivitySettingsState> mSettingsState = new MutableLiveData<>();
+
+    public SharedConnectivityRepository(@NonNull Context appContext) {
+        this(appContext,
+                DeviceConfig.getBoolean(DEVICE_CONFIG_NAMESPACE, DEVICE_CONFIG_KEY, false));
+    }
+
+    @VisibleForTesting
+    SharedConnectivityRepository(@NonNull Context appContext, boolean isConfigEnabled) {
+        mAppContext = appContext;
+        if (!isConfigEnabled) {
+            return;
+        }
+        mManager = mAppContext.getSystemService(SharedConnectivityManager.class);
+        if (mManager == null) {
+            Log.w(TAG, "Failed to get SharedConnectivityManager");
+            return;
+        }
+        mWorkerThread.start();
+        mManager.registerCallback(mWorkerExecutor, mClientCallback);
+    }
+
+    /**
+     * Return whether Wi-Fi Shared Connectivity service is available or not.
+     *
+     * @return {@code true} if Wi-Fi Shared Connectivity service is available
+     */
+    public boolean isServiceAvailable() {
+        return mManager != null;
+    }
+
+    /**
+     * Gets SharedConnectivitySettingsState LiveData
+     */
+    public LiveData<SharedConnectivitySettingsState> getSettingsState() {
+        return mSettingsState;
+    }
+
+    /**
+     * Launch Instant Hotspot Settings
+     */
+    public void launchSettings() {
+        mWorkerExecutor.execute(mLaunchSettingsRunnable);
+    }
+
+    @WorkerThread
+    @VisibleForTesting
+    void handleLaunchSettings() {
+        if (mManager == null) {
+            return;
+        }
+        SharedConnectivitySettingsState state = mManager.getSettingsState();
+        log("handleLaunchSettings(), state:" + state);
+        if (state == null) {
+            Log.e(TAG, "No SettingsState to launch Instant Hotspot settings");
+            return;
+        }
+        PendingIntent intent = state.getInstantTetherSettingsPendingIntent();
+        if (intent == null) {
+            Log.e(TAG, "No PendingIntent to launch Instant Hotspot settings");
+            return;
+        }
+        sendSettingsIntent(intent);
+    }
+
+    @WorkerThread
+    @VisibleForTesting
+    void sendSettingsIntent(@NonNull PendingIntent intent) {
+        try {
+            log("sendSettingsIntent(), sent intent:" + intent);
+            intent.send();
+        } catch (PendingIntent.CanceledException e) {
+            Log.e(TAG, "Failed to launch Instant Hotspot settings", e);
+        }
+    }
+
+    @WorkerThread
+    class ClientCallback implements SharedConnectivityClientCallback {
+
+        @Override
+        public void onHotspotNetworkConnectionStatusChanged(HotspotNetworkConnectionStatus status) {
+            log("onHotspotNetworkConnectionStatusChanged(), status:" + status);
+        }
+
+        @Override
+        public void onHotspotNetworksUpdated(List<HotspotNetwork> networks) {
+            log("onHotspotNetworksUpdated(), networks:" + networks);
+        }
+
+        @Override
+        public void onKnownNetworkConnectionStatusChanged(KnownNetworkConnectionStatus status) {
+            log("onKnownNetworkConnectionStatusChanged(), status:" + status);
+        }
+
+        @Override
+        public void onKnownNetworksUpdated(List<KnownNetwork> networks) {
+            log("onKnownNetworksUpdated(), networks:" + networks);
+        }
+
+        @Override
+        public void onRegisterCallbackFailed(Exception e) {
+            Log.e(TAG, "onRegisterCallbackFailed(), e:" + e);
+        }
+
+        @Override
+        public void onServiceConnected() {
+            SharedConnectivitySettingsState state = mManager.getSettingsState();
+            Log.d(TAG, "onServiceConnected(), Manager#getSettingsState:" + state);
+            mSettingsState.postValue(state);
+        }
+
+        @Override
+        public void onServiceDisconnected() {
+            log("onServiceDisconnected()");
+        }
+
+        @Override
+        public void onSharedConnectivitySettingsChanged(SharedConnectivitySettingsState state) {
+            Log.d(TAG, "onSharedConnectivitySettingsChanged(), state:" + state);
+            mSettingsState.postValue(state);
+        }
+    }
+
+    private void log(String msg) {
+        FeatureFactory.getFactory(mAppContext).getWifiFeatureProvider().verboseLog(TAG, msg);
+    }
+}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index d8c3908..fa897b7 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -76,6 +76,8 @@
     static final String KEY_WIFI_HOTSPOT_SECURITY = "wifi_hotspot_security";
     @VisibleForTesting
     static final String KEY_WIFI_HOTSPOT_SPEED = "wifi_hotspot_speed";
+    @VisibleForTesting
+    static final String KEY_INSTANT_HOTSPOT = "wifi_hotspot_instant";
 
     @VisibleForTesting
     SettingsMainSwitchBar mMainSwitchBar;
@@ -103,6 +105,8 @@
     Preference mWifiHotspotSecurity;
     @VisibleForTesting
     Preference mWifiHotspotSpeed;
+    @VisibleForTesting
+    Preference mInstantHotspot;
 
     static {
         TETHER_STATE_CHANGE_FILTER = new IntentFilter(WIFI_AP_STATE_CHANGED_ACTION);
@@ -148,6 +152,7 @@
                 .getWifiTetherViewModel(this);
         if (mWifiTetherViewModel != null) {
             setupSpeedFeature(mWifiTetherViewModel.isSpeedFeatureAvailable());
+            setupInstantHotspot(mWifiTetherViewModel.isInstantHotspotFeatureAvailable());
             mWifiTetherViewModel.getRestarting().observe(this, this::onRestartingChanged);
         }
     }
@@ -167,6 +172,24 @@
         }
     }
 
+    @VisibleForTesting
+    void setupInstantHotspot(boolean isFeatureAvailable) {
+        if (!isFeatureAvailable) {
+            return;
+        }
+        mInstantHotspot = findPreference(KEY_INSTANT_HOTSPOT);
+        if (mInstantHotspot == null) {
+            Log.e(TAG, "Failed to find Instant Hotspot preference:" + KEY_INSTANT_HOTSPOT);
+            return;
+        }
+        mWifiTetherViewModel.getInstantHotspotSummary()
+                .observe(this, this::onInstantHotspotChanged);
+        mInstantHotspot.setOnPreferenceClickListener(p -> {
+            mWifiTetherViewModel.launchInstantHotspotSettings();
+            return true;
+        });
+    }
+
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
@@ -279,6 +302,16 @@
     }
 
     @VisibleForTesting
+    void onInstantHotspotChanged(String summary) {
+        if (summary == null) {
+            mInstantHotspot.setVisible(false);
+            return;
+        }
+        mInstantHotspot.setVisible(true);
+        mInstantHotspot.setSummary(summary);
+    }
+
+    @VisibleForTesting
     SoftApConfiguration buildNewConfig() {
         SoftApConfiguration currentConfig = mWifiTetherViewModel.getSoftApConfiguration();
         SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder(currentConfig);
diff --git a/src/com/android/settings/wifi/tether/WifiTetherViewModel.java b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
index fb2160f..b0a18a8 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherViewModel.java
@@ -28,7 +28,9 @@
 
 import android.app.Application;
 import android.net.wifi.SoftApConfiguration;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
 
+import androidx.annotation.VisibleForTesting;
 import androidx.lifecycle.AndroidViewModel;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
@@ -36,6 +38,8 @@
 
 import com.android.settings.R;
 import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.wifi.factory.WifiFeatureProvider;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
 import com.android.settings.wifi.repository.WifiHotspotRepository;
 
 import org.jetbrains.annotations.NotNull;
@@ -48,6 +52,8 @@
  */
 public class WifiTetherViewModel extends AndroidViewModel {
     private static final String TAG = "WifiTetherViewModel";
+    static final int RES_INSTANT_HOTSPOT_SUMMARY_ON = R.string.wifi_hotspot_instant_summary_on;
+    static final int RES_INSTANT_HOTSPOT_SUMMARY_OFF = R.string.wifi_hotspot_instant_summary_off;
 
     static Map<Integer, Integer> sSecuritySummaryResMap = new HashMap<>();
 
@@ -75,10 +81,23 @@
     protected final Observer<Integer> mSecurityTypeObserver = st -> onSecurityTypeChanged(st);
     protected final Observer<Integer> mSpeedTypeObserver = st -> onSpeedTypeChanged(st);
 
+    private SharedConnectivityRepository mSharedConnectivityRepository;
+    @VisibleForTesting
+    MutableLiveData<String> mInstantHotspotSummary = new MutableLiveData<>();
+    @VisibleForTesting
+    Observer<SharedConnectivitySettingsState> mInstantHotspotStateObserver =
+            state -> onInstantHotspotStateChanged(state);
+
     public WifiTetherViewModel(@NotNull Application application) {
         super(application);
-        mWifiHotspotRepository = FeatureFactory.getFactory(application).getWifiFeatureProvider()
-                .getWifiHotspotRepository();
+        WifiFeatureProvider featureProvider = FeatureFactory.getFactory(application)
+                .getWifiFeatureProvider();
+        mWifiHotspotRepository = featureProvider.getWifiHotspotRepository();
+        mSharedConnectivityRepository = featureProvider.getSharedConnectivityRepository();
+        if (mSharedConnectivityRepository.isServiceAvailable()) {
+            mSharedConnectivityRepository.getSettingsState()
+                    .observeForever(mInstantHotspotStateObserver);
+        }
     }
 
     @Override
@@ -89,6 +108,10 @@
         if (mSpeedSummary != null) {
             mWifiHotspotRepository.getSpeedType().removeObserver(mSpeedTypeObserver);
         }
+        if (mSharedConnectivityRepository.isServiceAvailable()) {
+            mSharedConnectivityRepository.getSettingsState()
+                    .removeObserver(mInstantHotspotStateObserver);
+        }
     }
 
     /**
@@ -169,4 +192,47 @@
     public LiveData<Boolean> getRestarting() {
         return mWifiHotspotRepository.getRestarting();
     }
+
+    /**
+     * Return whether Wi-Fi Instant Hotspot feature is available or not.
+     *
+     * @return {@code true} if Wi-Fi Instant Hotspot feature is available
+     */
+    public boolean isInstantHotspotFeatureAvailable() {
+        return mSharedConnectivityRepository.isServiceAvailable();
+    }
+
+    /**
+     * Gets InstantHotspotSummary
+     */
+    public LiveData<String> getInstantHotspotSummary() {
+        return mInstantHotspotSummary;
+    }
+
+    @VisibleForTesting
+    void onInstantHotspotStateChanged(SharedConnectivitySettingsState state) {
+        log("onInstantHotspotStateChanged(), state:" + state);
+        if (state == null) {
+            mInstantHotspotSummary.setValue(null);
+            return;
+        }
+        mInstantHotspotSummary.setValue(getInstantHotspotSummary(state.isInstantTetherEnabled()));
+    }
+
+    private String getInstantHotspotSummary(boolean enabled) {
+        return getApplication().getString(
+                enabled ? RES_INSTANT_HOTSPOT_SUMMARY_ON : RES_INSTANT_HOTSPOT_SUMMARY_OFF);
+    }
+
+    /**
+     * Launch Instant Hotspot Settings
+     */
+    public void launchInstantHotspotSettings() {
+        mSharedConnectivityRepository.launchSettings();
+    }
+
+    private void log(String msg) {
+        FeatureFactory.getFactory(getApplication().getApplicationContext()).getWifiFeatureProvider()
+                .verboseLog(TAG, msg);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
new file mode 100644
index 0000000..5f56fa7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceSettingsRemoveButtonPreferenceControllerTest.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2023 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.biometrics.face;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.face.FaceManager;
+
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.biometrics.face.FaceSettingsRemoveButtonPreferenceController.ConfirmRemoveDialog;
+import com.android.settings.testutils.shadow.ShadowUserManager;
+import com.android.settingslib.widget.LayoutPreference;
+
+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;
+import org.robolectric.Robolectric;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowApplication;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {ShadowUserManager.class})
+public class FaceSettingsRemoveButtonPreferenceControllerTest {
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+
+    private static final String TEST_PREF_KEY = "baz";
+
+    @Mock
+    private FaceManager mFaceManager;
+    @Mock
+    private PackageManager mPackageManager;
+    private SettingsActivity mActivity;
+    private Context mContext;
+    private FaceSettingsRemoveButtonPreferenceController mController;
+    private LayoutPreference mPreference;
+
+    @Before
+    public void setUp() {
+        mContext = spy(RuntimeEnvironment.application);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_FACE)).thenReturn(true);
+        ShadowApplication.getInstance().setSystemService(Context.FACE_SERVICE, mFaceManager);
+
+        mPreference = new LayoutPreference(mContext, R.layout.face_remove_button);
+        mController = new FaceSettingsRemoveButtonPreferenceController(mContext, TEST_PREF_KEY);
+
+        mActivity = spy(Robolectric.buildActivity(SettingsActivity.class).create().get());
+        mController.setActivity(mActivity);
+    }
+
+    @Test
+    public void testRotationConfirmRemoveDialog() {
+        // mController calls onClick(), the dialog is created.
+        mController.updateState(mPreference);
+        assertThat(mController.mRemoving).isFalse();
+
+        mController.onClick(
+                mPreference.findViewById(R.id.security_settings_face_settings_remove_button));
+
+        ConfirmRemoveDialog removeDialog =
+                (ConfirmRemoveDialog) mActivity.getSupportFragmentManager()
+                        .findFragmentByTag(ConfirmRemoveDialog.class.getName());
+        assertThat(removeDialog).isNotNull();
+        assertThat(mController.mRemoving).isTrue();
+
+
+        // Simulate rotation, a new controller mController2 is created and updateState() is called.
+        // Since the dialog hasn't been dismissed, so mController2.mRemoving should be true
+        FaceSettingsRemoveButtonPreferenceController controller2 =
+                new FaceSettingsRemoveButtonPreferenceController(mContext, TEST_PREF_KEY);
+        controller2.setActivity(mActivity);
+        assertThat(controller2.mRemoving).isFalse();
+        controller2.updateState(mPreference);
+        assertThat(controller2.mRemoving).isTrue();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
index ccaefb2..03279ee 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/stylus/UsbStylusBroadcastReceiverTest.java
@@ -95,4 +95,32 @@
 
         verifyNoMoreInteractions(mListener);
     }
+
+    @Test
+    public void onReceive_usbDeviceStateStylus_invokeCallback() {
+        when(mFeatureFactory.mStylusFeatureProvider.isUsbFirmwareUpdateEnabled(any()))
+                .thenReturn(true);
+        final UsbDevice usbDevice = mock(UsbDevice.class);
+        final Intent intent = new Intent();
+        intent.setAction(UsbManager.ACTION_USB_STATE);
+        intent.putExtra(UsbManager.EXTRA_DEVICE, usbDevice);
+
+        mReceiver.onReceive(mContext, intent);
+
+        verify(mListener).onUsbStylusConnectionChanged(usbDevice, false);
+    }
+
+    @Test
+    public void onReceive_usbDeviceStateNotStylus_doesNotInvokeCallback() {
+        when(mFeatureFactory.mStylusFeatureProvider.isUsbFirmwareUpdateEnabled(any()))
+                .thenReturn(false);
+        final UsbDevice usbDevice = mock(UsbDevice.class);
+        final Intent intent = new Intent();
+        intent.setAction(UsbManager.ACTION_USB_STATE);
+        intent.putExtra(UsbManager.EXTRA_DEVICE, usbDevice);
+
+        mReceiver.onReceive(mContext, intent);
+
+        verifyNoMoreInteractions(mListener);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java
deleted file mode 100644
index 4b250a3..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/AppUsageDataLoaderTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge.batteryusage;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.content.Intent;
-import android.os.UserManager;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-@RunWith(RobolectricTestRunner.class)
-public final class AppUsageDataLoaderTest {
-    private Context mContext;
-    @Mock
-    private ContentResolver mMockContentResolver;
-    @Mock
-    private UserManager mUserManager;
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-        doReturn(mContext).when(mContext).getApplicationContext();
-        doReturn(mMockContentResolver).when(mContext).getContentResolver();
-        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
-        doReturn(new Intent()).when(mContext).registerReceiver(any(), any());
-    }
-
-    @Test
-    public void loadAppUsageData_withData_insertFakeDataIntoProvider() {
-        final List<AppUsageEvent> AppUsageEventList = new ArrayList<>();
-        final AppUsageEvent appUsageEvent = AppUsageEvent.newBuilder().setUid(0).build();
-        AppUsageEventList.add(appUsageEvent);
-        AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
-        AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> AppUsageEventList;
-
-        AppUsageDataLoader.loadAppUsageData(mContext);
-
-        verify(mMockContentResolver).bulkInsert(any(), any());
-        verify(mMockContentResolver).notifyChange(any(), any());
-    }
-
-    @Test
-    public void loadAppUsageData_nullAppUsageEvents_notInsertDataIntoProvider() {
-        AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> null;
-
-        AppUsageDataLoader.loadAppUsageData(mContext);
-
-        verifyNoMoreInteractions(mMockContentResolver);
-    }
-
-    @Test
-    public void loadAppUsageData_nullUsageEventsList_notInsertDataIntoProvider() {
-        AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
-        AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> null;
-
-        AppUsageDataLoader.loadAppUsageData(mContext);
-
-        verifyNoMoreInteractions(mMockContentResolver);
-    }
-
-    @Test
-    public void loadAppUsageData_emptyUsageEventsList_notInsertDataIntoProvider() {
-        AppUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
-        AppUsageDataLoader.sFakeUsageEventsListSupplier = () -> new ArrayList<>();
-
-        AppUsageDataLoader.loadAppUsageData(mContext);
-
-        verifyNoMoreInteractions(mMockContentResolver);
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
index e1c193c..a54d4c1 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryChartPreferenceControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import static com.android.settings.fuelgauge.batteryusage.BatteryChartViewModel.SELECTED_INDEX_ALL;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyFloat;
@@ -30,7 +32,6 @@
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 
-import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
@@ -39,6 +40,7 @@
 import android.os.LocaleList;
 import android.os.UserManager;
 import android.text.format.DateUtils;
+import android.util.ArrayMap;
 import android.view.View;
 import android.view.ViewPropertyAnimator;
 import android.widget.LinearLayout;
@@ -54,7 +56,6 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -112,6 +113,7 @@
         mBatteryChartPreferenceController.mPrefContext = mContext;
         mBatteryChartPreferenceController.mDailyChartView = mDailyChartView;
         mBatteryChartPreferenceController.mHourlyChartView = mHourlyChartView;
+        BatteryDiffEntry.clearCache();
         // Adds fake testing data.
         BatteryDiffEntry.sResourceCache.put(
                 "fakeBatteryDiffEntryKey",
@@ -144,7 +146,7 @@
         reset(mHourlyChartView);
         setupHourlyChartViewAnimationMock();
 
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
 
         verify(mDailyChartView, atLeastOnce()).setVisibility(View.GONE);
         // Ignore fast refresh ui from the data processor callback.
@@ -176,16 +178,18 @@
                 BatteryChartViewModel.AxisLabelPosition.CENTER_OF_TRAPEZOIDS,
                 mBatteryChartPreferenceController.mDailyChartLabelTextGenerator);
 
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
+        mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
 
         verify(mDailyChartView, atLeastOnce()).setVisibility(View.VISIBLE);
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(0f);
-        verify(mDailyChartView).setViewModel(expectedDailyViewModel);
+        verify(mDailyChartView, atLeastOnce()).setViewModel(expectedDailyViewModel);
 
         reset(mDailyChartView);
         reset(mHourlyChartView);
         setupHourlyChartViewAnimationMock();
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
+        doReturn(View.GONE).when(mHourlyChartView).getVisibility();
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
@@ -245,8 +249,7 @@
         setupHourlyChartViewAnimationMock();
         doReturn(mLayoutParams).when(mDailyChartView).getLayoutParams();
         mBatteryChartPreferenceController.mDailyChartIndex = 2;
-        mBatteryChartPreferenceController.mHourlyChartIndex =
-                BatteryChartViewModel.SELECTED_INDEX_ALL;
+        mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
         mBatteryChartPreferenceController.refreshUi();
         verify(mDailyChartView).setVisibility(View.VISIBLE);
         verify(mViewPropertyAnimator, atLeastOnce()).alpha(1f);
@@ -272,13 +275,15 @@
 
     @Test
     public void refreshUi_normalCase_returnTrue() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
+        mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
         assertThat(mBatteryChartPreferenceController.refreshUi()).isTrue();
     }
 
     @Test
     public void refreshUi_batteryIndexedMapIsNull_returnTrue() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(null);
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(null);
+        mBatteryChartPreferenceController.onBatteryUsageMapUpdate(getEmptyBatteryUsageMap());
         assertThat(mBatteryChartPreferenceController.refreshUi()).isTrue();
     }
 
@@ -296,38 +301,34 @@
 
     @Test
     public void selectedSlotText_selectAllDaysAllHours_returnNull() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
-        mBatteryChartPreferenceController.mDailyChartIndex =
-                BatteryChartViewModel.SELECTED_INDEX_ALL;
-        mBatteryChartPreferenceController.mHourlyChartIndex =
-                BatteryChartViewModel.SELECTED_INDEX_ALL;
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
+        mBatteryChartPreferenceController.mDailyChartIndex = SELECTED_INDEX_ALL;
+        mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
     }
 
     @Test
     public void selectedSlotText_onlyOneDayDataSelectAllHours_returnNull() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
-        mBatteryChartPreferenceController.mHourlyChartIndex =
-                BatteryChartViewModel.SELECTED_INDEX_ALL;
+        mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo(null);
     }
 
     @Test
     public void selectedSlotText_selectADayAllHours_onlyDayText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
         mBatteryChartPreferenceController.mDailyChartIndex = 1;
-        mBatteryChartPreferenceController.mHourlyChartIndex =
-                BatteryChartViewModel.SELECTED_INDEX_ALL;
+        mBatteryChartPreferenceController.mHourlyChartIndex = SELECTED_INDEX_ALL;
 
         assertThat(mBatteryChartPreferenceController.getSlotInformation()).isEqualTo("Sunday");
     }
 
     @Test
     public void selectedSlotText_onlyOneDayDataSelectAnHour_onlyHourText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 2;
 
@@ -337,7 +338,7 @@
 
     @Test
     public void selectedSlotText_SelectADayAnHour_dayAndHourText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(60));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(60));
         mBatteryChartPreferenceController.mDailyChartIndex = 1;
         mBatteryChartPreferenceController.mHourlyChartIndex = 8;
 
@@ -347,7 +348,7 @@
 
     @Test
     public void selectedSlotText_selectFirstSlot_withMinuteText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
@@ -357,7 +358,7 @@
 
     @Test
     public void selectedSlotText_selectLastSlot_withNowText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(6));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(6));
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 3;
 
@@ -367,7 +368,7 @@
 
     @Test
     public void selectedSlotText_selectOnlySlot_withMinuteAndNowText() {
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(1));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(1));
         mBatteryChartPreferenceController.mDailyChartIndex = 0;
         mBatteryChartPreferenceController.mHourlyChartIndex = 0;
 
@@ -388,7 +389,7 @@
         mBatteryChartPreferenceController.mHourlyChartIndex = -1;
 
         mBatteryChartPreferenceController.onCreate(bundle);
-        mBatteryChartPreferenceController.setBatteryHistoryMap(createBatteryHistoryMap(25));
+        mBatteryChartPreferenceController.onBatteryLevelDataUpdate(createBatteryLevelData(25));
 
         assertThat(mBatteryChartPreferenceController.mDailyChartIndex)
                 .isEqualTo(expectedDailyIndex);
@@ -398,9 +399,7 @@
 
     @Test
     public void getTotalHours_getExpectedResult() {
-        Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = createBatteryHistoryMap(60);
-        BatteryLevelData batteryLevelData =
-                DataProcessManager.getBatteryLevelData(mContext, null, batteryHistoryMap, null);
+        BatteryLevelData batteryLevelData = createBatteryLevelData(60);
 
         final int totalHour = BatteryChartPreferenceController.getTotalHours(batteryLevelData);
 
@@ -413,37 +412,26 @@
         return 1619247600000L + index * DateUtils.HOUR_IN_MILLIS;
     }
 
-    private static Map<Long, Map<String, BatteryHistEntry>> createBatteryHistoryMap(
-            int numOfHours) {
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
-        for (int index = 0; index < numOfHours; index++) {
-            final ContentValues values = new ContentValues();
-            final DeviceBatteryState deviceBatteryState =
-                    DeviceBatteryState
-                            .newBuilder()
-                            .setBatteryLevel(100 - index)
-                            .build();
-            final BatteryInformation batteryInformation =
-                    BatteryInformation
-                            .newBuilder()
-                            .setDeviceBatteryState(deviceBatteryState)
-                            .setConsumePower(100 - index)
-                            .build();
-            values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
-                    ConvertUtils.convertBatteryInformationToString(batteryInformation));
-            values.put(BatteryHistEntry.KEY_PACKAGE_NAME, "package" + index);
-            final BatteryHistEntry entry = new BatteryHistEntry(values);
-            final Map<String, BatteryHistEntry> entryMap = new HashMap<>();
-            entryMap.put("fake_entry_key" + index, entry);
-            long timestamp = generateTimestamp(index);
+    private static BatteryLevelData createBatteryLevelData(int numOfHours) {
+        Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+        for (int index = 0; index < numOfHours; index += 2) {
+            final Integer level = 100 - index;
+            Long timestamp = generateTimestamp(index);
             if (index == 0) {
                 timestamp += DateUtils.MINUTE_IN_MILLIS;
+                index--;
             }
-            batteryHistoryMap.put(timestamp, entryMap);
+            batteryLevelMap.put(timestamp, level);
         }
-        DataProcessor.sTestCurrentTimeMillis =
-                generateTimestamp(numOfHours - 1) + DateUtils.MINUTE_IN_MILLIS * 2;
-        return batteryHistoryMap;
+        long current = generateTimestamp(numOfHours - 1) + DateUtils.MINUTE_IN_MILLIS * 2;
+        batteryLevelMap.put(current, 66);
+        DataProcessor.sTestCurrentTimeMillis = current;
+        return new BatteryLevelData(batteryLevelMap);
+    }
+
+    private static Map<Integer, Map<Integer, BatteryDiffData>> getEmptyBatteryUsageMap() {
+        return Map.of(SELECTED_INDEX_ALL, Map.of(SELECTED_INDEX_ALL, new BatteryDiffData(
+                null, 0, 0, 0, 0, 0, List.of(), List.of(), Set.of(), Set.of(), false)));
     }
 
     private BatteryChartPreferenceController createController() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
index 27539a5..d4bae29 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
@@ -147,6 +147,14 @@
                 /*foregroundUsageTimeInMs=*/ 0L,  /*backgroundUsageTimeInMs=*/ 0L, isHidden);
         return new BatteryDiffEntry(
                 context,
+                batteryHistEntry.mUid,
+                batteryHistEntry.mUserId,
+                batteryHistEntry.getKey(),
+                batteryHistEntry.mIsHidden,
+                batteryHistEntry.mDrainType,
+                batteryHistEntry.mPackageName,
+                batteryHistEntry.mAppLabel,
+                batteryHistEntry.mConsumerType,
                 /*foregroundUsageTimeInMs=*/ 0,
                 /*backgroundUsageTimeInMs=*/ 0,
                 /*screenOnTimeInMs=*/ 0,
@@ -154,8 +162,7 @@
                 /*foregroundUsageConsumePower=*/ 0,
                 /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0,
-                batteryHistEntry);
+                /*cachedUsageConsumePower=*/ 0);
     }
 
     private static BatteryHistEntry createBatteryHistEntry(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
index 655f1e4..9bb4b73 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
@@ -95,6 +95,14 @@
         final BatteryDiffEntry entry =
                 new BatteryDiffEntry(
                         mContext,
+                        /*uid=*/ 0,
+                        /*userId=*/ 0,
+                        /*key=*/ "key",
+                        /*isHidden=*/ false,
+                        /*componentId=*/ -1,
+                        /*legacyPackageName=*/ null,
+                        /*legacyLabel=*/ null,
+                        /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
                         /*foregroundUsageTimeInMs=*/ 10001L,
                         /*backgroundUsageTimeInMs=*/ 20002L,
                         /*screenOnTimeInMs=*/ 30003L,
@@ -102,8 +110,7 @@
                         /*foregroundUsageConsumePower=*/ 10.0,
                         /*foregroundServiceUsageConsumePower=*/ 10.0,
                         /*backgroundUsageConsumePower=*/ 1.0,
-                        /*cachedUsageConsumePower=*/ 1.0,
-                        /*batteryHistEntry=*/ null);
+                        /*cachedUsageConsumePower=*/ 1.0);
         entry.setTotalConsumePower(100.0);
 
         assertThat(entry.getPercentage()).isEqualTo(22.0);
@@ -114,6 +121,14 @@
         final BatteryDiffEntry entry =
                 new BatteryDiffEntry(
                         mContext,
+                        /*uid=*/ 0,
+                        /*userId=*/ 0,
+                        /*key=*/ "key",
+                        /*isHidden=*/ false,
+                        /*componentId=*/ -1,
+                        /*legacyPackageName=*/ null,
+                        /*legacyLabel=*/ null,
+                        /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
                         /*foregroundUsageTimeInMs=*/ 10001L,
                         /*backgroundUsageTimeInMs=*/ 20002L,
                         /*screenOnTimeInMs=*/ 30003L,
@@ -121,8 +136,7 @@
                         /*foregroundUsageConsumePower=*/ 10.0,
                         /*foregroundServiceUsageConsumePower=*/ 10.0,
                         /*backgroundUsageConsumePower=*/ 1.0,
-                        /*cachedUsageConsumePower=*/ 1.0,
-                        /*batteryHistEntry=*/ null);
+                        /*cachedUsageConsumePower=*/ 1.0);
         entry.setTotalConsumePower(0);
 
         assertThat(entry.getPercentage()).isEqualTo(0);
@@ -133,7 +147,24 @@
         final List<BatteryDiffEntry> entryList = new ArrayList<>();
         // Generates fake testing data.
         BatteryDiffEntry systemAppsBatteryDiffEntry =
-                new BatteryDiffEntry.SystemAppsBatteryDiffEntry(mContext);
+                new BatteryDiffEntry(
+                        mContext,
+                        /*uid=*/ 0,
+                        /*userId=*/ 0,
+                        /*key=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+                        /*isHidden=*/ false,
+                        /*componentId=*/ -1,
+                        /*legacyPackageName=*/ null,
+                        /*legacyLabel=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+                        /*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+                        /*foregroundUsageTimeInMs=*/ 0,
+                        /*backgroundUsageTimeInMs=*/ 0,
+                        /*screenOnTimeInMs=*/ 0,
+                        /*consumePower=*/ 0,
+                        /*foregroundUsageConsumePower=*/ 0,
+                        /*foregroundServiceUsageConsumePower=*/ 0,
+                        /*backgroundUsageConsumePower=*/ 0,
+                        /*cachedUsageConsumePower=*/ 0);
         systemAppsBatteryDiffEntry.mConsumePower = 16;
         systemAppsBatteryDiffEntry.setTotalConsumePower(100);
         entryList.add(systemAppsBatteryDiffEntry);
@@ -448,17 +479,16 @@
 
     private BatteryDiffEntry createBatteryDiffEntry(
             int consumerType, long uid, boolean isHidden) {
-        final ContentValues values = getContentValuesWithType(consumerType);
-        final BatteryInformation batteryInformation =
-                BatteryInformation
-                        .newBuilder()
-                        .setIsHidden(isHidden)
-                        .build();
-        values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
-                ConvertUtils.convertBatteryInformationToString(batteryInformation));
-        values.put(BatteryHistEntry.KEY_UID, uid);
         return new BatteryDiffEntry(
                 mContext,
+                /*uid=*/ uid,
+                /*userId=*/ 0,
+                /*key=*/ "key",
+                /*isHidden=*/ isHidden,
+                /*componentId=*/ -1,
+                /*legacyPackageName=*/ null,
+                /*legacyLabel=*/ null,
+                /*consumerType*/ consumerType,
                 /*foregroundUsageTimeInMs=*/ 0,
                 /*backgroundUsageTimeInMs=*/ 0,
                 /*screenOnTimeInMs=*/ 0,
@@ -466,14 +496,21 @@
                 /*foregroundUsageConsumePower=*/ 0,
                 /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0,
-                new BatteryHistEntry(values));
+                /*cachedUsageConsumePower=*/ 0);
     }
 
     private BatteryDiffEntry createBatteryDiffEntry(
             double consumePower, BatteryHistEntry batteryHistEntry) {
         final BatteryDiffEntry entry = new BatteryDiffEntry(
                 mContext,
+                batteryHistEntry.mUid,
+                batteryHistEntry.mUserId,
+                batteryHistEntry.getKey(),
+                batteryHistEntry.mIsHidden,
+                batteryHistEntry.mDrainType,
+                batteryHistEntry.mPackageName,
+                batteryHistEntry.mAppLabel,
+                batteryHistEntry.mConsumerType,
                 /*foregroundUsageTimeInMs=*/ 0,
                 /*backgroundUsageTimeInMs=*/ 0,
                 /*screenOnTimeInMs=*/ 0,
@@ -481,8 +518,7 @@
                 /*foregroundUsageConsumePower=*/ 0,
                 /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0,
-                batteryHistEntry);
+                /*cachedUsageConsumePower=*/ 0);
         entry.setTotalConsumePower(100.0);
         return entry;
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
index 9667760..609f2fc 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistEntryTest.java
@@ -15,6 +15,10 @@
  */
 package com.android.settings.fuelgauge.batteryusage;
 
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isSystemConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUidConsumer;
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.isUserConsumer;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.when;
@@ -147,32 +151,32 @@
 
     @Test
     public void testIsAppEntry_returnExpectedResult() {
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isAppEntry())
-                .isFalse();
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isAppEntry())
-                .isFalse();
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isAppEntry())
-                .isTrue();
+        assertThat(isUidConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
+        assertThat(isUidConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
+        assertThat(isUidConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isTrue();
     }
 
     @Test
     public void testIsUserEntry_returnExpectedResult() {
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).isUserEntry())
-                .isFalse();
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).isUserEntry())
-                .isTrue();
-        assertThat(createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).isUserEntry())
-                .isFalse();
+        assertThat(isUserConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isFalse();
+        assertThat(isUserConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isTrue();
+        assertThat(isUserConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).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();
+        assertThat(isSystemConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY).mConsumerType)).isTrue();
+        assertThat(isSystemConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_USER_BATTERY).mConsumerType)).isFalse();
+        assertThat(isSystemConsumer(
+                createEntry(ConvertUtils.CONSUMER_TYPE_UID_BATTERY).mConsumerType)).isFalse();
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
index e14ead5..9155c66 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryHistoryPreferenceTest.java
@@ -27,7 +27,6 @@
 import androidx.preference.PreferenceViewHolder;
 
 import com.android.settings.R;
-import com.android.settings.fuelgauge.BatteryInfo;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -42,8 +41,6 @@
     @Mock
     private PreferenceViewHolder mViewHolder;
     @Mock
-    private BatteryInfo mBatteryInfo;
-    @Mock
     private TextView mTextView;
     @Mock
     private BatteryChartView mDailyChartView;
@@ -59,7 +56,6 @@
                 LayoutInflater.from(context).inflate(R.layout.battery_chart_graph, null);
 
         mBatteryHistoryPreference = new BatteryHistoryPreference(context, null);
-        mBatteryHistoryPreference.mBatteryInfo = mBatteryInfo;
         mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(itemView));
         when(mViewHolder.findViewById(R.id.daily_battery_chart)).thenReturn(mDailyChartView);
         when(mViewHolder.findViewById(R.id.hourly_battery_chart)).thenReturn(mHourlyChartView);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
new file mode 100644
index 0000000..13d60bb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryLevelDataTest.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+import java.util.Map;
+import java.util.TimeZone;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatteryLevelDataTest {
+
+    @Before
+    public void setUp() {
+        TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
+    }
+
+    @Test
+    public void getDailyTimestamps_allDataInOneHour_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1640970006000L, // 2022-01-01 01:00:06
+                1640973608000L  // 2022-01-01 01:00:08
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1640970006000L, // 2022-01-01 01:00:06
+                1640973608000L  // 2022-01-01 01:00:08
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_OneHourDataPerDay_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1641049200000L, // 2022-01-01 23:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641056400000L  // 2022-01-02 01:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1641049200000L, // 2022-01-01 23:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641056400000L  // 2022-01-02 01:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_OneDayData_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1640966400000L, // 2022-01-01 00:00:00
+                1640970000000L, // 2022-01-01 01:00:00
+                1640973600000L, // 2022-01-01 02:00:00
+                1640977200000L, // 2022-01-01 03:00:00
+                1640980800000L  // 2022-01-01 04:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1640966400000L, // 2022-01-01 00:00:00
+                1640980800000L  // 2022-01-01 04:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1641045600000L, // 2022-01-01 22:00:00
+                1641060000000L, // 2022-01-02 02:00:00
+                1641160800000L, // 2022-01-03 06:00:00
+                1641232800000L  // 2022-01-04 02:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1641045600000L, // 2022-01-01 22:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641139200000L, // 2022-01-03 00:00:00
+                1641225600000L, // 2022-01-04 00:00:00
+                1641232800000L  // 2022-01-04 02:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_FirstDayOneHourData_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1641049200000L, // 2022-01-01 23:00:00
+                1641060000000L, // 2022-01-02 02:00:00
+                1641160800000L, // 2022-01-03 06:00:00
+                1641254400000L  // 2022-01-04 08:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1641049200000L, // 2022-01-01 23:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641139200000L, // 2022-01-03 00:00:00
+                1641225600000L, // 2022-01-04 00:00:00
+                1641254400000L  // 2022-01-04 08:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_LastDayNoData_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1640988000000L, // 2022-01-01 06:00:00
+                1641060000000L, // 2022-01-02 02:00:00
+                1641160800000L, // 2022-01-03 06:00:00
+                1641225600000L  // 2022-01-04 00:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1640988000000L, // 2022-01-01 06:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641139200000L, // 2022-01-03 00:00:00
+                1641225600000L  // 2022-01-04 00:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void getDailyTimestamps_LastDayOneHourData_returnExpectedList() {
+        // Timezone GMT+8
+        final List<Long> timestamps = List.of(
+                1640988000000L, // 2022-01-01 06:00:00
+                1641060000000L, // 2022-01-02 02:00:00
+                1641160800000L, // 2022-01-03 06:00:00
+                1641229200000L  // 2022-01-04 01:00:00
+        );
+
+        final List<Long> expectedTimestamps = List.of(
+                1640988000000L, // 2022-01-01 06:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+                1641139200000L, // 2022-01-03 00:00:00
+                1641225600000L, // 2022-01-04 00:00:00
+                1641229200000L  // 2022-01-04 01:00:00
+        );
+        assertThat(BatteryLevelData.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
+    }
+
+    @Test
+    public void combine_normalFlow_returnExpectedResult() {
+        final BatteryLevelData batteryLevelData =
+                new BatteryLevelData(Map.of(1691596800000L, 90, 1691604000000L, 80));
+        final List<BatteryEvent> batteryLevelRecordEvents = List.of(
+                BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
+                        .setType(BatteryEventType.FULL_CHARGED).build(),
+                BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
+                        .setType(BatteryEventType.EVEN_HOUR).build());
+
+        BatteryLevelData result =
+                BatteryLevelData.combine(batteryLevelData, batteryLevelRecordEvents);
+
+        assertThat(result.getDailyBatteryLevels().getTimestamps())
+                .isEqualTo(List.of(1691586000166L, 1691596800000L, 1691604000000L));
+        assertThat(result.getDailyBatteryLevels().getLevels())
+                .isEqualTo(List.of(100, 90, 80));
+        assertThat(result.getHourlyBatteryLevelsPerDay())
+                .hasSize(2);
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
+                .isEqualTo(List.of(1691586000166L, 1691589600000L, 1691596800000L));
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
+                .isEqualTo(List.of(100, 98, 90));
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(1).getTimestamps())
+                .isEqualTo(List.of(1691596800000L, 1691604000000L));
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(1).getLevels())
+                .isEqualTo(List.of(90, 80));
+    }
+
+    @Test
+    public void combine_existingBatteryLevelDataIsNull_returnExpectedResult() {
+        final List<BatteryEvent> batteryLevelRecordEvents = List.of(
+                BatteryEvent.newBuilder().setTimestamp(1691586000166L).setBatteryLevel(100)
+                        .setType(BatteryEventType.FULL_CHARGED).build(),
+                BatteryEvent.newBuilder().setTimestamp(1691589600000L).setBatteryLevel(98)
+                        .setType(BatteryEventType.EVEN_HOUR).build());
+
+        BatteryLevelData result =
+                BatteryLevelData.combine(null, batteryLevelRecordEvents);
+
+        assertThat(result.getHourlyBatteryLevelsPerDay())
+                .hasSize(1);
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getTimestamps())
+                .isEqualTo(List.of(1691586000166L, 1691589600000L));
+        assertThat(result.getHourlyBatteryLevelsPerDay().get(0).getLevels())
+                .isEqualTo(List.of(100, 98));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
index bc787f1..ed2b315 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsCardPreferenceTest.java
@@ -18,15 +18,30 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
+import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.content.Intent;
+import android.view.View;
 
 import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.display.AutoBrightnessSettings;
+import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
+import com.android.settings.testutils.BatteryTestUtils;
+import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
@@ -36,13 +51,19 @@
     private Context mContext;
     private BatteryTipsCardPreference mBatteryTipsCardPreference;
     private BatteryTipsController mBatteryTipsController;
+    @Mock
+    private View mFakeView;
+    @Mock
+    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
 
     @Before
     public void setUp() {
+        MockitoAnnotations.initMocks(this);
         mContext = spy(RuntimeEnvironment.application);
         mBatteryTipsCardPreference = new BatteryTipsCardPreference(mContext, /*attrs=*/ null);
         mBatteryTipsController = new BatteryTipsController(mContext);
         mBatteryTipsController.mCardPreference = mBatteryTipsCardPreference;
+        mBatteryTipsController.mPowerUsageFeatureProvider = mPowerUsageFeatureProvider;
     }
 
     @Test
@@ -50,4 +71,23 @@
         assertThat(mBatteryTipsCardPreference.getLayoutResource()).isEqualTo(
                 R.layout.battery_tips_card);
     }
+    @Test
+    public void onClick_actionBtn_getAdaptiveBrightnessLauncher() {
+        final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
+        PowerAnomalyEvent adaptiveBrightnessAnomaly =
+                BatteryTestUtils.createAdaptiveBrightnessAnomalyEvent();
+        when(mPowerUsageFeatureProvider.isBatteryTipsEnabled()).thenReturn(true);
+        when(mFakeView.getId()).thenReturn(R.id.main_button);
+        doNothing().when(mContext).startActivity(captor.capture());
+
+        mBatteryTipsController.handleBatteryTipsCardUpdated(adaptiveBrightnessAnomaly);
+        mBatteryTipsCardPreference.onClick(mFakeView);
+
+        verify(mContext).startActivity(any(Intent.class));
+        final Intent intent = captor.getValue();
+        assertThat(intent.getStringExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT))
+                .isEqualTo(AutoBrightnessSettings.class.getName());
+        assertThat(intent.getIntExtra(MetricsFeatureProvider.EXTRA_SOURCE_METRICS_CATEGORY, -1))
+                .isEqualTo(SettingsEnums.SETTINGS_AUTO_BRIGHTNESS);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
index 0c9a0b0..ffb200d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryTipsControllerTest.java
@@ -16,8 +16,6 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
-import static com.google.common.truth.Truth.assertThat;
-
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -69,21 +67,6 @@
     }
 
     @Test
-    public void parsePowerAnomalyKey_preDefinedKeys_returnTrue() {
-        final String[] keys = {"adaptive_brightness", "screen_timeout"};
-        for (int index = 0; index < keys.length; index++) {
-            assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(keys[index]))
-                    .isEqualTo(index);
-        }
-    }
-
-    @Test
-    public void parsePowerAnomalyKey_unknownKey_returnTrue() {
-        final String key = "unknown_key_for_test";
-        assertThat(mBatteryTipsController.getPowerAnomalyEventIndex(key)).isEqualTo(-1);
-    }
-
-    @Test
     public void handleBatteryTipsCardUpdated_null_hidePreference() {
         mBatteryTipsController.handleBatteryTipsCardUpdated(/* powerAnomalyEvents= */ null);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
index 3a9ce2b..d89c06b 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -96,6 +96,14 @@
         mBatteryUsageBreakdownController.mAppListPreferenceGroup = mAppListPreferenceGroup;
         mBatteryDiffEntry = new BatteryDiffEntry(
                 mContext,
+                /*uid=*/ 0L,
+                /*userId=*/ 0L,
+                /*key=*/ "key",
+                /*isHidden=*/ false,
+                /*componentId=*/ -1,
+                /*legacyPackageName=*/ null,
+                /*legacyLabel=*/ null,
+                /*consumerType=*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
                 /*foregroundUsageTimeInMs=*/ 1,
                 /*backgroundUsageTimeInMs=*/ 2,
                 /*screenOnTimeInMs=*/ 0,
@@ -103,13 +111,14 @@
                 /*foregroundUsageConsumePower=*/ 0,
                 /*foregroundServiceUsageConsumePower=*/ 1,
                 /*backgroundUsageConsumePower=*/ 2,
-                /*cachedUsageConsumePower=*/ 0,
-                mBatteryHistEntry);
+                /*cachedUsageConsumePower=*/ 0);
         mBatteryDiffEntry = spy(mBatteryDiffEntry);
         mBatteryUsageBreakdownController.mBatteryDiffData =
-                new BatteryDiffData(mContext, /* screenOnTime= */ 0L,
-                        Arrays.asList(mBatteryDiffEntry), Arrays.asList(), Set.of(), Set.of(),
-                        /* isAccumulated= */ false);
+                new BatteryDiffData(mContext, /* startTimestamp= */ 0L, /* endTimestamp= */ 0L,
+                        /* startBatteryLevel= */ 0, /* endBatteryLevel= */ 0,
+                        /* screenOnTime= */ 0L, Arrays.asList(mBatteryDiffEntry), Arrays.asList(),
+                        Set.of(), Set.of(), /* isAccumulated= */ false);
+        BatteryDiffEntry.clearCache();
         // Adds fake testing data.
         BatteryDiffEntry.sResourceCache.put(
                 "fakeBatteryDiffEntryKey",
@@ -140,7 +149,7 @@
         doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
         doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
         doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
-        doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+        doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
         doReturn(null).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
         doReturn(false).when(mBatteryDiffEntry).validForRestriction();
 
@@ -168,7 +177,7 @@
         doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
         doReturn(mDrawable).when(mBatteryDiffEntry).getAppIcon();
         doReturn(appLabel).when(mBatteryDiffEntry).getAppLabel();
-        doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+        doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
         doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
 
         mBatteryUsageBreakdownController.addAllPreferences();
@@ -197,7 +206,7 @@
     public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() {
         doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount();
         doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).getPreference(0);
-        doReturn(PREF_KEY).when(mBatteryHistEntry).getKey();
+        doReturn(PREF_KEY).when(mBatteryDiffEntry).getKey();
         doReturn(PREF_KEY).when(mPowerGaugePreference).getKey();
         doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).findPreference(PREF_KEY);
         // Ensures the testing data is correct.
@@ -222,7 +231,7 @@
 
     @Test
     public void handlePreferenceTreeClick_forAppEntry_returnTrue() {
-        doReturn(false).when(mBatteryHistEntry).isAppEntry();
+        mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
         doReturn(mBatteryDiffEntry).when(mPowerGaugePreference).getBatteryDiffEntry();
 
         assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
@@ -238,7 +247,7 @@
 
     @Test
     public void handlePreferenceTreeClick_forSystemEntry_returnTrue() {
-        doReturn(true).when(mBatteryHistEntry).isAppEntry();
+        mBatteryDiffEntry.mConsumerType = ConvertUtils.CONSUMER_TYPE_UID_BATTERY;
         doReturn(mBatteryDiffEntry).when(mPowerGaugePreference).getBatteryDiffEntry();
 
         assertThat(mBatteryUsageBreakdownController.handlePreferenceTreeClick(
@@ -394,10 +403,23 @@
         contentValues.put(BatteryHistEntry.KEY_USER_ID, Integer.valueOf(1001));
         final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(contentValues);
         return new BatteryDiffEntry(
-                mContext, foregroundUsageTimeInMs, backgroundUsageTimeInMs, screenOnTimeInMs,
-                /*consumePower=*/ 0, /*foregroundUsageConsumePower=*/ 0,
-                /*foregroundServiceUsageConsumePower=*/ 0, /*backgroundUsageConsumePower=*/ 0,
-                /*cachedUsageConsumePower=*/ 0, batteryHistEntry);
+                mContext,
+                batteryHistEntry.mUid,
+                batteryHistEntry.mUserId,
+                batteryHistEntry.getKey(),
+                batteryHistEntry.mIsHidden,
+                batteryHistEntry.mDrainType,
+                batteryHistEntry.mPackageName,
+                batteryHistEntry.mAppLabel,
+                batteryHistEntry.mConsumerType,
+                foregroundUsageTimeInMs,
+                backgroundUsageTimeInMs,
+                screenOnTimeInMs,
+                /*consumePower=*/ 0,
+                /*foregroundUsageConsumePower=*/ 0,
+                /*foregroundServiceUsageConsumePower=*/ 0,
+                /*backgroundUsageConsumePower=*/ 0,
+                /*cachedUsageConsumePower=*/ 0);
     }
 
     private BatteryUsageBreakdownController createController() {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
index 05a6f2b..999a921 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageContentProviderTest.java
@@ -20,11 +20,9 @@
 
 import static org.junit.Assert.assertThrows;
 
-import android.app.Application;
 import android.content.ContentResolver;
 import android.content.ContentValues;
 import android.content.Context;
-import android.content.Intent;
 import android.database.Cursor;
 import android.net.Uri;
 
@@ -34,6 +32,7 @@
 import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
 import com.android.settings.testutils.BatteryTestUtils;
 import com.android.settings.testutils.FakeClock;
 
@@ -41,12 +40,10 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
-import org.robolectric.Shadows;
 
 import java.time.Duration;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /** Tests for {@link BatteryUsageContentProvider}. */
@@ -127,10 +124,28 @@
     }
 
     @Test
+    public void query_getLastFullChargeTimestamp_returnsExpectedResult() throws Exception {
+        mProvider.onCreate();
+        ContentValues values = new ContentValues();
+        values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
+        values.put(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE,
+                BatteryEventType.FULL_CHARGED.getNumber());
+        values.put(BatteryEventEntity.KEY_BATTERY_LEVEL, 100);
+        mProvider.insert(DatabaseUtils.BATTERY_EVENT_URI, values);
+
+        final Cursor cursor = getCursorOfLastFullChargeTimestamp();
+
+        assertThat(cursor.getCount()).isEqualTo(1);
+        cursor.moveToFirst();
+        final long lastFullChargeTimestamp = cursor.getLong(0);
+        assertThat(lastFullChargeTimestamp).isEqualTo(10001L);
+    }
+
+    @Test
     public void query_batteryState_returnsExpectedResult() throws Exception {
         mProvider.onCreate();
         final Duration currentTime = Duration.ofHours(52);
-        final long expiredTimeCutoff = currentTime.toMillis() - 3;
+        final long expiredTimeCutoff = currentTime.toMillis() - 8;
 
         final Cursor cursor = insertBatteryState(currentTime, Long.toString(expiredTimeCutoff));
 
@@ -150,19 +165,13 @@
         final String actualPackageName3 = cursor.getString(packageNameIndex);
         assertThat(actualPackageName3).isEqualTo(PACKAGE_NAME3);
         cursor.close();
-        // Verifies the broadcast intent.
-        TimeUnit.SECONDS.sleep(1);
-        final List<Intent> intents = Shadows.shadowOf((Application) mContext).getBroadcastIntents();
-        assertThat(intents).hasSize(1);
-        assertThat(intents.get(0).getAction()).isEqualTo(
-                BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
     }
 
     @Test
     public void query_batteryStateTimestamp_returnsExpectedResult() throws Exception {
         mProvider.onCreate();
         final Duration currentTime = Duration.ofHours(52);
-        final long expiredTimeCutoff = currentTime.toMillis() - 1;
+        final long expiredTimeCutoff = currentTime.toMillis() - 2;
 
         final Cursor cursor = insertBatteryState(currentTime, Long.toString(expiredTimeCutoff));
 
@@ -178,12 +187,25 @@
         final String actualPackageName2 = cursor.getString(packageNameIndex);
         assertThat(actualPackageName2).isEqualTo(PACKAGE_NAME3);
         cursor.close();
-        // Verifies the broadcast intent.
-        TimeUnit.SECONDS.sleep(1);
-        final List<Intent> intents = Shadows.shadowOf((Application) mContext).getBroadcastIntents();
-        assertThat(intents).hasSize(1);
-        assertThat(intents.get(0).getAction()).isEqualTo(
-                BootBroadcastReceiver.ACTION_PERIODIC_JOB_RECHECK);
+    }
+
+    @Test
+    public void query_getBatteryStateLatestTimestamp_returnsExpectedResult() throws Exception {
+        mProvider.onCreate();
+        final Duration currentTime = Duration.ofHours(52);
+        insertBatteryState(currentTime, Long.toString(currentTime.toMillis()));
+
+        final Cursor cursor1 = getCursorOfBatteryStateLatestTimestamp(currentTime.toMillis() - 5);
+        assertThat(cursor1.getCount()).isEqualTo(1);
+        cursor1.moveToFirst();
+        final long latestTimestamp1 = cursor1.getLong(0);
+        assertThat(latestTimestamp1).isEqualTo(currentTime.toMillis() - 6);
+
+        final Cursor cursor2 = getCursorOfBatteryStateLatestTimestamp(currentTime.toMillis() - 2);
+        assertThat(cursor2.getCount()).isEqualTo(1);
+        cursor2.moveToFirst();
+        final long latestTimestamp2 = cursor2.getLong(0);
+        assertThat(latestTimestamp2).isEqualTo(currentTime.toMillis() - 2);
     }
 
     @Test
@@ -355,7 +377,7 @@
     }
 
     @Test
-    public void insert_batteryEvent_returnsExpectedResult() {
+    public void insertAndQuery_batteryEvent_returnsExpectedResult() {
         mProvider.onCreate();
         ContentValues values = new ContentValues();
         values.put(BatteryEventEntity.KEY_TIMESTAMP, 10001L);
@@ -366,7 +388,7 @@
         final Uri uri = mProvider.insert(DatabaseUtils.BATTERY_EVENT_URI, values);
 
         assertThat(uri).isEqualTo(DatabaseUtils.BATTERY_EVENT_URI);
-        // Verifies the AppUsageEventEntity content.
+        // Verifies the BatteryEventEntity content.
         final List<BatteryEventEntity> entities =
                 BatteryStateDatabase.getInstance(mContext).batteryEventDao().getAll();
         assertThat(entities).hasSize(1);
@@ -374,6 +396,50 @@
         assertThat(entities.get(0).batteryEventType).isEqualTo(
                 BatteryEventType.POWER_CONNECTED.getNumber());
         assertThat(entities.get(0).batteryLevel).isEqualTo(66);
+
+        final Cursor cursor1 = getCursorOfBatteryEvents(
+                0L, List.of(BatteryEventType.POWER_CONNECTED.getNumber()));
+        assertThat(cursor1.getCount()).isEqualTo(1);
+        cursor1.moveToFirst();
+        assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryEventEntity.KEY_TIMESTAMP)))
+                .isEqualTo(10001L);
+        assertThat(
+                cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
+                .isEqualTo(BatteryEventType.POWER_CONNECTED.getNumber());
+        assertThat(cursor1.getInt(cursor1.getColumnIndex(BatteryEventEntity.KEY_BATTERY_LEVEL)))
+                .isEqualTo(66);
+
+        final Cursor cursor2 = getCursorOfBatteryEvents(
+                0L, List.of(BatteryEventType.POWER_DISCONNECTED.getNumber()));
+        assertThat(cursor2.getCount()).isEqualTo(0);
+    }
+
+    @Test
+    public void insertAndQuery_batteryUsageSlot_returnsExpectedResult() {
+        mProvider.onCreate();
+        ContentValues values = new ContentValues();
+        values.put(BatteryUsageSlotEntity.KEY_TIMESTAMP, 10001L);
+        values.put(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT, "TEST_STRING");
+
+        final Uri uri = mProvider.insert(DatabaseUtils.BATTERY_USAGE_SLOT_URI, values);
+        // Verifies the BatteryUsageSlotEntity content.
+        assertThat(uri).isEqualTo(DatabaseUtils.BATTERY_USAGE_SLOT_URI);
+        final List<BatteryUsageSlotEntity> entities =
+                BatteryStateDatabase.getInstance(mContext).batteryUsageSlotDao().getAll();
+        assertThat(entities).hasSize(1);
+        assertThat(entities.get(0).timestamp).isEqualTo(10001L);
+        assertThat(entities.get(0).batteryUsageSlot).isEqualTo("TEST_STRING");
+
+        final Cursor cursor1 = getCursorOfBatteryUsageSlots(10001L);
+        assertThat(cursor1.getCount()).isEqualTo(1);
+        cursor1.moveToFirst();
+        assertThat(cursor1.getLong(cursor1.getColumnIndex(BatteryUsageSlotEntity.KEY_TIMESTAMP)))
+                .isEqualTo(10001L);
+        assertThat(cursor1.getString(cursor1.getColumnIndex(
+                BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT))).isEqualTo("TEST_STRING");
+
+        final Cursor cursor2 = getCursorOfBatteryUsageSlots(10002L);
+        assertThat(cursor2.getCount()).isEqualTo(0);
     }
 
     @Test
@@ -404,10 +470,10 @@
         final long currentTimestamp = currentTime.toMillis();
         // Inserts some valid testing data.
         BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, currentTimestamp - 2, PACKAGE_NAME1,
+                mContext, currentTimestamp - 6, PACKAGE_NAME1,
                 /*isFullChargeStart=*/ true);
         BatteryTestUtils.insertDataToBatteryStateTable(
-                mContext, currentTimestamp - 1, PACKAGE_NAME2);
+                mContext, currentTimestamp - 2, PACKAGE_NAME2);
         BatteryTestUtils.insertDataToBatteryStateTable(
                 mContext, currentTimestamp, PACKAGE_NAME3);
 
@@ -420,17 +486,35 @@
                                 DatabaseUtils.QUERY_KEY_TIMESTAMP, queryTimestamp)
                         .build();
 
-        final Cursor cursor =
-                mProvider.query(
-                        batteryStateQueryContentUri,
-                        /*strings=*/ null,
-                        /*s=*/ null,
-                        /*strings1=*/ null,
-                        /*s1=*/ null);
+        final Cursor cursor = query(batteryStateQueryContentUri);
 
         return cursor;
     }
 
+    private Cursor getCursorOfLastFullChargeTimestamp() {
+        final Uri lastFullChargeTimestampContentUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(DatabaseUtils.AUTHORITY)
+                        .appendPath(DatabaseUtils.LAST_FULL_CHARGE_TIMESTAMP_PATH)
+                        .build();
+
+        return query(lastFullChargeTimestampContentUri);
+    }
+
+    private Cursor getCursorOfBatteryStateLatestTimestamp(final long queryTimestamp) {
+        final Uri batteryStateLatestTimestampUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(DatabaseUtils.AUTHORITY)
+                        .appendPath(DatabaseUtils.BATTERY_STATE_LATEST_TIMESTAMP_PATH)
+                        .appendQueryParameter(
+                                DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .build();
+
+        return query(batteryStateLatestTimestampUri);
+    }
+
     private void insertAppUsageEvent() {
         mProvider.onCreate();
         // Inserts some valid testing data.
@@ -452,12 +536,7 @@
                                 DatabaseUtils.QUERY_KEY_USERID, Long.toString(userId))
                         .build();
 
-        return mProvider.query(
-                appUsageLatestTimestampQueryContentUri,
-                /*strings=*/ null,
-                /*s=*/ null,
-                /*strings1=*/ null,
-                /*s1=*/ null);
+        return query(appUsageLatestTimestampQueryContentUri);
     }
 
     private Cursor getCursorOfAppUsage(final List<Long> userIds, final long queryTimestamp) {
@@ -474,7 +553,43 @@
                         .appendQueryParameter(DatabaseUtils.QUERY_KEY_USERID, queryUserIdString)
                         .build();
 
+        return query(appUsageEventUri);
+    }
+
+    private Cursor getCursorOfBatteryEvents(
+            final long queryTimestamp, final List<Integer> batteryEventTypes) {
+        final String batteryEventTypesString = batteryEventTypes.stream()
+                .map(type -> String.valueOf(type))
+                .collect(Collectors.joining(","));
+        final Uri batteryEventUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(DatabaseUtils.AUTHORITY)
+                        .appendPath(DatabaseUtils.BATTERY_EVENT_TABLE)
+                        .appendQueryParameter(
+                                DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .appendQueryParameter(
+                                DatabaseUtils.QUERY_BATTERY_EVENT_TYPE, batteryEventTypesString)
+                        .build();
+
+        return query(batteryEventUri);
+    }
+
+    private Cursor getCursorOfBatteryUsageSlots(final long queryTimestamp) {
+        final Uri batteryUsageSlotUri =
+                new Uri.Builder()
+                        .scheme(ContentResolver.SCHEME_CONTENT)
+                        .authority(DatabaseUtils.AUTHORITY)
+                        .appendPath(DatabaseUtils.BATTERY_USAGE_SLOT_TABLE)
+                        .appendQueryParameter(
+                                DatabaseUtils.QUERY_KEY_TIMESTAMP, Long.toString(queryTimestamp))
+                        .build();
+
+        return query(batteryUsageSlotUri);
+    }
+
+    private Cursor query(Uri uri) {
         return mProvider.query(
-                appUsageEventUri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null, /*s1=*/ null);
+                uri, /*strings=*/ null, /*s=*/ null, /*strings1=*/ null, /*s1=*/ null);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
index 9aeff79..f3965fd 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoaderTest.java
@@ -22,6 +22,7 @@
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
 import static org.mockito.Mockito.when;
 
 import android.content.ContentResolver;
@@ -31,6 +32,7 @@
 import android.os.BatteryStatsManager;
 import android.os.BatteryUsageStats;
 import android.os.BatteryUsageStatsQuery;
+import android.os.UserManager;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -43,6 +45,7 @@
 import org.robolectric.RuntimeEnvironment;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
@@ -56,6 +59,8 @@
     @Mock
     private PackageManager mPackageManager;
     @Mock
+    private UserManager mUserManager;
+    @Mock
     private BatteryUsageStats mBatteryUsageStats;
     @Mock
     private BatteryEntry mMockBatteryEntry;
@@ -70,6 +75,7 @@
         doReturn(mBatteryStatsManager).when(mContext).getSystemService(
                 Context.BATTERY_STATS_SERVICE);
         doReturn(mPackageManager).when(mContext).getPackageManager();
+        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
         doReturn(mMockContentResolver).when(mContext).getContentResolver();
         doReturn(new Intent()).when(mContext).registerReceiver(any(), any());
     }
@@ -82,7 +88,7 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> batteryEntryList;
 
-        BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
 
         final int queryFlags = mStatsQueryCaptor.getValue().getFlags();
         assertThat(queryFlags
@@ -97,7 +103,7 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> null;
 
-        BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
 
         verify(mMockContentResolver).insert(any(), any());
     }
@@ -108,8 +114,51 @@
                 .thenReturn(mBatteryUsageStats);
         BatteryUsageDataLoader.sFakeBatteryEntryListSupplier = () -> new ArrayList<>();
 
-        BatteryUsageDataLoader.loadUsageData(mContext, /*isFullChargeStart=*/ false);
+        BatteryUsageDataLoader.loadBatteryStatsData(mContext, /*isFullChargeStart=*/ false);
 
         verify(mMockContentResolver).insert(any(), any());
     }
+
+    @Test
+    public void loadAppUsageData_withData_insertFakeDataIntoProvider() {
+        final List<AppUsageEvent> AppUsageEventList = new ArrayList<>();
+        final AppUsageEvent appUsageEvent = AppUsageEvent.newBuilder().setUid(0).build();
+        AppUsageEventList.add(appUsageEvent);
+        BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+        BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> AppUsageEventList;
+
+        BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+        verify(mMockContentResolver).bulkInsert(any(), any());
+        verify(mMockContentResolver).notifyChange(any(), any());
+    }
+
+    @Test
+    public void loadAppUsageData_nullAppUsageEvents_notInsertDataIntoProvider() {
+        BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> null;
+
+        BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+        verifyNoMoreInteractions(mMockContentResolver);
+    }
+
+    @Test
+    public void loadAppUsageData_nullUsageEventsList_notInsertDataIntoProvider() {
+        BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+        BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> null;
+
+        BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+        verifyNoMoreInteractions(mMockContentResolver);
+    }
+
+    @Test
+    public void loadAppUsageData_emptyUsageEventsList_notInsertDataIntoProvider() {
+        BatteryUsageDataLoader.sFakeAppUsageEventsSupplier = () -> new HashMap<>();
+        BatteryUsageDataLoader.sFakeUsageEventsListSupplier = () -> new ArrayList<>();
+
+        BatteryUsageDataLoader.loadAppUsageData(mContext);
+
+        verifyNoMoreInteractions(mMockContentResolver);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
index e9108bc..f06dc63 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/ConvertUtilsTest.java
@@ -39,6 +39,7 @@
 
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
 import com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity;
+import com.android.settings.fuelgauge.batteryusage.db.BatteryUsageSlotEntity;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -48,7 +49,10 @@
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 
+import java.util.List;
 import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
 import java.util.TimeZone;
 
 @RunWith(RobolectricTestRunner.class)
@@ -213,6 +217,22 @@
     }
 
     @Test
+    public void convertBatteryUsageSlotToContentValues_normalCase_returnsExpectedContentValues() {
+        final BatteryUsageSlot batteryUsageSlot =
+                BatteryUsageSlot.newBuilder()
+                        .setStartTimestamp(10001L)
+                        .setEndTimestamp(30003L)
+                        .setStartBatteryLevel(88)
+                        .setEndBatteryLevel(66)
+                        .setScreenOnTime(123L)
+                        .build();
+        final ContentValues values =
+                ConvertUtils.convertBatteryUsageSlotToContentValues(batteryUsageSlot);
+        assertThat(values.getAsLong(BatteryUsageSlotEntity.KEY_TIMESTAMP)).isEqualTo(10001L);
+        assertThat(BatteryUsageSlotEntity.KEY_BATTERY_USAGE_SLOT).isNotEmpty();
+    }
+
+    @Test
     public void convertToBatteryHistEntry_returnsExpectedResult() {
         final int expectedType = 3;
         when(mMockBatteryEntry.getUid()).thenReturn(1001);
@@ -363,7 +383,7 @@
     }
 
     @Test
-    public void convertToAppUsageEventFromCursor_returnExpectedResult() {
+    public void convertToAppUsageEvent_returnExpectedResult() {
         final MatrixCursor cursor = new MatrixCursor(
                 new String[]{
                         AppUsageEventEntity.KEY_UID,
@@ -384,7 +404,7 @@
                         100001L});
         cursor.moveToFirst();
 
-        final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEventFromCursor(cursor);
+        final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
 
         assertThat(appUsageEvent.getUid()).isEqualTo(101L);
         assertThat(appUsageEvent.getUserId()).isEqualTo(1001L);
@@ -396,7 +416,7 @@
     }
 
     @Test
-    public void convertToAppUsageEventFromCursor_emptyInstanceIdAndRootName_returnExpectedResult() {
+    public void convertToAppUsageEvent_emptyInstanceIdAndRootName_returnExpectedResult() {
         final MatrixCursor cursor = new MatrixCursor(
                 new String[]{
                         AppUsageEventEntity.KEY_UID,
@@ -413,7 +433,7 @@
                         AppUsageEventType.DEVICE_SHUTDOWN.getNumber()});
         cursor.moveToFirst();
 
-        final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEventFromCursor(cursor);
+        final AppUsageEvent appUsageEvent = ConvertUtils.convertToAppUsageEvent(cursor);
 
         assertThat(appUsageEvent.getUid()).isEqualTo(101L);
         assertThat(appUsageEvent.getUserId()).isEqualTo(1001L);
@@ -434,6 +454,42 @@
     }
 
     @Test
+    public void convertToBatteryEventList_normalCase_returnsExpectedResult() {
+        final BatteryLevelData batteryLevelData = new BatteryLevelData(Map.of(
+                1691589600000L, 98, 1691596800000L, 90, 1691596812345L, 80));
+
+        final List<BatteryEvent> batteryEventList =
+                ConvertUtils.convertToBatteryEventList(batteryLevelData);
+
+        assertThat(batteryEventList).hasSize(2);
+        assertThat(batteryEventList.get(0).getTimestamp()).isEqualTo(1691589600000L);
+        assertThat(batteryEventList.get(0).getType()).isEqualTo(BatteryEventType.EVEN_HOUR);
+        assertThat(batteryEventList.get(0).getBatteryLevel()).isEqualTo(98);
+        assertThat(batteryEventList.get(1).getTimestamp()).isEqualTo(1691596800000L);
+        assertThat(batteryEventList.get(1).getType()).isEqualTo(BatteryEventType.EVEN_HOUR);
+        assertThat(batteryEventList.get(1).getBatteryLevel()).isEqualTo(90);
+    }
+
+    @Test
+    public void convertToBatteryUsageSlotList_normalCase_returnsExpectedResult() {
+        BatteryDiffData batteryDiffData1 = new BatteryDiffData(
+                mContext, 11L, 12L, 13, 14, 15, List.of(), List.of(), Set.of(), Set.of(), false);
+        BatteryDiffData batteryDiffData2 = new BatteryDiffData(
+                mContext, 21L, 22L, 23, 24, 25, List.of(), List.of(), Set.of(), Set.of(), false);
+        BatteryDiffData batteryDiffData3 = new BatteryDiffData(
+                mContext, 31L, 32L, 33, 34, 35, List.of(), List.of(), Set.of(), Set.of(), false);
+        final Map<Long, BatteryDiffData> batteryDiffDataMap = Map.of(
+                11L, batteryDiffData1, 21L, batteryDiffData2, 31L, batteryDiffData3);
+
+        final List<BatteryUsageSlot> batteryUsageSlotList =
+                ConvertUtils.convertToBatteryUsageSlotList(batteryDiffDataMap);
+
+        assertThat(batteryUsageSlotList).hasSize(3);
+        assertThat(batteryUsageSlotList.stream().map((s) -> s.getScreenOnTime()).sorted().toList())
+                .isEqualTo(List.of(15L, 25L, 35L));
+    }
+
+    @Test
     public void getLocale_nullContext_returnDefaultLocale() {
         assertThat(ConvertUtils.getLocale(/*context=*/ null))
                 .isEqualTo(Locale.getDefault());
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
index b610cfb..94fa00f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
@@ -30,8 +30,12 @@
 import android.content.ContentValues;
 import android.content.Context;
 import android.content.Intent;
+import android.database.Cursor;
 import android.database.MatrixCursor;
 import android.os.BatteryManager;
+import android.os.BatteryStatsManager;
+import android.os.BatteryUsageStats;
+import android.os.BatteryUsageStatsQuery;
 import android.os.Parcel;
 import android.os.RemoteException;
 import android.os.UserManager;
@@ -39,9 +43,12 @@
 
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
@@ -52,6 +59,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Supplier;
 
 @RunWith(RobolectricTestRunner.class)
 public final class DataProcessManagerTest {
@@ -65,7 +73,13 @@
     @Mock
     private UserManager mUserManager;
     @Mock
+    private BatteryStatsManager mBatteryStatsManager;
+    @Mock
+    private BatteryUsageStats mBatteryUsageStats;
+    @Mock
     private Intent mIntent;
+    @Captor
+    private ArgumentCaptor<BatteryUsageStatsQuery> mBatteryUsageStatsQueryCaptor;
 
     @Before
     public void setUp() {
@@ -77,22 +91,32 @@
         doReturn(mUserManager)
                 .when(mContext)
                 .getSystemService(UserManager.class);
+        doReturn(mBatteryStatsManager).when(mContext).getSystemService(
+                Context.BATTERY_STATS_SERVICE);
+        doReturn(mBatteryUsageStats).when(
+                mBatteryStatsManager).getBatteryUsageStats(mBatteryUsageStatsQueryCaptor.capture());
         doReturn(mIntent).when(mContext).registerReceiver(any(), any());
         doReturn(100).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_SCALE), anyInt());
         doReturn(66).when(mIntent).getIntExtra(eq(BatteryManager.EXTRA_LEVEL), anyInt());
 
         mDataProcessManager = new DataProcessManager(
                 mContext, /*handler=*/ null,  /*rawStartTimestamp=*/ 0L,
-                /*callbackFunction=*/ null, /*hourlyBatteryLevelsPerDay=*/ new ArrayList<>(),
+                /*lastFullChargeTimestamp=*/ 0L, /*callbackFunction=*/ null,
+                /*hourlyBatteryLevelsPerDay=*/ new ArrayList<>(),
                 /*batteryHistoryMap=*/ new HashMap<>());
     }
 
+    @After
+    public void cleanUp() {
+        DatabaseUtils.sFakeSupplier = null;
+        DataProcessManager.sFakeBatteryHistoryMap = null;
+    }
+
     @Test
     public void constructor_noLevelData() {
         final DataProcessManager dataProcessManager =
                 new DataProcessManager(mContext, /*handler=*/ null, /*callbackFunction=*/ null);
         assertThat(dataProcessManager.getShowScreenOnTime()).isFalse();
-        assertThat(dataProcessManager.getShowBatteryLevel()).isFalse();
     }
 
     @Test
@@ -122,16 +146,18 @@
         final String packageName = "package";
         // Adds the day 1 data.
         final List<Long> timestamps1 = List.of(2L, 3L, 4L);
-        final List<Integer> levels1 = List.of(100, 100, 100);
+        final Map<Long, Integer> batteryLevelMap1 =
+                Map.of(timestamps1.get(0), 100, timestamps1.get(1), 100, timestamps1.get(2), 100);
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps1, levels1));
+                new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap1, timestamps1));
         // Adds the day 2 data.
         hourlyBatteryLevelsPerDay.add(null);
         // Adds the day 3 data.
         final List<Long> timestamps2 = List.of(5L, 6L);
-        final List<Integer> levels2 = List.of(100, 100);
+        final Map<Long, Integer> batteryLevelMap2 =
+                Map.of(timestamps2.get(0), 100, timestamps2.get(1), 100);
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps2, levels2));
+                new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
         // Fake current usage data.
         final UsageEvents.Event event1 =
                 getUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED, /*timestamp=*/ 1, packageName);
@@ -171,10 +197,18 @@
         cursor.addRow(new Object[] {
                 AppUsageEventType.ACTIVITY_STOPPED.getNumber(), /*timestamp=*/ 6, /*userId=*/ 1,
                 /*instanceId=*/ 2, packageName});
-        DatabaseUtils.sFakeSupplier = () -> cursor;
+        DatabaseUtils.sFakeSupplier = new Supplier<>() {
+            private int mTimes = 0;
+            @Override
+            public Cursor get() {
+                mTimes++;
+                return mTimes <= 2 ? null : cursor;
+            }
+        };
 
         final DataProcessManager dataProcessManager = new DataProcessManager(
-                mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L,  /*callbackFunction=*/ null,
+                mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L,
+                /*lastFullChargeTimestamp=*/ 1L, /*callbackFunction=*/ null,
                 hourlyBatteryLevelsPerDay, /*batteryHistoryMap=*/ new HashMap<>());
         dataProcessManager.start();
 
@@ -254,12 +288,13 @@
         assertThat(DataProcessManager.getBatteryLevelData(
                 mContext,
                 /*handler=*/ null,
-                /*batteryHistoryMap=*/ null,
-                /*asyncResponseDelegate=*/ null))
-                .isNull();
+                /*isFromPeriodJob=*/ false,
+                /*asyncResponseDelegate=*/ null)).isNull();
         assertThat(DataProcessManager.getBatteryLevelData(
-                mContext, /*handler=*/ null, new HashMap<>(), /*asyncResponseDelegate=*/ null))
-                .isNull();
+                mContext,
+                /*handler=*/ null,
+                /*isFromPeriodJob=*/ true,
+                /*asyncResponseDelegate=*/ null)).isNull();
     }
 
     @Test
@@ -270,18 +305,16 @@
                 DateUtils.HOUR_IN_MILLIS * 2 - 200L,
                 DateUtils.HOUR_IN_MILLIS * 2 - 100L};
         final int[] levels = {100, 99, 98};
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
-                createHistoryMap(timestamps, levels);
+        DataProcessManager.sFakeBatteryHistoryMap = createHistoryMap(timestamps, levels);
         DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
 
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
                         /*handler=*/ null,
-                        batteryHistoryMap,
+                        /*isFromPeriodJob=*/ false,
                         /*asyncResponseDelegate=*/ null);
 
-
         final List<Long> expectedDailyTimestamps = List.of(
                 DateUtils.HOUR_IN_MILLIS * 2 - 300L,
                 DateUtils.HOUR_IN_MILLIS * 2 - 100L);
@@ -301,15 +334,14 @@
         // Timezone GMT+8: 2022-01-01 00:00:00, 2022-01-01 01:00:00
         final long[] timestamps = {1640966400000L, 1640970000000L};
         final int[] levels = {100, 99};
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
-                createHistoryMap(timestamps, levels);
+        DataProcessManager.sFakeBatteryHistoryMap = createHistoryMap(timestamps, levels);
         DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
 
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
                         /*handler=*/ null,
-                        batteryHistoryMap,
+                        /*isFromPeriodJob=*/ false,
                         /*asyncResponseDelegate=*/ null);
 
         final List<Long> expectedDailyTimestamps = List.of(
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index c9b635e..c4394f7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.fuelgauge.batteryusage;
 
+import static com.android.settings.fuelgauge.batteryusage.ConvertUtils.FAKE_PACKAGE_NAME;
+import static com.android.settingslib.fuelgauge.BatteryStatus.BATTERY_LEVEL_UNKNOWN;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.anyInt;
@@ -42,6 +45,7 @@
 import android.os.Parcel;
 import android.os.RemoteException;
 import android.os.UserManager;
+import android.util.ArrayMap;
 
 import com.android.settings.fuelgauge.PowerUsageFeatureProvider;
 import com.android.settings.testutils.FakeFeatureFactory;
@@ -188,16 +192,18 @@
         final String packageName = "com.android.settings";
         // Adds the day 1 data.
         final List<Long> timestamps1 = List.of(14400000L, 18000000L, 21600000L);
-        final List<Integer> levels1 = List.of(100, 100, 100);
+        final Map<Long, Integer> batteryLevelMap1 =
+                Map.of(timestamps1.get(0), 100, timestamps1.get(1), 100, timestamps1.get(2), 100);
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps1, levels1));
+                new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap1, timestamps1));
         // Adds the day 2 data.
         hourlyBatteryLevelsPerDay.add(null);
         // Adds the day 3 data.
         final List<Long> timestamps2 = List.of(45200000L, 48800000L);
-        final List<Integer> levels2 = List.of(100, 100);
+        final Map<Long, Integer> batteryLevelMap2 =
+                Map.of(timestamps2.get(0), 100, timestamps2.get(1), 100);
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps2, levels2));
+                new BatteryLevelData.PeriodBatteryLevelData(batteryLevelMap2, timestamps2));
         final List<AppUsageEvent> appUsageEventList = new ArrayList<>();
         // Adds some events before the start timestamp.
         appUsageEventList.add(buildAppUsageEvent(
@@ -285,7 +291,7 @@
         final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
                 new ArrayList<>();
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(new ArrayList<>(), new ArrayList<>()));
+                new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
         assertThat(DataProcessor.generateAppUsagePeriodMap(
                 mContext, hourlyBatteryLevelsPerDay, new ArrayList<>(), new ArrayList<>()))
                 .isNull();
@@ -371,19 +377,6 @@
     }
 
     @Test
-    public void getLevelDataThroughProcessedHistoryMap_notEnoughData_returnNull() {
-        final long[] timestamps = {100L};
-        final int[] levels = {100};
-        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
-                createHistoryMap(timestamps, levels);
-        DataProcessor.sTestCurrentTimeMillis = timestamps[timestamps.length - 1];
-
-        assertThat(
-                DataProcessor.getLevelDataThroughProcessedHistoryMap(mContext, batteryHistoryMap))
-                .isNull();
-    }
-
-    @Test
     public void getLevelDataThroughProcessedHistoryMap_OneDayData_returnExpectedResult() {
         // Timezone GMT+8
         final long[] timestamps = {
@@ -441,7 +434,7 @@
         );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
-        expectedDailyLevels.add(null);
+        expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(82);
         final List<List<Long>> expectedHourlyTimestamps = List.of(
                 List.of(
@@ -459,13 +452,13 @@
         );
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
         final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
-        expectedHourlyLevels2.add(null);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels2.add(94);
         expectedHourlyLevels2.add(90);
-        expectedHourlyLevels2.add(null);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels2.add(82);
         final List<List<Integer>> expectedHourlyLevels = List.of(
                 expectedHourlyLevels1,
@@ -503,8 +496,8 @@
         );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
-        expectedDailyLevels.add(null);
-        expectedDailyLevels.add(null);
+        expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
+        expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(88);
         final List<List<Long>> expectedHourlyTimestamps = List.of(
                 List.of(
@@ -542,32 +535,32 @@
         );
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
-        expectedHourlyLevels1.add(null);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
         final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
         final List<Integer> expectedHourlyLevels3 = new ArrayList<>();
-        expectedHourlyLevels3.add(null);
-        expectedHourlyLevels3.add(null);
-        expectedHourlyLevels3.add(null);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(88);
         final List<List<Integer>> expectedHourlyLevels = List.of(
                 expectedHourlyLevels1,
@@ -606,8 +599,8 @@
         );
         final List<Integer> expectedDailyLevels = new ArrayList<>();
         expectedDailyLevels.add(100);
-        expectedDailyLevels.add(null);
-        expectedDailyLevels.add(null);
+        expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
+        expectedDailyLevels.add(BATTERY_LEVEL_UNKNOWN);
         expectedDailyLevels.add(88);
         final List<List<Long>> expectedHourlyTimestamps = List.of(
                 List.of(
@@ -638,25 +631,25 @@
         );
         final List<Integer> expectedHourlyLevels1 = new ArrayList<>();
         expectedHourlyLevels1.add(100);
-        expectedHourlyLevels1.add(null);
+        expectedHourlyLevels1.add(BATTERY_LEVEL_UNKNOWN);
         final List<Integer> expectedHourlyLevels2 = new ArrayList<>();
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
-        expectedHourlyLevels2.add(null);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels2.add(BATTERY_LEVEL_UNKNOWN);
         final List<Integer> expectedHourlyLevels3 = new ArrayList<>();
-        expectedHourlyLevels3.add(null);
-        expectedHourlyLevels3.add(null);
-        expectedHourlyLevels3.add(null);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
+        expectedHourlyLevels3.add(BATTERY_LEVEL_UNKNOWN);
         expectedHourlyLevels3.add(88);
         final List<List<Integer>> expectedHourlyLevels = List.of(
                 expectedHourlyLevels1,
@@ -735,141 +728,6 @@
     }
 
     @Test
-    public void getDailyTimestamps_notEnoughData_returnEmptyList() {
-        assertThat(DataProcessor.getDailyTimestamps(new ArrayList<>())).isEmpty();
-        assertThat(DataProcessor.getDailyTimestamps(List.of(100L))).isEmpty();
-    }
-
-    @Test
-    public void getDailyTimestamps_allDataInOneHour_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640970006000L, // 2022-01-01 01:00:06
-                1640973608000L  // 2022-01-01 01:00:08
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1640970006000L, // 2022-01-01 01:00:06
-                1640973608000L  // 2022-01-01 01:00:08
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_OneHourDataPerDay_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L  // 2022-01-02 01:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641056400000L  // 2022-01-02 01:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_OneDayData_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640966400000L, // 2022-01-01 00:00:00
-                1640970000000L, // 2022-01-01 01:00:00
-                1640973600000L, // 2022-01-01 02:00:00
-                1640977200000L, // 2022-01-01 03:00:00
-                1640980800000L  // 2022-01-01 04:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1640966400000L, // 2022-01-01 00:00:00
-                1640980800000L  // 2022-01-01 04:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_MultipleDaysData_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641045600000L, // 2022-01-01 22:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641232800000L  // 2022-01-04 02:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1641045600000L, // 2022-01-01 22:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641232800000L  // 2022-01-04 02:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_FirstDayOneHourData_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641254400000L  // 2022-01-04 08:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1641049200000L, // 2022-01-01 23:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641254400000L  // 2022-01-04 08:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_LastDayNoData_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641225600000L  // 2022-01-04 00:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L  // 2022-01-04 00:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
-    public void getDailyTimestamps_LastDayOneHourData_returnExpectedList() {
-        // Timezone GMT+8
-        final List<Long> timestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641060000000L, // 2022-01-02 02:00:00
-                1641160800000L, // 2022-01-03 06:00:00
-                1641229200000L  // 2022-01-04 01:00:00
-        );
-
-        final List<Long> expectedTimestamps = List.of(
-                1640988000000L, // 2022-01-01 06:00:00
-                1641052800000L, // 2022-01-02 00:00:00
-                1641139200000L, // 2022-01-03 00:00:00
-                1641225600000L, // 2022-01-04 00:00:00
-                1641229200000L  // 2022-01-04 01:00:00
-        );
-        assertThat(DataProcessor.getDailyTimestamps(timestamps)).isEqualTo(expectedTimestamps);
-    }
-
-    @Test
     public void isFromFullCharge_emptyData_returnFalse() {
         assertThat(DataProcessor.isFromFullCharge(null)).isFalse();
         assertThat(DataProcessor.isFromFullCharge(new HashMap<>())).isFalse();
@@ -916,20 +774,53 @@
     }
 
     @Test
-    public void getBatteryUsageMap_emptyHistoryMap_returnNull() {
+    public void getBatteryDiffDataMap_emptyHistoryMap_returnEmpty() {
         final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
                 new ArrayList<>();
 
         hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(new ArrayList<>(), new ArrayList<>()));
+                new BatteryLevelData.PeriodBatteryLevelData(new ArrayMap<>(), new ArrayList<>()));
 
-        assertThat(DataProcessor.getBatteryUsageMap(
-                mContext, hourlyBatteryLevelsPerDay, new HashMap<>(), /*appUsagePeriodMap=*/ null))
-                .isNull();
+        assertThat(DataProcessor.getBatteryDiffDataMap(mContext, hourlyBatteryLevelsPerDay,
+                new HashMap<>(), /*appUsagePeriodMap=*/ null, Set.of(), Set.of())).isEmpty();
     }
 
     @Test
-    public void getBatteryUsageMap_returnsExpectedResult() {
+    public void getBatteryDiffDataMap_normalFlow_returnExpectedResult() {
+        final int userId = mContext.getUserId();
+        final long[] batteryHistoryKeys = new long[]{
+                1641045600000L, // 2022-01-01 22:00:00
+                1641049200000L, // 2022-01-01 23:00:00
+                1641052800000L, // 2022-01-02 00:00:00
+        };
+        final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = Map.of(
+                batteryHistoryKeys[0], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0, 0, 0,
+                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
+                batteryHistoryKeys[1], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 5, 0, 0,
+                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)),
+                batteryHistoryKeys[2], Map.of(FAKE_PACKAGE_NAME, createBatteryHistEntry(
+                        FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 16, 0, 0,
+                        0, 0, 0L, userId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, 0L, 0L, false)));
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
+        final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
+                appUsagePeriodMap = Map.of(0, Map.of(0, Map.of(Long.valueOf(userId), Map.of(
+                FAKE_PACKAGE_NAME, List.of(buildAppUsagePeriod(0, 6))))));
+
+        Map<Long, BatteryDiffData> batteryDiffDataMap = DataProcessor.getBatteryDiffDataMap(
+                mContext, batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                appUsagePeriodMap, Set.of(), Set.of());
+
+        assertThat(batteryDiffDataMap).hasSize(1);
+        assertThat(batteryDiffDataMap).containsKey(batteryHistoryKeys[0]);
+        BatteryDiffData batteryDiffData = batteryDiffDataMap.get(batteryHistoryKeys[0]);
+        assertThat(batteryDiffData.getStartTimestamp()).isEqualTo(batteryHistoryKeys[0]);
+        assertThat(batteryDiffData.getEndTimestamp()).isEqualTo(batteryHistoryKeys[2]);
+    }
+
+    @Test
+    public void generateBatteryUsageMap_returnsExpectedResult() {
         final long[] batteryHistoryKeys = new long[]{
                 1641045600000L, // 2022-01-01 22:00:00
                 1641049200000L, // 2022-01-01 23:00:00
@@ -940,7 +831,7 @@
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap = new HashMap<>();
         final int currentUserId = mContext.getUserId();
         final BatteryHistEntry fakeEntry = createBatteryHistEntry(
-                ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
+                FAKE_PACKAGE_NAME, "fake_label", /*consumePower=*/ 0,
                 /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
                 /*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
@@ -1030,19 +921,7 @@
         entryMap.put(entry.getKey(), entry);
         entryMap.put(fakeEntry.getKey(), fakeEntry);
         batteryHistoryMap.put(batteryHistoryKeys[4], entryMap);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
-                new ArrayList<>();
-        // Adds the day 1 data.
-        List<Long> timestamps =
-                List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
-        final List<Integer> levels = List.of(100, 100);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
-        // Adds the day 2 data.
-        timestamps = List.of(batteryHistoryKeys[2], batteryHistoryKeys[4]);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
-
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
         // Adds app usage data to test screen on time.
         final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
                 appUsagePeriodMap = new HashMap<>();
@@ -1066,8 +945,12 @@
         appUsagePeriodMap.get(1).put(0, appUsageMap);
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
-                DataProcessor.getBatteryUsageMap(
-                        mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap);
+                DataProcessor.generateBatteryUsageMap(
+                        mContext,
+                        DataProcessor.getBatteryDiffDataMap(mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                                appUsagePeriodMap, Set.of(), Set.of()),
+                        batteryLevelData);
 
         BatteryDiffData resultDiffData =
                 resultMap
@@ -1128,7 +1011,7 @@
     }
 
     @Test
-    public void getBatteryUsageMap_multipleUsers_returnsExpectedResult() {
+    public void generateBatteryUsageMap_multipleUsers_returnsExpectedResult() {
         final long[] batteryHistoryKeys = new long[]{
                 1641052800000L, // 2022-01-02 00:00:00
                 1641056400000L, // 2022-01-02 01:00:00
@@ -1217,17 +1100,15 @@
                 /*backgroundUsageTimeInMs=*/ 30L, /*isHidden=*/ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
-                new ArrayList<>();
-        List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
-        final List<Integer> levels = List.of(100, 100);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
-                DataProcessor.getBatteryUsageMap(
-                        mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
-                        /*appUsagePeriodMap=*/ null);
+                DataProcessor.generateBatteryUsageMap(
+                        mContext,
+                        DataProcessor.getBatteryDiffDataMap(mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        batteryLevelData);
 
         final BatteryDiffData resultDiffData =
                 resultMap
@@ -1247,7 +1128,7 @@
     }
 
     @Test
-    public void getBatteryUsageMap_usageTimeExceed_returnsExpectedResult() {
+    public void generateBatteryUsageMap_usageTimeExceed_returnsExpectedResult() {
         final long[] batteryHistoryKeys = new long[]{
                 1641052800000L, // 2022-01-02 00:00:00
                 1641056400000L, // 2022-01-02 01:00:00
@@ -1288,12 +1169,7 @@
                 /*backgroundUsageTimeInMs=*/ 7200000L, /*isHidden=*/ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
-                new ArrayList<>();
-        List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
-        final List<Integer> levels = List.of(100, 100);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
 
         // Adds app usage data to test screen on time.
         final Map<Integer, Map<Integer, Map<Long, Map<String, List<AppUsagePeriod>>>>>
@@ -1307,8 +1183,12 @@
         appUsagePeriodMap.get(0).put(0, appUsageMap);
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
-                DataProcessor.getBatteryUsageMap(
-                        mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap, appUsagePeriodMap);
+                DataProcessor.generateBatteryUsageMap(
+                        mContext,
+                        DataProcessor.getBatteryDiffDataMap(mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                                appUsagePeriodMap, Set.of(), Set.of()),
+                        batteryLevelData);
 
         final BatteryDiffData resultDiffData =
                 resultMap
@@ -1338,7 +1218,7 @@
     }
 
     @Test
-    public void getBatteryUsageMap_hideApplicationEntries_returnsExpectedResult() {
+    public void generateBatteryUsageMap_hideApplicationEntries_returnsExpectedResult() {
         final long[] batteryHistoryKeys = new long[]{
                 1641052800000L, // 2022-01-02 00:00:00
                 1641056400000L, // 2022-01-02 01:00:00
@@ -1403,19 +1283,17 @@
                 /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
-                new ArrayList<>();
-        List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
-        final List<Integer> levels = List.of(100, 100);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
         when(mPowerUsageFeatureProvider.getHideApplicationSet())
                 .thenReturn(Set.of("package1"));
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
-                DataProcessor.getBatteryUsageMap(
-                        mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
-                        /*appUsagePeriodMap=*/ null);
+                DataProcessor.generateBatteryUsageMap(
+                        mContext,
+                        DataProcessor.getBatteryDiffDataMap(mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        batteryLevelData);
 
         final BatteryDiffData resultDiffData =
                 resultMap
@@ -1431,7 +1309,7 @@
     }
 
     @Test
-    public void getBatteryUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
+    public void generateBatteryUsageMap_hideBackgroundUsageTime_returnsExpectedResult() {
         final long[] batteryHistoryKeys = new long[]{
                 1641052800000L, // 2022-01-02 00:00:00
                 1641056400000L, // 2022-01-02 01:00:00
@@ -1496,19 +1374,17 @@
                 /*backgroundUsageTimeInMs=*/ 20L, /*isHidden=*/ false);
         entryMap.put(entry.getKey(), entry);
         batteryHistoryMap.put(batteryHistoryKeys[2], entryMap);
-        final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay =
-                new ArrayList<>();
-        List<Long> timestamps = List.of(batteryHistoryKeys[0], batteryHistoryKeys[2]);
-        final List<Integer> levels = List.of(100, 100);
-        hourlyBatteryLevelsPerDay.add(
-                new BatteryLevelData.PeriodBatteryLevelData(timestamps, levels));
+        final BatteryLevelData batteryLevelData = generateBatteryLevelData(batteryHistoryKeys);
         when(mPowerUsageFeatureProvider.getHideBackgroundUsageTimeSet())
                 .thenReturn(new HashSet(Arrays.asList((CharSequence) "package2")));
 
         final Map<Integer, Map<Integer, BatteryDiffData>> resultMap =
-                DataProcessor.getBatteryUsageMap(
-                        mContext, hourlyBatteryLevelsPerDay, batteryHistoryMap,
-                        /*appUsagePeriodMap=*/ null);
+                DataProcessor.generateBatteryUsageMap(
+                        mContext,
+                        DataProcessor.getBatteryDiffDataMap(mContext,
+                                batteryLevelData.getHourlyBatteryLevelsPerDay(), batteryHistoryMap,
+                                /*appUsagePeriodMap=*/ null, Set.of(), Set.of()),
+                        batteryLevelData);
 
         final BatteryDiffData resultDiffData =
                 resultMap
@@ -1523,7 +1399,10 @@
     @Test
     public void generateBatteryDiffData_emptyBatteryEntryList_returnNull() {
         assertThat(DataProcessor.generateBatteryDiffData(mContext,
-                DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats))).isNull();
+                System.currentTimeMillis(),
+                DataProcessor.convertToBatteryHistEntry(null, mBatteryUsageStats),
+                /* systemAppsPackageNames= */ Set.of(),
+                /* systemAppsUids= */ Set.of())).isNull();
     }
 
     @Test
@@ -1574,7 +1453,10 @@
                 .when(mMockBatteryEntry4).getPowerComponentId();
 
         final BatteryDiffData batteryDiffData = DataProcessor.generateBatteryDiffData(mContext,
-                DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats));
+                System.currentTimeMillis(),
+                DataProcessor.convertToBatteryHistEntry(batteryEntryList, mBatteryUsageStats),
+                /* systemAppsPackageNames= */ Set.of(),
+                /* systemAppsUids= */ Set.of());
 
         assertBatteryDiffEntry(
                 batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
@@ -2041,9 +1923,9 @@
             final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
             final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
             final long screenOnTimeInMs) {
-        assertThat(entry.mBatteryHistEntry.mUserId).isEqualTo(userId);
-        assertThat(entry.mBatteryHistEntry.mUid).isEqualTo(uid);
-        assertThat(entry.mBatteryHistEntry.mConsumerType).isEqualTo(consumerType);
+        assertThat(entry.mUserId).isEqualTo(userId);
+        assertThat(entry.mUid).isEqualTo(uid);
+        assertThat(entry.mConsumerType).isEqualTo(consumerType);
         assertThat(entry.getPercentage()).isEqualTo(consumePercentage);
         assertThat(entry.mForegroundUsageConsumePower).isEqualTo(foregroundUsageConsumePower);
         assertThat(entry.mForegroundServiceUsageConsumePower)
@@ -2054,4 +1936,12 @@
         assertThat(entry.mBackgroundUsageTimeInMs).isEqualTo(backgroundUsageTimeInMs);
         assertThat(entry.mScreenOnTimeInMs).isEqualTo(screenOnTimeInMs);
     }
+
+    private BatteryLevelData generateBatteryLevelData(long[] timestamps) {
+        Map<Long, Integer> batteryLevelMap = new ArrayMap<>();
+        for (long timestamp : timestamps) {
+            batteryLevelMap.put(timestamp, 100);
+        }
+        return new BatteryLevelData(batteryLevelMap);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
index 8a1ba13..f72b333 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java
@@ -173,8 +173,8 @@
         doReturn(null).when(mContext).registerReceiver(any(), any());
         assertThat(
                 DatabaseUtils.sendBatteryEntryData(
-                        mContext, /*batteryEntryList=*/ null, mBatteryUsageStats,
-                        /*isFullChargeStart=*/ false))
+                        mContext, System.currentTimeMillis(), /*batteryEntryList=*/ null,
+                        mBatteryUsageStats, /*isFullChargeStart=*/ false))
                 .isNull();
     }
 
@@ -193,7 +193,10 @@
 
         final List<ContentValues> valuesList =
                 DatabaseUtils.sendBatteryEntryData(
-                        mContext, batteryEntryList, mBatteryUsageStats,
+                        mContext,
+                        System.currentTimeMillis(),
+                        batteryEntryList,
+                        mBatteryUsageStats,
                         /*isFullChargeStart=*/ false);
 
         assertThat(valuesList).hasSize(2);
@@ -216,6 +219,7 @@
         final List<ContentValues> valuesList =
                 DatabaseUtils.sendBatteryEntryData(
                         mContext,
+                        System.currentTimeMillis(),
                         new ArrayList<>(),
                         mBatteryUsageStats,
                         /*isFullChargeStart=*/ false);
@@ -235,6 +239,7 @@
         final List<ContentValues> valuesList =
                 DatabaseUtils.sendBatteryEntryData(
                         mContext,
+                        System.currentTimeMillis(),
                         /*batteryEntryList=*/ null,
                         mBatteryUsageStats,
                         /*isFullChargeStart=*/ false);
@@ -254,6 +259,7 @@
         final List<ContentValues> valuesList =
                 DatabaseUtils.sendBatteryEntryData(
                         mContext,
+                        System.currentTimeMillis(),
                         /*batteryEntryList=*/ null,
                         /*batteryUsageStats=*/ null,
                         /*isFullChargeStart=*/ false);
@@ -359,7 +365,7 @@
     }
 
     @Test
-    public void getHistoryMapSinceLastFullCharge_emptyCursorContent_returnEmptyMap() {
+    public void getHistoryMap_emptyCursorContent_returnEmptyMap() {
         final MatrixCursor cursor = new MatrixCursor(
                 new String[] {
                         BatteryHistEntry.KEY_UID,
@@ -367,36 +373,33 @@
                         BatteryHistEntry.KEY_TIMESTAMP});
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
-        assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge(
-                mContext, /*calendar=*/ null)).isEmpty();
+        assertThat(DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0)).isEmpty();
     }
 
     @Test
-    public void getHistoryMapSinceLastFullCharge_nullCursor_returnEmptyMap() {
+    public void getHistoryMap_nullCursor_returnEmptyMap() {
         DatabaseUtils.sFakeSupplier = () -> null;
-        assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge(
-                mContext, /*calendar=*/ null)).isEmpty();
+        assertThat(DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0)).isEmpty();
     }
 
     @Test
-    public void getHistoryMapSinceLastFullCharge_returnExpectedMap() {
+    public void getHistoryMap_returnExpectedMap() {
         final Long timestamp1 = Long.valueOf(1001L);
         final Long timestamp2 = Long.valueOf(1002L);
         final MatrixCursor cursor = getMatrixCursor();
         // Adds fake data into the cursor.
         cursor.addRow(new Object[] {
-                "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+                "app name1", timestamp1, 1, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, true});
         cursor.addRow(new Object[] {
-                "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+                "app name2", timestamp2, 2, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
         cursor.addRow(new Object[] {
-                "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+                "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
         cursor.addRow(new Object[] {
-                "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY});
+                "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY, false});
         DatabaseUtils.sFakeSupplier = () -> cursor;
 
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
-                DatabaseUtils.getHistoryMapSinceLastFullCharge(
-                        mContext, /*calendar=*/ null);
+                DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, timestamp1);
 
         assertThat(batteryHistMap).hasSize(2);
         // Verifies the BatteryHistEntry data for timestamp1.
@@ -412,7 +415,7 @@
     }
 
     @Test
-    public void getHistoryMapSinceLastFullCharge_withWorkProfile_returnExpectedMap()
+    public void getHistoryMap_withWorkProfile_returnExpectedMap()
             throws PackageManager.NameNotFoundException {
         doReturn("com.fake.package").when(mContext).getPackageName();
         doReturn(mMockContext).when(mContext).createPackageContextAsUser(
@@ -425,8 +428,7 @@
         DatabaseUtils.sFakeSupplier = () -> getMatrixCursor();
 
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistMap =
-                DatabaseUtils.getHistoryMapSinceLastFullCharge(
-                        mContext, /*calendar=*/ null);
+                DatabaseUtils.getHistoryMapSinceQueryTimestamp(mContext, 0);
 
         assertThat(batteryHistMap).isEmpty();
     }
@@ -571,6 +573,7 @@
                         BatteryHistEntry.KEY_PACKAGE_NAME,
                         BatteryHistEntry.KEY_TIMESTAMP,
                         BatteryHistEntry.KEY_UID,
-                        BatteryHistEntry.KEY_CONSUMER_TYPE});
+                        BatteryHistEntry.KEY_CONSUMER_TYPE,
+                        BatteryHistEntry.KEY_IS_FULL_CHARGE_CYCLE_START});
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
index 6ed10cd..68766e6 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageBaseTest.java
@@ -135,11 +135,6 @@
         }
 
         @Override
-        protected boolean isBatteryHistoryNeeded() {
-            return false;
-        }
-
-        @Override
         protected void refreshUi(int refreshType) {
             // Do nothing
         }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
index 941f444..8462867 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryEventDaoTest.java
@@ -16,6 +16,10 @@
 
 package com.android.settings.fuelgauge.batteryusage.db;
 
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_BATTERY_EVENT_TYPE;
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_BATTERY_LEVEL;
+import static com.android.settings.fuelgauge.batteryusage.db.BatteryEventEntity.KEY_TIMESTAMP;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import android.content.Context;
@@ -31,9 +35,14 @@
 import org.junit.runner.RunWith;
 import org.robolectric.RobolectricTestRunner;
 
+import java.util.List;
+
 /** Tests for {@link BatteryEventDao}. */
 @RunWith(RobolectricTestRunner.class)
 public final class BatteryEventDaoTest {
+    private static final long TIMESTAMP1 = System.currentTimeMillis();
+    private static final long TIMESTAMP2 = TIMESTAMP1 + 2;
+
     private Context mContext;
     private BatteryStateDatabase mDatabase;
     private BatteryEventDao mBatteryEventDao;
@@ -51,8 +60,44 @@
         BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
     }
 
+
     @Test
-    public void getAllAfter_returnExpectedResult() {
+    public void getLastFullChargeTimestamp_normalFlow_expectedBehavior() throws Exception {
+        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+                .setTimestamp(TIMESTAMP1)
+                .setBatteryEventType(3)
+                .setBatteryLevel(100)
+                .build());
+        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+                .setTimestamp(TIMESTAMP2)
+                .setBatteryEventType(4)
+                .setBatteryLevel(96)
+                .build());
+
+        final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
+        assertThat(cursor.getCount()).isEqualTo(1);
+        cursor.moveToFirst();
+        assertThat(cursor.getLong(0)).isEqualTo(TIMESTAMP1);
+    }
+
+    @Test
+    public void getLastFullChargeTimestamp_noLastFullChargeTime_returns0() throws Exception {
+        mBatteryEventDao.clearAll();
+        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+                .setTimestamp(TIMESTAMP2)
+                .setBatteryEventType(4)
+                .setBatteryLevel(96)
+                .build());
+
+        final Cursor cursor = mBatteryEventDao.getLastFullChargeTimestamp();
+
+        assertThat(cursor.getCount()).isEqualTo(1);
+        cursor.moveToFirst();
+        assertThat(cursor.getLong(0)).isEqualTo(0L);
+    }
+
+    @Test
+    public void getAllAfter_normalFlow_returnExpectedResult() {
         mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
                 .setTimestamp(100L)
                 .setBatteryEventType(1)
@@ -64,17 +109,44 @@
                 .setBatteryLevel(88)
                 .build());
 
-        final Cursor cursor = mBatteryEventDao.getAllAfter(160L);
+        final Cursor cursor = mBatteryEventDao.getAllAfter(160L, List.of(1, 2));
         assertThat(cursor.getCount()).isEqualTo(1);
         cursor.moveToFirst();
-        assertThat(cursor.getLong(cursor.getColumnIndex(BatteryEventEntity.KEY_TIMESTAMP)))
+        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
                 .isEqualTo(200L);
-        assertThat(cursor.getInt(cursor.getColumnIndex(BatteryEventEntity.KEY_BATTERY_EVENT_TYPE)))
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
                 .isEqualTo(2);
-        assertThat(cursor.getInt(cursor.getColumnIndex(BatteryEventEntity.KEY_BATTERY_LEVEL)))
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
                 .isEqualTo(88);
 
         mBatteryEventDao.clearAll();
         assertThat(mBatteryEventDao.getAll()).isEmpty();
     }
+
+    @Test
+    public void getAllAfter_filterBatteryTypes_returnExpectedResult() {
+        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+                .setTimestamp(100L)
+                .setBatteryEventType(1)
+                .setBatteryLevel(66)
+                .build());
+        mBatteryEventDao.insert(BatteryEventEntity.newBuilder()
+                .setTimestamp(200L)
+                .setBatteryEventType(2)
+                .setBatteryLevel(88)
+                .build());
+
+        final Cursor cursor = mBatteryEventDao.getAllAfter(0L, List.of(1));
+        assertThat(cursor.getCount()).isEqualTo(1);
+        cursor.moveToFirst();
+        assertThat(cursor.getLong(cursor.getColumnIndex(KEY_TIMESTAMP)))
+                .isEqualTo(100L);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_EVENT_TYPE)))
+                .isEqualTo(1);
+        assertThat(cursor.getInt(cursor.getColumnIndex(KEY_BATTERY_LEVEL)))
+                .isEqualTo(66);
+
+        mBatteryEventDao.clearAll();
+        assertThat(mBatteryEventDao.getAll()).isEmpty();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
index 57cf648..b3dba4e 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDaoTest.java
@@ -37,9 +37,10 @@
 @RunWith(RobolectricTestRunner.class)
 public final class BatteryStateDaoTest {
     private static final int CURSOR_COLUMN_SIZE = 9;
-    private static final long TIMESTAMP1 = System.currentTimeMillis();
-    private static final long TIMESTAMP2 = System.currentTimeMillis() + 2;
-    private static final long TIMESTAMP3 = System.currentTimeMillis() + 4;
+    private static final long CURRENT = System.currentTimeMillis();
+    private static final long TIMESTAMP1 = CURRENT;
+    private static final long TIMESTAMP2 = CURRENT + 2;
+    private static final long TIMESTAMP3 = CURRENT + 4;
     private static final String PACKAGE_NAME1 = "com.android.apps.settings";
     private static final String PACKAGE_NAME2 = "com.android.apps.calendar";
     private static final String PACKAGE_NAME3 = "com.android.apps.gmail";
@@ -67,7 +68,7 @@
     }
 
     @Test
-    public void batteryStateDao_insertAll() throws Exception {
+    public void insertAll_normalFlow_expectedBehavior() throws Exception {
         final List<BatteryState> states = mBatteryStateDao.getAllAfter(TIMESTAMP1);
         assertThat(states).hasSize(2);
         // Verifies the queried battery states.
@@ -76,8 +77,26 @@
     }
 
     @Test
-    public void batteryStateDao_getCursorSinceLastFullCharge() throws Exception {
-        final Cursor cursor1 = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP1);
+    public void getLatestTimestamp_normalFlow_expectedBehavior() throws Exception {
+        final Cursor cursor1 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP1 - 1);
+        assertThat(cursor1.getCount()).isEqualTo(1);
+        cursor1.moveToFirst();
+        assertThat(cursor1.getLong(0)).isEqualTo(0L);
+
+        final Cursor cursor2 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP2);
+        assertThat(cursor2.getCount()).isEqualTo(1);
+        cursor2.moveToFirst();
+        assertThat(cursor2.getLong(0)).isEqualTo(TIMESTAMP2);
+
+        final Cursor cursor3 = mBatteryStateDao.getLatestTimestampBefore(TIMESTAMP3 + 1);
+        assertThat(cursor3.getCount()).isEqualTo(1);
+        cursor3.moveToFirst();
+        assertThat(cursor3.getLong(0)).isEqualTo(TIMESTAMP3);
+    }
+
+    @Test
+    public void getBatteryStatesAfter_normalFlow_expectedBehavior() throws Exception {
+        final Cursor cursor1 = mBatteryStateDao.getBatteryStatesAfter(TIMESTAMP1);
         assertThat(cursor1.getCount()).isEqualTo(3);
         assertThat(cursor1.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
         // Verifies the queried first battery state.
@@ -90,7 +109,7 @@
         cursor1.moveToNext();
         assertThat(cursor1.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME3);
 
-        final Cursor cursor2 = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP3);
+        final Cursor cursor2 = mBatteryStateDao.getBatteryStatesAfter(TIMESTAMP3);
         assertThat(cursor2.getCount()).isEqualTo(1);
         assertThat(cursor2.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
         // Verifies the queried first battery state.
@@ -99,25 +118,7 @@
     }
 
     @Test
-    public void batteryStateDao_getCursorSinceLastFullCharge_noFullChargeData_returnSevenDaysData()
-            throws Exception {
-        mBatteryStateDao.clearAll();
-        BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP3, PACKAGE_NAME3);
-        BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP2, PACKAGE_NAME2);
-        BatteryTestUtils.insertDataToBatteryStateTable(mContext, TIMESTAMP1, PACKAGE_NAME1);
-        final Cursor cursor = mBatteryStateDao.getCursorSinceLastFullCharge(TIMESTAMP2);
-        assertThat(cursor.getCount()).isEqualTo(2);
-        assertThat(cursor.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
-        // Verifies the queried first battery state.
-        cursor.moveToFirst();
-        assertThat(cursor.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME2);
-        // Verifies the queried third battery state.
-        cursor.moveToNext();
-        assertThat(cursor.getString(3 /*packageName*/)).isEqualTo(PACKAGE_NAME3);
-    }
-
-    @Test
-    public void batteryStateDao_clearAllBefore() throws Exception {
+    public void clearAllBefore_normalFlow_expectedBehavior() throws Exception {
         mBatteryStateDao.clearAllBefore(TIMESTAMP2);
 
         final List<BatteryState> states = mBatteryStateDao.getAllAfter(0);
@@ -127,20 +128,20 @@
     }
 
     @Test
-    public void batteryStateDao_clearAll() throws Exception {
+    public void clearAll_normalFlow_expectedBehavior() throws Exception {
         assertThat(mBatteryStateDao.getAllAfter(0)).hasSize(3);
         mBatteryStateDao.clearAll();
         assertThat(mBatteryStateDao.getAllAfter(0)).isEmpty();
     }
 
     @Test
-    public void getInstance_createNewInstance() throws Exception {
+    public void getInstance_createNewInstance_returnsExpectedResult() throws Exception {
         BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
         assertThat(BatteryStateDatabase.getInstance(mContext)).isNotNull();
     }
 
     @Test
-    public void getDistinctTimestampCount_returnsExpectedResult() {
+    public void getDistinctTimestampCount_normalFlow_returnsExpectedResult() {
         assertThat(mBatteryStateDao.getDistinctTimestampCount(/*timestamp=*/ 0))
                 .isEqualTo(3);
         assertThat(mBatteryStateDao.getDistinctTimestampCount(TIMESTAMP1))
@@ -148,7 +149,7 @@
     }
 
     @Test
-    public void getDistinctTimestamps_returnsExpectedResult() {
+    public void getDistinctTimestamps_normalFlow_returnsExpectedResult() {
         final List<Long> timestamps =
                 mBatteryStateDao.getDistinctTimestamps(/*timestamp=*/ 0);
 
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
new file mode 100644
index 0000000..6f73954
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotDaoTest.java
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.database.Cursor;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.BatteryTestUtils;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+import java.util.List;
+
+/** Tests for {@link BatteryUsageSlotDao}. */
+@RunWith(RobolectricTestRunner.class)
+public final class BatteryUsageSlotDaoTest {
+    private static final int CURSOR_COLUMN_SIZE = 3;
+    private static final long CURRENT = System.currentTimeMillis();
+    private static final long TIMESTAMP1 = CURRENT;
+    private static final long TIMESTAMP2 = CURRENT + 2;
+    private static final String BATTERY_USAGE_SLOT_STRING1 = "BATTERY_USAGE_SLOT_STRING1";
+    private static final String BATTERY_USAGE_SLOT_STRING2 = "BATTERY_USAGE_SLOT_STRING2";
+
+    private Context mContext;
+    private BatteryStateDatabase mDatabase;
+    private BatteryUsageSlotDao mBatteryUsageSlotDao;
+
+    @Before
+    public void setUp() {
+        mContext = ApplicationProvider.getApplicationContext();
+        mDatabase = BatteryTestUtils.setUpBatteryStateDatabase(mContext);
+        mBatteryUsageSlotDao = mDatabase.batteryUsageSlotDao();
+        mBatteryUsageSlotDao.insert(
+                new BatteryUsageSlotEntity(TIMESTAMP1, BATTERY_USAGE_SLOT_STRING1));
+        mBatteryUsageSlotDao.insert(
+                new BatteryUsageSlotEntity(TIMESTAMP2, BATTERY_USAGE_SLOT_STRING2));
+    }
+
+    @After
+    public void closeDb() {
+        mDatabase.close();
+        BatteryStateDatabase.setBatteryStateDatabase(/*database=*/ null);
+    }
+
+    @Test
+    public void getAll_normalFlow_expectedBehavior() throws Exception {
+        final List<BatteryUsageSlotEntity> entities = mBatteryUsageSlotDao.getAll();
+        assertThat(entities).hasSize(2);
+        assertThat(entities.get(0).timestamp).isEqualTo(TIMESTAMP1);
+        assertThat(entities.get(0).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING1);
+        assertThat(entities.get(1).timestamp).isEqualTo(TIMESTAMP2);
+        assertThat(entities.get(1).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING2);
+    }
+
+    @Test
+    public void getAllAfter_normalFlow_expectedBehavior() throws Exception {
+        final Cursor cursor1 = mBatteryUsageSlotDao.getAllAfter(TIMESTAMP1);
+        assertThat(cursor1.getCount()).isEqualTo(2);
+        assertThat(cursor1.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
+        cursor1.moveToFirst();
+        assertThat(cursor1.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP1);
+        cursor1.moveToNext();
+        assertThat(cursor1.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP2);
+
+        final Cursor cursor2 = mBatteryUsageSlotDao.getAllAfter(TIMESTAMP1 + 1);
+        assertThat(cursor2.getCount()).isEqualTo(1);
+        assertThat(cursor2.getColumnCount()).isEqualTo(CURSOR_COLUMN_SIZE);
+        cursor2.moveToFirst();
+        assertThat(cursor2.getLong(1 /*timestamp*/)).isEqualTo(TIMESTAMP2);
+    }
+
+    @Test
+    public void clearAllBefore_normalFlow_expectedBehavior() throws Exception {
+        mBatteryUsageSlotDao.clearAllBefore(TIMESTAMP1);
+
+        final List<BatteryUsageSlotEntity> entities = mBatteryUsageSlotDao.getAll();
+        assertThat(entities).hasSize(1);
+        assertThat(entities.get(0).timestamp).isEqualTo(TIMESTAMP2);
+        assertThat(entities.get(0).batteryUsageSlot).isEqualTo(BATTERY_USAGE_SLOT_STRING2);
+    }
+
+    @Test
+    public void clearAll_normalFlow_expectedBehavior() throws Exception {
+        mBatteryUsageSlotDao.clearAll();
+
+        assertThat(mBatteryUsageSlotDao.getAll()).isEmpty();
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
new file mode 100644
index 0000000..ef276eb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/db/BatteryUsageSlotEntityTest.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.fuelgauge.batteryusage.db;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+
+/** Tests for {@link BatteryUsageSlotEntity}. */
+@RunWith(RobolectricTestRunner.class)
+public final class BatteryUsageSlotEntityTest {
+
+    @Test
+    public void testBuilder_returnsExpectedResult() {
+        final long timestamp = 10001L;
+        final String batteryUsageSlotString = "batteryUsageSlotString";
+
+        BatteryUsageSlotEntity entity = BatteryUsageSlotEntity
+                .newBuilder()
+                .setTimestamp(timestamp)
+                .setBatteryUsageSlot(batteryUsageSlotString)
+                .build();
+
+        // Verifies the app relative information.
+        assertThat(entity.timestamp).isEqualTo(timestamp);
+        assertThat(entity.batteryUsageSlot).isEqualTo(batteryUsageSlotString);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
index e99b17f..77be038 100644
--- a/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
+++ b/tests/robotests/src/com/android/settings/testutils/BatteryTestUtils.java
@@ -36,6 +36,8 @@
 import com.android.settings.fuelgauge.batteryusage.DeviceBatteryState;
 import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEvent;
 import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
+import com.android.settings.fuelgauge.batteryusage.PowerAnomalyKey;
+import com.android.settings.fuelgauge.batteryusage.PowerAnomalyType;
 import com.android.settings.fuelgauge.batteryusage.WarningBannerInfo;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
 import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
@@ -209,8 +211,8 @@
     /** Create a power anomaly event proto of adaptive brightness. */
     public static PowerAnomalyEvent createAdaptiveBrightnessAnomalyEvent() {
         return PowerAnomalyEvent.newBuilder()
-                .setType("settings banner")
-                .setKey("adaptive_brightness")
+                .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
+                .setKey(PowerAnomalyKey.KEY_BRIGHTNESS)
                 .setWarningBannerInfo(WarningBannerInfo.newBuilder()
                         .setMainButtonDestination(AutoBrightnessSettings.class.getName())
                         .setMainButtonSourceMetricsCategory(SettingsEnums.SETTINGS_AUTO_BRIGHTNESS)
@@ -221,8 +223,8 @@
     /** Create a power anomaly event proto of screen timeout. */
     public static PowerAnomalyEvent createScreenTimeoutAnomalyEvent() {
         return PowerAnomalyEvent.newBuilder()
-                .setType("settings banner")
-                .setKey("screen_timeout")
+                .setType(PowerAnomalyType.TYPE_SETTINGS_BANNER)
+                .setKey(PowerAnomalyKey.KEY_SCREEN_TIMEOUT)
                 .setWarningBannerInfo(WarningBannerInfo.newBuilder()
                         .setMainButtonDestination(ScreenTimeoutSettings.class.getName())
                         .setMainButtonSourceMetricsCategory(SettingsEnums.SCREEN_TIMEOUT)
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
index 75d49fe..e67717d 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java
@@ -23,6 +23,7 @@
 
 import static com.android.settings.wifi.WifiUtils.setCanShowWifiHotspotCached;
 import static com.android.settings.wifi.repository.WifiHotspotRepository.BAND_2GHZ_5GHZ_6GHZ;
+import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_INSTANT_HOTSPOT;
 import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_WIFI_HOTSPOT_SECURITY;
 import static com.android.settings.wifi.tether.WifiTetherSettings.KEY_WIFI_HOTSPOT_SPEED;
 
@@ -90,6 +91,7 @@
     private static final String[] WIFI_REGEXS = {"wifi_regexs"};
     private static final String SSID = "ssid";
     private static final String PASSWORD = "password";
+    private static final String SUMMARY = "summary";
 
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
@@ -133,6 +135,10 @@
     private WifiTetherAutoOffPreferenceController mWifiTetherAutoOffPreferenceController;
     @Mock
     private WifiTetherMaximizeCompatibilityPreferenceController mMaxCompatibilityPrefController;
+    @Mock
+    private Preference mInstantHotspot;
+    @Mock
+    private LiveData<String> mInstantHotspotSummary;
 
     private WifiTetherSettings mSettings;
 
@@ -155,8 +161,10 @@
         when(provider.getWifiTetherViewModel(mock(ViewModelStoreOwner.class)))
                 .thenReturn(mWifiTetherViewModel);
         when(mWifiTetherViewModel.isSpeedFeatureAvailable()).thenReturn(false);
+        when(mWifiTetherViewModel.isInstantHotspotFeatureAvailable()).thenReturn(true);
         when(mWifiTetherViewModel.getSecuritySummary()).thenReturn(mSecuritySummary);
         when(mWifiTetherViewModel.getSpeedSummary()).thenReturn(mSpeedSummary);
+        when(mWifiTetherViewModel.getInstantHotspotSummary()).thenReturn(mInstantHotspotSummary);
 
         mSettings = spy(new WifiTetherSettings(mWifiRestriction));
         mSettings.mMainSwitchBar = mMainSwitchBar;
@@ -172,6 +180,8 @@
         mSettings.mWifiTetherViewModel = mWifiTetherViewModel;
         when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SECURITY)).thenReturn(mWifiHotspotSecurity);
         when(mSettings.findPreference(KEY_WIFI_HOTSPOT_SPEED)).thenReturn(mWifiHotspotSpeed);
+        when(mSettings.findPreference(KEY_INSTANT_HOTSPOT)).thenReturn(mInstantHotspot);
+        mSettings.mInstantHotspot = mInstantHotspot;
     }
 
     @Test
@@ -373,6 +383,47 @@
     }
 
     @Test
+    public void setupInstantHotspot_featureNotAvailable_doNothing() {
+        mSettings.setupInstantHotspot(false /* isFeatureAvailable */);
+
+        verify(mSettings, never()).findPreference(KEY_INSTANT_HOTSPOT);
+        verify(mWifiTetherViewModel, never()).getInstantHotspotSummary();
+    }
+
+    @Test
+    public void setupInstantHotspot_featureAvailable_doSetup() {
+        when(mWifiTetherViewModel.isInstantHotspotFeatureAvailable()).thenReturn(true);
+
+        mSettings.setupInstantHotspot(true /* isFeatureAvailable */);
+
+        verify(mSettings).findPreference(KEY_INSTANT_HOTSPOT);
+        verify(mInstantHotspotSummary).observe(any(), any());
+        verify(mInstantHotspot).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void onInstantHotspotChanged_nullRecord_setVisibleFalse() {
+        mSettings.onInstantHotspotChanged(null);
+
+        verify(mInstantHotspot).setVisible(false);
+    }
+
+    @Test
+    public void onInstantHotspotChanged_summaryNull_setVisibleFalse() {
+        mSettings.onInstantHotspotChanged(null);
+
+        verify(mInstantHotspot).setVisible(false);
+    }
+
+    @Test
+    public void onInstantHotspotChanged_summaryNotNull_setVisibleAndSummary() {
+        mSettings.onInstantHotspotChanged(SUMMARY);
+
+        verify(mInstantHotspot).setVisible(true);
+        verify(mInstantHotspot).setSummary(SUMMARY);
+    }
+
+    @Test
     public void buildNewConfig_speedFeatureIsAvailableAndPasswordChanged_bandShouldNotBeLost() {
         String newPassword = "new" + PASSWORD;
         SoftApConfiguration currentConfig = new SoftApConfiguration.Builder()
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
index 342405a..0235a7b 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppPreferenceTest.kt
@@ -21,7 +21,8 @@
 import android.content.pm.ApplicationInfo
 import android.content.pm.PackageManager
 import android.content.pm.ResolveInfo
-import android.os.Build
+import android.provider.DeviceConfig.NAMESPACE_WINDOW_MANAGER
+import android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
 import androidx.compose.runtime.CompositionLocalProvider
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.test.assertIsDisplayed
@@ -34,15 +35,13 @@
 import androidx.test.core.app.ApplicationProvider
 import androidx.test.ext.junit.runners.AndroidJUnit4
 import com.android.dx.mockito.inline.extended.ExtendedMockito
-import android.provider.DeviceConfig.NAMESPACE_WINDOW_MANAGER
 import com.android.settings.R
-import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 import com.android.settings.applications.appcompat.UserAspectRatioDetails
 import com.android.settings.applications.appcompat.UserAspectRatioManager
+import com.android.settings.applications.appinfo.AppInfoDashboardFragment
 import com.android.settings.spa.app.appinfo.AppInfoSettingsProvider
 import com.android.settings.testutils.TestDeviceConfig
 import com.android.settingslib.spa.testutils.delay
-import com.android.settingslib.spa.testutils.waitUntilExists
 import org.junit.After
 import org.junit.Before
 import org.junit.Rule
@@ -51,8 +50,6 @@
 import org.mockito.Mock
 import org.mockito.Mockito.any
 import org.mockito.Mockito.anyInt
-import org.mockito.Mockito.eq
-import org.mockito.Mockito.mock
 import org.mockito.MockitoSession
 import org.mockito.Spy
 import org.mockito.quality.Strictness
@@ -77,8 +74,6 @@
     private val aspectRatioEnabledConfig =
         TestDeviceConfig(NAMESPACE_WINDOW_MANAGER, "enable_app_compat_user_aspect_ratio_settings")
 
-    private lateinit var userAspectRatioManager: UserAspectRatioManager
-
     @Mock
     private lateinit var packageManager: PackageManager
 
@@ -92,7 +87,6 @@
             .startMocking()
         whenever(context.resources).thenReturn(resources)
         whenever(context.packageManager).thenReturn(packageManager)
-        userAspectRatioManager = mock(UserAspectRatioManager::class.java)
     }
 
     @After
@@ -130,6 +124,8 @@
 
     @Test
     fun whenCannotDisplayAspectRatioUiAndConfigTrue_notDisplayed() {
+        // True is ignored but need this here or getBoolean will complain null object
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true)
         setConfig(true)
 
         setContent()
@@ -139,6 +135,8 @@
 
     @Test
     fun whenCanDisplayAspectRatioUiAndConfigTrue_Displayed() {
+        // True is ignored but need this here or getBoolean will complain null object
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true)
         setConfig(true)
         whenever(packageManager.queryIntentActivities(any(), anyInt()))
             .thenReturn(listOf(RESOLVE_INFO))
@@ -155,6 +153,8 @@
 
     @Test
     fun onClick_startActivity() {
+        // True is ignored but need this here or getBoolean will complain null object
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true)
         setConfig(true)
         whenever(packageManager.queryIntentActivities(any(), anyInt()))
             .thenReturn(listOf(RESOLVE_INFO))
@@ -188,8 +188,14 @@
         composeTestRule.delay()
     }
 
+    private fun mockProperty(propertyName: String, value: Boolean) {
+        val prop = PackageManager.Property(
+            propertyName, value, PACKAGE_NAME, "" /* className */)
+        whenever(packageManager.getProperty(propertyName, PACKAGE_NAME)).thenReturn(prop)
+    }
+
     private companion object {
-        const val PACKAGE_NAME = "package.name"
+        const val PACKAGE_NAME = "com.test.mypackage"
         const val UID = 123
         val APP = ApplicationInfo().apply {
             packageName = PACKAGE_NAME
diff --git a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
index 0d2869c..c314655 100644
--- a/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
+++ b/tests/spa_unit/src/com/android/settings/spa/app/appcompat/UserAspectRatioAppsPageProviderTest.kt
@@ -154,14 +154,14 @@
             .isEqualTo(context.getString(R.string.user_aspect_ratio_half_screen))
     }
 
-    private fun setSummaryState(override: Int): State<String> {
+    private fun setSummaryState(userOverride: Int): State<String> {
         val listModel = UserAspectRatioAppListModel(context)
         lateinit var summaryState: State<String>
         composeTestRule.setContent {
             summaryState = listModel.getSummary(option = 0,
                 record = UserAspectRatioAppListItemModel(
                     app = APP,
-                    override = override,
+                    userOverride = userOverride,
                     suggested = false,
                     canDisplay = true,
                 ))
@@ -182,13 +182,13 @@
         }
         private val APP_RECORD_SUGGESTED = UserAspectRatioAppListItemModel(
             APP,
-            override = USER_MIN_ASPECT_RATIO_UNSET,
+            userOverride = USER_MIN_ASPECT_RATIO_UNSET,
             suggested = true,
             canDisplay = true
         )
         private val APP_RECORD_NOT_DISPLAYED = UserAspectRatioAppListItemModel(
             APP,
-            override = USER_MIN_ASPECT_RATIO_UNSET,
+            userOverride = USER_MIN_ASPECT_RATIO_UNSET,
             suggested = true,
             canDisplay = false
         )
diff --git a/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java b/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
index f4dcaf8..6cc386b 100644
--- a/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
+++ b/tests/unit/src/com/android/settings/applications/appcompat/UserAspectRatioManagerTest.java
@@ -22,6 +22,8 @@
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_FULLSCREEN;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_SPLIT_SCREEN;
 import static android.content.pm.PackageManager.USER_MIN_ASPECT_RATIO_UNSET;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE;
+import static android.view.WindowManager.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE;
 
 import static com.android.settings.applications.appcompat.UserAspectRatioManager.KEY_ENABLE_USER_ASPECT_RATIO_FULLSCREEN;
 import static com.android.settings.applications.appcompat.UserAspectRatioManager.KEY_ENABLE_USER_ASPECT_RATIO_SETTINGS;
@@ -37,6 +39,7 @@
 import android.content.Context;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.provider.DeviceConfig;
@@ -63,12 +66,13 @@
     private UserAspectRatioManager mUtils;
     private String mOriginalSettingsFlag;
     private String mOriginalFullscreenFlag;
+    private String mPackageName = "com.test.mypackage";
 
     @Before
     public void setUp() {
         mContext = spy(ApplicationProvider.getApplicationContext());
         mResources = spy(mContext.getResources());
-        mUtils = spy(new UserAspectRatioManager(mContext));
+        mUtils = new UserAspectRatioManager(mContext);
 
         when(mContext.getResources()).thenReturn(mResources);
 
@@ -105,6 +109,29 @@
     }
 
     @Test
+    public void testCanDisplayAspectRatioUi_hasLauncher_propertyFalse_returnFalse()
+            throws PackageManager.NameNotFoundException {
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, false);
+
+        final ApplicationInfo canDisplay = new ApplicationInfo();
+        canDisplay.packageName = mPackageName;
+        addResolveInfoLauncherEntry(canDisplay.packageName);
+
+        assertFalse(mUtils.canDisplayAspectRatioUi(canDisplay));
+    }
+
+    @Test
+    public void testCanDisplayAspectRatioUi_noLauncher_propertyTrue_returnFalse()
+            throws PackageManager.NameNotFoundException {
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE, true);
+
+        final ApplicationInfo noLauncherEntry = new ApplicationInfo();
+        noLauncherEntry.packageName = mPackageName;
+
+        assertFalse(mUtils.canDisplayAspectRatioUi(noLauncherEntry));
+    }
+
+    @Test
     public void testIsFeatureEnabled() {
         assertTrue(UserAspectRatioManager.isFeatureEnabled(mContext));
     }
@@ -123,33 +150,56 @@
 
     @Test
     public void testIsFullscreenOptionEnabled() {
-        assertTrue(mUtils.isFullscreenOptionEnabled());
+        assertTrue(mUtils.isFullscreenOptionEnabled(mPackageName));
     }
 
     @Test
     public void testIsFullscreenOptionEnabled_settingsDisabled_returnFalse() {
         setAspectRatioFullscreenBuildTimeFlagEnabled(false);
-        assertFalse(mUtils.isFullscreenOptionEnabled());
+        assertFalse(mUtils.isFullscreenOptionEnabled(mPackageName));
     }
 
     @Test
     public void testIsFullscreenOptionEnabled_disabledBuildTimeFlag_returnFalse() {
         setAspectRatioFullscreenBuildTimeFlagEnabled(false);
-        assertFalse(mUtils.isFullscreenOptionEnabled());
+        assertFalse(mUtils.isFullscreenOptionEnabled(mPackageName));
     }
 
     @Test
     public void testIsFullscreenOptionEnabled_disabledRuntimeFlag_returnFalse() {
         setAspectRatioFullscreenDeviceConfigEnabled("false" /* enabled */, false /*makeDefault */);
-        assertFalse(mUtils.isFullscreenOptionEnabled());
+        assertFalse(mUtils.isFullscreenOptionEnabled(mPackageName));
     }
 
     @Test
-    public void containsAspectRatioOption_fullscreen() {
-        assertTrue(mUtils.containsAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN));
+    public void testIsFullscreenOptionEnabled_propertyFalse_returnsFalse()
+            throws PackageManager.NameNotFoundException {
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE, false);
+        assertFalse(mUtils.isFullscreenOptionEnabled(mPackageName));
+    }
 
-        when(mUtils.isFullscreenOptionEnabled()).thenReturn(false);
-        assertFalse(mUtils.containsAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN));
+    @Test
+    public void testIsFullscreenOptionEnabled_propertyTrue_configDisabled_returnsFalse()
+            throws PackageManager.NameNotFoundException {
+        mockProperty(PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE, true);
+        setAspectRatioFullscreenDeviceConfigEnabled("false" /* enabled */, false /*makeDefault */);
+
+        assertFalse(mUtils.isFullscreenOptionEnabled(mPackageName));
+    }
+
+    @Test
+    public void testHasAspectRatioOption_fullscreen() {
+        assertTrue(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mPackageName));
+        assertTrue(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
+                mPackageName));
+
+        // Only fullscreen option should be disabled
+        when(mUtils.isFullscreenOptionEnabled(mPackageName)).thenReturn(false);
+        assertFalse(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mPackageName));
+        assertTrue(mUtils.hasAspectRatioOption(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
+                mPackageName));
     }
 
     @Test
@@ -157,38 +207,47 @@
         // R.string.user_aspect_ratio_app_default
         final String appDefault = ResourcesUtils.getResourcesString(mContext,
                 "user_aspect_ratio_app_default");
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET))
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_UNSET, mPackageName))
                 .isEqualTo(appDefault);
         // should always return default if value does not correspond to anything
-        assertThat(mUtils.getUserMinAspectRatioEntry(-1))
+        assertThat(mUtils.getUserMinAspectRatioEntry(-1, mPackageName))
                 .isEqualTo(appDefault);
         // R.string.user_aspect_ratio_half_screen
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext,
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_SPLIT_SCREEN,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
                         "user_aspect_ratio_half_screen"));
         // R.string.user_aspect_ratio_3_2
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_3_2))
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_3_2, mPackageName))
                 .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_3_2"));
         // R,string.user_aspect_ratio_4_3
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_4_3))
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_4_3, mPackageName))
                 .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_4_3"));
         // R.string.user_aspect_ratio_16_9
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_16_9))
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_16_9, mPackageName))
                 .isEqualTo(ResourcesUtils.getResourcesString(mContext, "user_aspect_ratio_16_9"));
         // R.string.user_aspect_ratio_fullscreen
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext,
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
                         "user_aspect_ratio_fullscreen"));
     }
 
     @Test
     public void testGetUserMinAspectRatioEntry_fullscreenDisabled_shouldReturnDefault() {
         setAspectRatioFullscreenBuildTimeFlagEnabled(false);
-        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN))
-                .isEqualTo(ResourcesUtils.getResourcesString(mContext,
+        assertThat(mUtils.getUserMinAspectRatioEntry(USER_MIN_ASPECT_RATIO_FULLSCREEN,
+                mPackageName)).isEqualTo(ResourcesUtils.getResourcesString(mContext,
                         "user_aspect_ratio_app_default"));
     }
 
+    private void mockProperty(String propertyName, boolean value)
+            throws PackageManager.NameNotFoundException {
+        PackageManager.Property prop = new PackageManager.Property(
+                propertyName, value, mPackageName, "" /* className */);
+        PackageManager pm = mock(PackageManager.class);
+        when(mContext.getPackageManager()).thenReturn(pm);
+        when(pm.getProperty(propertyName, mPackageName)).thenReturn(prop);
+    }
+
     private void setAspectRatioSettingsBuildTimeFlagEnabled(boolean enabled) {
         when(mResources.getBoolean(R.bool.config_appCompatUserAppAspectRatioSettingsIsEnabled))
                 .thenReturn(enabled);
diff --git a/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java b/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java
new file mode 100644
index 0000000..4aef552
--- /dev/null
+++ b/tests/unit/src/com/android/settings/wifi/repository/SharedConnectivityRepositoryTest.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.wifi.repository;
+
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+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.app.PendingIntent;
+import android.content.Context;
+import android.content.Intent;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+public class SharedConnectivityRepositoryTest {
+
+    @Rule
+    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Spy
+    private Context mContext = ApplicationProvider.getApplicationContext();
+    @Mock
+    private SharedConnectivityManager mManager;
+
+    private SharedConnectivityRepository mRepository;
+    private PendingIntent mIntent = PendingIntent
+            .getActivity(mContext, 0, new Intent("test"), FLAG_IMMUTABLE);
+    private SharedConnectivitySettingsState mState = new SharedConnectivitySettingsState.Builder()
+            .setInstantTetherSettingsPendingIntent(mIntent).build();
+
+    @Before
+    public void setUp() {
+        when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(mManager);
+        when(mManager.getSettingsState()).thenReturn(mState);
+
+        mRepository = spy(new SharedConnectivityRepository(mContext, true /* isConfigEnabled */));
+    }
+
+    @Test
+    public void constructor_configEnabled_registerCallback() {
+        verify(mManager).registerCallback(any(), any());
+    }
+
+    @Test
+    public void constructor_configNotEnabled_doNotRegisterCallback() {
+        SharedConnectivityManager manager = mock(SharedConnectivityManager.class);
+        when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(manager);
+
+        mRepository = new SharedConnectivityRepository(mContext, false /* isConfigEnabled */);
+
+        verify(manager, never()).registerCallback(any(), any());
+    }
+
+    @Test
+    public void isServiceAvailable_configEnabled_returnTrue() {
+        mRepository = new SharedConnectivityRepository(mContext, true /* isConfigEnabled */);
+
+        assertThat(mRepository.isServiceAvailable()).isTrue();
+    }
+
+    @Test
+    public void isServiceAvailable_configNotEnabled_returnFalse() {
+        mRepository = new SharedConnectivityRepository(mContext, false /* isConfigEnabled */);
+
+        assertThat(mRepository.isServiceAvailable()).isFalse();
+    }
+
+    @Test
+    public void getSettingsState_isNotNull() {
+        assertThat(mRepository.getSettingsState()).isNotNull();
+    }
+
+    @Test
+    public void handleLaunchSettings_managerNull_doNothing() {
+        when(mContext.getSystemService(SharedConnectivityManager.class)).thenReturn(null);
+        mRepository = spy(new SharedConnectivityRepository(mContext, true /* isConfigEnabled */));
+
+        mRepository.handleLaunchSettings();
+
+        verify(mRepository, never()).sendSettingsIntent(mIntent);
+    }
+
+    @Test
+    public void handleLaunchSettings_stageNull_doNothing() {
+        when(mManager.getSettingsState()).thenReturn(null);
+
+        mRepository.handleLaunchSettings();
+
+        verify(mRepository, never()).sendSettingsIntent(mIntent);
+    }
+
+    @Test
+    public void handleLaunchSettings_intentNull_doNothing() {
+        mState = new SharedConnectivitySettingsState.Builder()
+                .setInstantTetherSettingsPendingIntent(null).build();
+        when(mManager.getSettingsState()).thenReturn(mState);
+
+        mRepository.handleLaunchSettings();
+
+        verify(mRepository, never()).sendSettingsIntent(mIntent);
+    }
+
+    @Test
+    public void handleLaunchSettings_allReady_sendSettingsIntent() {
+        mRepository.handleLaunchSettings();
+
+        verify(mRepository).sendSettingsIntent(mIntent);
+    }
+}
diff --git a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
index af1f62b..1c1473f 100644
--- a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
+++ b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherViewModelTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.wifi.tether;
 
+import static com.android.settings.wifi.tether.WifiTetherViewModel.RES_INSTANT_HOTSPOT_SUMMARY_OFF;
+import static com.android.settings.wifi.tether.WifiTetherViewModel.RES_INSTANT_HOTSPOT_SUMMARY_ON;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.verify;
@@ -23,12 +26,15 @@
 
 import android.app.Application;
 import android.net.wifi.SoftApConfiguration;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivitySettingsState;
 
 import androidx.lifecycle.MutableLiveData;
 import androidx.test.annotation.UiThreadTest;
+import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.wifi.repository.SharedConnectivityRepository;
 import com.android.settings.wifi.repository.WifiHotspotRepository;
 
 import org.junit.Before;
@@ -36,6 +42,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnit;
 import org.mockito.junit.MockitoRule;
 
@@ -45,8 +52,8 @@
 public class WifiTetherViewModelTest {
     @Rule
     public final MockitoRule mMockitoRule = MockitoJUnit.rule();
-    @Mock
-    Application mApplication;
+    @Spy
+    Application mApplication = ApplicationProvider.getApplicationContext();
     @Mock
     Executor mExecutor;
     @Mock
@@ -57,6 +64,12 @@
     MutableLiveData<Integer> mSpeedType;
     @Mock
     private MutableLiveData<Boolean> mRestarting;
+    @Mock
+    private SharedConnectivityRepository mSharedConnectivityRepository;
+    @Mock
+    private MutableLiveData<SharedConnectivitySettingsState> mSettingsState;
+    @Mock
+    private MutableLiveData<String> mInstantHotspotSummary;
 
     WifiTetherViewModel mViewModel;
 
@@ -70,8 +83,18 @@
         when(mWifiHotspotRepository.getSecurityType()).thenReturn(mSecurityType);
         when(mWifiHotspotRepository.getSpeedType()).thenReturn(mSpeedType);
         when(mWifiHotspotRepository.getRestarting()).thenReturn(mRestarting);
+        when(featureFactory.getWifiFeatureProvider().getSharedConnectivityRepository())
+                .thenReturn(mSharedConnectivityRepository);
+        when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(true);
+        when(mSharedConnectivityRepository.getSettingsState()).thenReturn(mSettingsState);
 
         mViewModel = new WifiTetherViewModel(mApplication);
+        mViewModel.mInstantHotspotSummary = mInstantHotspotSummary;
+    }
+
+    @Test
+    public void constructor_observeData() {
+        verify(mSettingsState).observeForever(mViewModel.mInstantHotspotStateObserver);
     }
 
     @Test
@@ -83,6 +106,7 @@
 
         verify(mSecurityType).removeObserver(mViewModel.mSecurityTypeObserver);
         verify(mSpeedType).removeObserver(mViewModel.mSpeedTypeObserver);
+        verify(mSettingsState).removeObserver(mViewModel.mInstantHotspotStateObserver);
     }
 
     @Test
@@ -141,4 +165,59 @@
     public void getRestarting_shouldNotReturnNull() {
         assertThat(mViewModel.getRestarting()).isNotNull();
     }
+
+    @Test
+    public void isInstantHotspotFeatureAvailable_serviceAvailable_returnTrue() {
+        when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(true);
+
+        assertThat(mViewModel.isInstantHotspotFeatureAvailable()).isTrue();
+    }
+
+    @Test
+    public void isInstantHotspotFeatureAvailable_serviceNotAvailable_returnFalse() {
+        when(mSharedConnectivityRepository.isServiceAvailable()).thenReturn(false);
+
+        assertThat(mViewModel.isInstantHotspotFeatureAvailable()).isFalse();
+    }
+
+    @Test
+    public void getInstantHotspotSummary_isNotNull() {
+        assertThat(mViewModel.getInstantHotspotSummary()).isNotNull();
+    }
+
+    @Test
+    public void onInstantHotspotStateChanged_stageNull_summarySetValueNull() {
+        mViewModel.onInstantHotspotStateChanged(null);
+
+        verify(mInstantHotspotSummary).setValue(null);
+    }
+
+    @Test
+    public void onInstantHotspotStateChanged_stateEnabled_summarySetValueOn() {
+        SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder()
+                .setInstantTetherEnabled(true).build();
+
+        mViewModel.onInstantHotspotStateChanged(state);
+
+        verify(mInstantHotspotSummary)
+                .setValue(mApplication.getString(RES_INSTANT_HOTSPOT_SUMMARY_ON));
+    }
+
+    @Test
+    public void onInstantHotspotStateChanged_stateNotEnabled_recordVisibleSummaryOff() {
+        SharedConnectivitySettingsState state = new SharedConnectivitySettingsState.Builder()
+                .setInstantTetherEnabled(false).build();
+
+        mViewModel.onInstantHotspotStateChanged(state);
+
+        verify(mInstantHotspotSummary)
+                .setValue(mApplication.getString(RES_INSTANT_HOTSPOT_SUMMARY_OFF));
+    }
+
+    @Test
+    public void launchInstantHotspotSettings_launchSettingsByRepository() {
+        mViewModel.launchInstantHotspotSettings();
+
+        verify(mSharedConnectivityRepository).launchSettings();
+    }
 }