Merge "Change the icon in the trigger segment for TYPE_DRIVING modes" into main
diff --git a/Android.bp b/Android.bp
index 28c3148..8f7bd1b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -98,6 +98,7 @@
         "SettingsLibDataStore",
         "SettingsLibMetadata",
         "SettingsLibPreference",
+        "SettingsLibService",
         "aconfig_settings_flags_lib",
         "accessibility_settings_flags_lib",
         "contextualcards",
@@ -107,7 +108,6 @@
         "fuelgauge-protos-lite",
         "settings-logtags",
         "statslog-settings",
-        "telephony_flags_core_java_lib",
         "setupdesign-lottie-loading-layout",
         "device_policy_aconfig_flags_lib",
         "keyboard_flags_lib",
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 6408ab1..11d9779 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -5293,12 +5293,36 @@
                 android:value="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamConfirmDialog" />
         </activity>
 
+        <activity
+            android:name="Settings$ContactsStorageSettingsActivity"
+            android:label="@string/contacts_storage_settings_title"
+            android:exported="true"
+            android:featureFlag="com.android.settings.flags.enable_contacts_default_account_in_settings">
+            <intent-filter>
+                <action android:name="android.provider.action.SET_DEFAULT_ACCOUNT" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.applications.contacts.ContactsStorageSettings"/>
+        </activity>
+
         <service
             android:name="com.android.settings.connecteddevice.audiosharing.audiostreams.AudioStreamMediaService"
             android:foregroundServiceType="mediaPlayback"
             android:enabled="true"
             android:exported="false" />
 
+        <!-- Once b/364771256 is fixed, add android:featureFlag="com.android.settings.flags.catalyst_service". -->
+        <!-- Permission is not yet finalized, use READ_BASIC_PHONE_STATE temporarily. -->
+        <service
+            android:name=".SettingsService"
+            android:exported="true"
+            android:permission="android.permission.READ_BASIC_PHONE_STATE">
+            <intent-filter>
+                <action android:name="com.android.settingslib.PREFERENCE_SERVICE" />
+            </intent-filter>
+        </service>
+
         <receiver android:name="com.android.settings.connecteddevice.audiosharing.AudioSharingReceiver"
             android:exported="false">
             <intent-filter>
diff --git a/aconfig/catalyst/accessibility.aconfig b/aconfig/catalyst/accessibility.aconfig
new file mode 100644
index 0000000..7837067
--- /dev/null
+++ b/aconfig/catalyst/accessibility.aconfig
@@ -0,0 +1,16 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_accessibility_color_and_motion"
+  namespace: "android_settings"
+  description: "Migrate Color and motion screen to the Catalyst infrastructure"
+  bug: "323791114"
+}
+
+flag {
+  name: "catalyst_text_reading_screen"
+  namespace: "android_settings"
+  description: "Flag for Display size and text"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/battery.aconfig b/aconfig/catalyst/battery.aconfig
new file mode 100644
index 0000000..cec40f3
--- /dev/null
+++ b/aconfig/catalyst/battery.aconfig
@@ -0,0 +1,16 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_power_usage_summary_screen"
+  namespace: "android_settings"
+  description: "Flag for Battery screen"
+  bug: "323791114"
+}
+
+flag {
+  name: "catalyst_battery_saver_screen"
+  namespace: "android_settings"
+  description: "Flag for Battery Saver"
+  bug: "323791114"
+}
\ No newline at end of file
diff --git a/aconfig/catalyst/connected_devices.aconfig b/aconfig/catalyst/connected_devices.aconfig
new file mode 100644
index 0000000..7a335fa
--- /dev/null
+++ b/aconfig/catalyst/connected_devices.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_bluetooth_switchbar_screen"
+  namespace: "android_settings"
+  description: "Flag for Bluetooth"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/display.aconfig b/aconfig/catalyst/display.aconfig
index f722f74..94a01e0 100644
--- a/aconfig/catalyst/display.aconfig
+++ b/aconfig/catalyst/display.aconfig
@@ -7,3 +7,10 @@
   description: "Flag for Display"
   bug: "323791114"
 }
+
+flag {
+  name: "catalyst_screen_timeout"
+  namespace: "android_settings"
+  description: "Flag for Screen Timeout settings"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/location.aconfig b/aconfig/catalyst/location.aconfig
new file mode 100644
index 0000000..c656bf3
--- /dev/null
+++ b/aconfig/catalyst/location.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_location_settings"
+  namespace: "android_settings"
+  description: "Flag for Location"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/lockscreen.aconfig b/aconfig/catalyst/lockscreen.aconfig
new file mode 100644
index 0000000..9a84f66
--- /dev/null
+++ b/aconfig/catalyst/lockscreen.aconfig
@@ -0,0 +1,9 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_lockscreen_from_display_settings"
+  namespace: "android_settings"
+  description: "Flag for Display & touch > Lock screen"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/network_and_internet.aconfig b/aconfig/catalyst/network_and_internet.aconfig
new file mode 100644
index 0000000..99aec82
--- /dev/null
+++ b/aconfig/catalyst/network_and_internet.aconfig
@@ -0,0 +1,30 @@
+package: "com.android.settings.flags"
+container: "system"
+
+flag {
+  name: "catalyst_network_provider_and_internet_screen"
+  namespace: "android_settings"
+  description: "Flag for Network & Internet"
+  bug: "323791114"
+}
+
+flag {
+  name: "catalyst_internet_settings"
+  namespace: "android_settings"
+  description: "Flag for Internet"
+  bug: "323791114"
+}
+
+flag {
+  name: "catalyst_mobile_network_list"
+  namespace: "android_settings"
+  description: "Flag for SIMs"
+  bug: "323791114"
+}
+
+flag {
+  name: "catalyst_adaptive_connectivity"
+  namespace: "android_settings"
+  description: "Flag for Adaptive connectivity"
+  bug: "323791114"
+}
diff --git a/aconfig/catalyst/sound_screen.aconfig b/aconfig/catalyst/sound_screen.aconfig
index ea5f771..ac7f8bc 100644
--- a/aconfig/catalyst/sound_screen.aconfig
+++ b/aconfig/catalyst/sound_screen.aconfig
@@ -6,4 +6,11 @@
     namespace: "android_settings"
     description: "Flag for sound and vibration page"
     bug: "323791114"
+}
+
+flag {
+    name: "catalyst_vibration_intensity_screen"
+    namespace: "android_settings"
+    description: "Flag for vibration and haptics page"
+    bug: "323791114"
 }
\ No newline at end of file
diff --git a/aconfig/settings_display_flag_declarations.aconfig b/aconfig/settings_display_flag_declarations.aconfig
index 9fe587b..a85d967 100644
--- a/aconfig/settings_display_flag_declarations.aconfig
+++ b/aconfig/settings_display_flag_declarations.aconfig
@@ -8,3 +8,10 @@
     bug: "315937886"
 }
 
+flag {
+    name: "screen_timeout_settings_dashboard"
+    namespace: "android_settings"
+    description: "Use dashboard style settings"
+    bug: "368359967"
+}
+
diff --git a/aconfig/settings_flag_declarations.aconfig b/aconfig/settings_flag_declarations.aconfig
index a9c7bd5..6eb1e02 100644
--- a/aconfig/settings_flag_declarations.aconfig
+++ b/aconfig/settings_flag_declarations.aconfig
@@ -63,3 +63,10 @@
   description: "Flag for all screens"
   bug: "323791114"
 }
+
+flag {
+  name: "catalyst_service"
+  namespace: "android_settings"
+  description: "Flag for catalyst service"
+  bug: "323791114"
+}
diff --git a/res-product/values-es-rUS/strings.xml b/res-product/values-es-rUS/strings.xml
index b3ab141..fdf6e0d 100644
--- a/res-product/values-es-rUS/strings.xml
+++ b/res-product/values-es-rUS/strings.xml
@@ -356,7 +356,7 @@
     <string name="auto_rotate_summary_a11y" product="tablet" msgid="4708833814245913981">"Cuando muevas la tablet entre el modo vertical y el horizontal"</string>
     <string name="daltonizer_feature_summary" product="default" msgid="3940653889277283702">"Ajusta cómo se muestran los colores en tu teléfono"</string>
     <string name="daltonizer_feature_summary" product="tablet" msgid="4006596881671077623">"Ajusta cómo se muestran los colores en tu tablet"</string>
-    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Altavoces del teléfono"</string>
+    <string name="spatial_audio_speaker" product="default" msgid="7148176677982615792">"Bocinas del teléfono"</string>
     <string name="spatial_audio_speaker" product="tablet" msgid="5452617980485166854">"Bocinas de la tablet"</string>
     <string name="spatial_audio_speaker" product="device" msgid="6204289590128303795">"Altavoces del dispositivo"</string>
     <string name="audio_sharing_dialog_share_content" product="default" msgid="708698992481271057">"La música y los videos de este teléfono se reproducirán en ambos pares de auriculares"</string>
diff --git a/res-product/values-it/strings.xml b/res-product/values-it/strings.xml
index f0dddcf..a9dbcf6 100644
--- a/res-product/values-it/strings.xml
+++ b/res-product/values-it/strings.xml
@@ -338,13 +338,13 @@
     <string name="no_5g_in_dsds_text" product="device" msgid="2081735896122371350">"Se vengono usate due SIM, questo dispositivo può usare soltanto la rete 4G. "<annotation id="url">"Ulteriori informazioni"</annotation></string>
     <string name="reset_internet_text" product="default" msgid="8672305377652449075">"La telefonata verrà terminata"</string>
     <string name="reset_internet_text" product="tablet" msgid="8672305377652449075">"La telefonata verrà terminata"</string>
-    <string name="lockpassword_confirm_your_pattern_details_frp" product="default" msgid="8795084788352126815">"Impostazioni di fabbrica ripristinate. Per usare il telefono, inserisci la sequenza precedente."</string>
+    <string name="lockpassword_confirm_your_pattern_details_frp" product="default" msgid="8795084788352126815">"Impostazioni di fabbrica ripristinate. Per usare lo smartphone, inserisci la sequenza precedente."</string>
     <string name="lockpassword_confirm_your_pattern_details_frp" product="tablet" msgid="1816846183732787701">"Impostazioni di fabbrica ripristinate. Per usare il tablet, inserisci la sequenza precedente."</string>
     <string name="lockpassword_confirm_your_pattern_details_frp" product="device" msgid="7897925268003690167">"Impostazioni di fabbrica ripristinate. Per usare il dispositivo, inserisci la sequenza precedente."</string>
-    <string name="lockpassword_confirm_your_pin_details_frp" product="default" msgid="2027547169650312092">"Impostazioni di fabbrica ripristinate. Per usare il telefono, inserisci il PIN precedente."</string>
+    <string name="lockpassword_confirm_your_pin_details_frp" product="default" msgid="2027547169650312092">"Impostazioni di fabbrica ripristinate. Per usare lo smartphone, inserisci il PIN precedente."</string>
     <string name="lockpassword_confirm_your_pin_details_frp" product="tablet" msgid="8264086895022779707">"Impostazioni di fabbrica ripristinate. Per usare il tablet, inserisci il PIN precedente."</string>
     <string name="lockpassword_confirm_your_pin_details_frp" product="device" msgid="1654340132011802578">"Impostazioni di fabbrica ripristinate. Per usare il dispositivo, inserisci il PIN precedente."</string>
-    <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Impostazioni di fabbrica ripristinate. Per usare il telefono, inserisci la password precedente."</string>
+    <string name="lockpassword_confirm_your_password_details_frp" product="default" msgid="1465326741724776281">"Impostazioni di fabbrica ripristinate. Per usare lo smartphone, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="tablet" msgid="1333164951750797865">"Impostazioni di fabbrica ripristinate. Per usare il tablet, inserisci la password precedente."</string>
     <string name="lockpassword_confirm_your_password_details_frp" product="device" msgid="116667646012224967">"Impostazioni di fabbrica ripristinate. Per usare il dispositivo, inserisci la password precedente."</string>
     <string name="battery_tip_incompatible_charging_message" product="default" msgid="5097154279720383707">"Lo smartphone potrebbe ricaricarsi lentamente o non ricaricarsi affatto. Per velocizzare la ricarica, usa un cavo e un alimentatore consigliati."</string>
diff --git a/res-product/values-pt-rBR/strings.xml b/res-product/values-pt-rBR/strings.xml
index e5b8d4c..2db3469 100644
--- a/res-product/values-pt-rBR/strings.xml
+++ b/res-product/values-pt-rBR/strings.xml
@@ -106,7 +106,7 @@
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Use seu rosto para desbloquear o smartphone, fazer fazer login em apps ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro rosto, exclua o registrado atualmente.\n\nOlhar para o smartphone pode desbloquear o dispositivo, mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se ele for apontado para seu rosto, mesmo que você esteja com os olhos fechados.\n\nO desbloqueio também pode ser feito por alguém que se pareça muito com você, como um gêmeo idêntico."</string>
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Use seu rosto para desbloquear o tablet, fazer login em apps ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro rosto, exclua o registrado atualmente.\n\nOlhar para o tablet pode desbloquear o dispositivo, mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se for direcionado para seu rosto, mesmo que você esteja de olhos fechados.\n\nTambém pode ser desbloqueado por alguém que se pareça muito com você, como, por exemplo, um gêmeo idêntico."</string>
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Use seu rosto para desbloquear o dispositivo ou confirmar sua identidade, fazer login ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro, exclua o registrado atualmente.\n\nOlhar para o dispositivo pode desbloquear mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se for direcionado para seu rosto, mesmo com os olhos fechados.\n\nO desbloqueio também pode ser feito por alguém que se pareça muito com você, como um gêmeo idêntico."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Use sua impressão digital para desbloquear o dispositivo <xliff:g id="DEVICENAME">%s</xliff:g> ou confirmar sua identidade e acessar apps ou aprovar uma compra"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Use sua impressão digital para desbloquear o dispositivo <xliff:g id="DEVICENAME">%s</xliff:g> ou confirmar sua identidade, como ao acessar apps ou aprovar uma compra"</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Permita que a criança use a impressão digital para desbloquear o smartphone ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permita que a criança use a impressão digital para desbloquear o tablet ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permita que a criança use a impressão digital para desbloquear o dispositivo ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
diff --git a/res-product/values-pt/strings.xml b/res-product/values-pt/strings.xml
index e5b8d4c..2db3469 100644
--- a/res-product/values-pt/strings.xml
+++ b/res-product/values-pt/strings.xml
@@ -106,7 +106,7 @@
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="default" msgid="5512898803063743303">"Use seu rosto para desbloquear o smartphone, fazer fazer login em apps ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro rosto, exclua o registrado atualmente.\n\nOlhar para o smartphone pode desbloquear o dispositivo, mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se ele for apontado para seu rosto, mesmo que você esteja com os olhos fechados.\n\nO desbloqueio também pode ser feito por alguém que se pareça muito com você, como um gêmeo idêntico."</string>
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="tablet" msgid="6790505667764631343">"Use seu rosto para desbloquear o tablet, fazer login em apps ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro rosto, exclua o registrado atualmente.\n\nOlhar para o tablet pode desbloquear o dispositivo, mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se for direcionado para seu rosto, mesmo que você esteja de olhos fechados.\n\nTambém pode ser desbloqueado por alguém que se pareça muito com você, como, por exemplo, um gêmeo idêntico."</string>
     <string name="security_settings_face_settings_footer_class3_attention_not_supported" product="device" msgid="7858917821957779752">"Use seu rosto para desbloquear o dispositivo ou confirmar sua identidade, fazer login ou finalizar compras.\n\nNão se esqueça:\nSó é possível configurar um rosto por vez. Para adicionar outro, exclua o registrado atualmente.\n\nOlhar para o dispositivo pode desbloquear mesmo sem intenção.\n\nEle pode ser desbloqueado por outra pessoa se for direcionado para seu rosto, mesmo com os olhos fechados.\n\nO desbloqueio também pode ser feito por alguém que se pareça muito com você, como um gêmeo idêntico."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Use sua impressão digital para desbloquear o dispositivo <xliff:g id="DEVICENAME">%s</xliff:g> ou confirmar sua identidade e acessar apps ou aprovar uma compra"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_v3_message" msgid="2145273491174234191">"Use sua impressão digital para desbloquear o dispositivo <xliff:g id="DEVICENAME">%s</xliff:g> ou confirmar sua identidade, como ao acessar apps ou aprovar uma compra"</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="default" msgid="5101253231118659496">"Permita que a criança use a impressão digital para desbloquear o smartphone ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="tablet" msgid="3063978167545799342">"Permita que a criança use a impressão digital para desbloquear o tablet ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
     <string name="security_settings_fingerprint_enroll_introduction_consent_message" product="device" msgid="4399560001732497632">"Permita que a criança use a impressão digital para desbloquear o dispositivo ou confirmar a identidade dela. Isso acontece quando ela faz login em apps, aprova uma compra, entre outras ocasiões."</string>
diff --git a/res/drawable-night/mouse_keys_click.xml b/res/drawable-night/mouse_keys_click.xml
new file mode 100644
index 0000000..e5e8d5a
--- /dev/null
+++ b/res/drawable-night/mouse_keys_click.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#F1B3E6"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable-night/mouse_keys_directional.xml b/res/drawable-night/mouse_keys_directional.xml
new file mode 100644
index 0000000..fd49f1e
--- /dev/null
+++ b/res/drawable-night/mouse_keys_directional.xml
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M172.4,18h12v12h-12z"/>
+        <path
+            android:pathData="M181.24,27.41L176.46,22.64V26.69H174.99V20.11H181.56V21.59H177.51L182.29,26.36L181.24,27.41Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M194.63,18h12v12h-12z"/>
+        <path
+            android:pathData="M199.89,28.02V22.81L197.66,25.05L196.61,24L200.63,19.98L204.66,24L203.61,25.05L201.37,22.81V28.02H199.89Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M216.86,18h12v12h-12z"/>
+        <path
+            android:pathData="M220.02,27.41L218.98,26.36L223.75,21.59H219.7V20.11H226.27V26.69H224.8V22.64L220.02,27.41Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.66,14 282.77,14H297C298.1,14 299,14.9 299,16V32C299,33.1 298.1,34 297,34H282.77C281.66,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.3,42 121.2,42.9 121.2,44V60C121.2,61.1 120.3,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M180.79,46h12v12h-12z"/>
+        <path
+            android:pathData="M185.6,52.74L187.84,54.97L186.79,56.03L182.76,52L186.79,47.97L187.84,49.03L185.6,51.26H190.81V52.74H185.6Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M231.59,46h12v12h-12z"/>
+        <path
+            android:pathData="M238.77,52.74H233.56V51.26H238.77L236.54,49.03L237.59,47.97L241.61,52L237.59,56.03L236.54,54.97L238.77,52.74Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M187.67,74h12v12h-12z"/>
+        <path
+            android:pathData="M190.09,83.59V78.51H191.56V81.07L196.64,76L197.67,77.04L192.6,82.11H195.16V83.59H190.09Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.44C229.55,70 230.44,70.9 230.44,72V88C230.44,89.1 229.55,90 228.44,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M213.45,74h12v12h-12z"/>
+        <path
+            android:pathData="M218.71,75.97H220.19V81.19L222.43,78.95L223.48,80L219.45,84.03L215.43,80L216.48,78.95L218.71,81.19V75.97Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F1B3E6"/>
+    <group>
+        <clip-path
+            android:pathData="M239.23,74h12v12h-12z"/>
+        <path
+            android:pathData="M243.84,83.69V82.21H246.4L241.21,77.01L242.24,75.97L247.44,81.18V78.61H248.92V83.69H243.84Z"
+            android:fillColor="#4C1F49"/>
+    </group>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.44C243.55,98 244.44,98.9 244.44,100V116C244.44,117.11 243.55,118 242.44,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable-night/mouse_keys_press_hold.xml b/res/drawable-night/mouse_keys_press_hold.xml
new file mode 100644
index 0000000..eb85602
--- /dev/null
+++ b/res/drawable-night/mouse_keys_press_hold.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F1B3E6"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable-night/mouse_keys_release.xml b/res/drawable-night/mouse_keys_release.xml
new file mode 100644
index 0000000..4fb7c4a
--- /dev/null
+++ b/res/drawable-night/mouse_keys_release.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F1B3E6"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable-night/mouse_keys_release2.xml b/res/drawable-night/mouse_keys_release2.xml
new file mode 100644
index 0000000..e844bc9
--- /dev/null
+++ b/res/drawable-night/mouse_keys_release2.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F1B3E6"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable-night/mouse_keys_toggle_scroll.xml b/res/drawable-night/mouse_keys_toggle_scroll.xml
new file mode 100644
index 0000000..3d6cbf3
--- /dev/null
+++ b/res/drawable-night/mouse_keys_toggle_scroll.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#171216"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F1B3E6"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#554151"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#4E444B"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#3A3338"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#3A3338"/>
+</vector>
diff --git a/res/drawable/accessibility_contrast_button_background.xml b/res/drawable/accessibility_contrast_button_background.xml
index 281fcef..7e41aae 100644
--- a/res/drawable/accessibility_contrast_button_background.xml
+++ b/res/drawable/accessibility_contrast_button_background.xml
@@ -32,7 +32,7 @@
             <item
                 android:width="24dp"
                 android:height="24dp"
-                android:left="57dp"
+                android:start="57dp"
                 android:top="57dp">
                 <vector
                     android:width="24dp"
diff --git a/res/drawable/audio_sharing_rounded_bg.xml b/res/drawable/audio_sharing_rounded_bg.xml
deleted file mode 100644
index 35517ea..0000000
--- a/res/drawable/audio_sharing_rounded_bg.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  -->
-
-<shape
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
-    android:shape="rectangle">
-    <solid android:color="?androidprv:attr/colorAccentPrimary" />
-    <corners android:radius="12dp" />
-</shape>
\ No newline at end of file
diff --git a/res/drawable/audio_sharing_rounded_bg_ripple.xml b/res/drawable/audio_sharing_rounded_bg_ripple.xml
deleted file mode 100644
index 18696c6..0000000
--- a/res/drawable/audio_sharing_rounded_bg_ripple.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  ~ 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.
-  -->
-
-<ripple xmlns:android="http://schemas.android.com/apk/res/android"
-    android:color="?android:attr/colorControlHighlight">
-    <item android:drawable="@drawable/audio_sharing_rounded_bg"/>
-</ripple>
\ No newline at end of file
diff --git a/res/drawable/mouse_keys_click.xml b/res/drawable/mouse_keys_click.xml
new file mode 100644
index 0000000..2dd6238
--- /dev/null
+++ b/res/drawable/mouse_keys_click.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/drawable/mouse_keys_directional.xml b/res/drawable/mouse_keys_directional.xml
new file mode 100644
index 0000000..ae79563
--- /dev/null
+++ b/res/drawable/mouse_keys_directional.xml
@@ -0,0 +1,251 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M172.4,18h12v12h-12z"/>
+        <path
+            android:pathData="M181.24,27.41L176.46,22.64V26.69H174.99V20.11H181.56V21.59H177.51L182.29,26.36L181.24,27.41Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M194.63,18h12v12h-12z"/>
+        <path
+            android:pathData="M199.89,28.02V22.81L197.66,25.05L196.61,24L200.63,19.98L204.66,24L203.61,25.05L201.37,22.81V28.02H199.89Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M216.86,18h12v12h-12z"/>
+        <path
+            android:pathData="M220.02,27.41L218.98,26.36L223.75,21.59H219.7V20.11H226.27V26.69H224.8V22.64L220.02,27.41Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.66,14 282.77,14H297C298.1,14 299,14.9 299,16V32C299,33.1 298.1,34 297,34H282.77C281.66,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.3,42 121.2,42.9 121.2,44V60C121.2,61.1 120.3,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M180.79,46h12v12h-12z"/>
+        <path
+            android:pathData="M185.6,52.74L187.84,54.97L186.79,56.03L182.76,52L186.79,47.97L187.84,49.03L185.6,51.26H190.81V52.74H185.6Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M231.59,46h12v12h-12z"/>
+        <path
+            android:pathData="M238.77,52.74H233.56V51.26H238.77L236.54,49.03L237.59,47.97L241.61,52L237.59,56.03L236.54,54.97L238.77,52.74Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M187.67,74h12v12h-12z"/>
+        <path
+            android:pathData="M190.09,83.59V78.51H191.56V81.07L196.64,76L197.67,77.04L192.6,82.11H195.16V83.59H190.09Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.44C229.55,70 230.44,70.9 230.44,72V88C230.44,89.1 229.55,90 228.44,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M213.45,74h12v12h-12z"/>
+        <path
+            android:pathData="M218.71,75.97H220.19V81.19L222.43,78.95L223.48,80L219.45,84.03L215.43,80L216.48,78.95L218.71,81.19V75.97Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#804D7A"/>
+    <group>
+        <clip-path
+            android:pathData="M239.23,74h12v12h-12z"/>
+        <path
+            android:pathData="M243.84,83.69V82.21H246.4L241.21,77.01L242.24,75.97L247.44,81.18V78.61H248.92V83.69H243.84Z"
+            android:fillColor="#ffffff"/>
+    </group>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.44C243.55,98 244.44,98.9 244.44,100V116C244.44,117.11 243.55,118 242.44,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#F2E5EB"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/drawable/mouse_keys_press_hold.xml b/res/drawable/mouse_keys_press_hold.xml
new file mode 100644
index 0000000..af20290
--- /dev/null
+++ b/res/drawable/mouse_keys_press_hold.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/drawable/mouse_keys_release.xml b/res/drawable/mouse_keys_release.xml
new file mode 100644
index 0000000..232d5e7
--- /dev/null
+++ b/res/drawable/mouse_keys_release.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/drawable/mouse_keys_release2.xml b/res/drawable/mouse_keys_release2.xml
new file mode 100644
index 0000000..88422cb
--- /dev/null
+++ b/res/drawable/mouse_keys_release2.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/drawable/mouse_keys_toggle_scroll.xml b/res/drawable/mouse_keys_toggle_scroll.xml
new file mode 100644
index 0000000..1a1a550
--- /dev/null
+++ b/res/drawable/mouse_keys_toggle_scroll.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2024 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="348dp"
+        android:height="160dp"
+        android:viewportWidth="348"
+        android:viewportHeight="160">
+    <path
+        android:pathData="M6,14C6,9.58 9.58,6 14,6H334C338.42,6 342,9.58 342,14V146C342,150.42 338.42,154 334,154H14C9.58,154 6,150.42 6,146V14Z"
+        android:fillColor="#FFF7F9"/>
+    <path
+        android:pathData="M14,16C14,14.9 14.9,14 16,14H30.23C31.34,14 32.23,14.9 32.23,16V32C32.23,33.1 31.34,34 30.23,34H16C14.9,34 14,33.1 14,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M36.23,16C36.23,14.9 37.13,14 38.23,14H52.46C53.57,14 54.46,14.9 54.46,16V32C54.46,33.1 53.57,34 52.46,34H38.23C37.13,34 36.23,33.1 36.23,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M58.46,16C58.46,14.9 59.36,14 60.46,14H74.69C75.8,14 76.69,14.9 76.69,16V32C76.69,33.1 75.8,34 74.69,34H60.46C59.36,34 58.46,33.1 58.46,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M80.69,16C80.69,14.9 81.59,14 82.69,14H96.92C98.03,14 98.92,14.9 98.92,16V32C98.92,33.1 98.03,34 96.92,34H82.69C81.59,34 80.69,33.1 80.69,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M102.92,16C102.92,14.9 103.82,14 104.92,14H119.15C120.26,14 121.15,14.9 121.15,16V32C121.15,33.1 120.26,34 119.15,34H104.92C103.82,34 102.92,33.1 102.92,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.15,16C125.15,14.9 126.05,14 127.15,14H141.38C142.49,14 143.38,14.9 143.38,16V32C143.38,33.1 142.49,34 141.38,34H127.15C126.05,34 125.15,33.1 125.15,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M147.38,16C147.38,14.9 148.28,14 149.38,14H163.62C164.72,14 165.62,14.9 165.62,16V32C165.62,33.1 164.72,34 163.62,34H149.38C148.28,34 147.38,33.1 147.38,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M169.62,16C169.62,14.9 170.51,14 171.62,14H185.85C186.95,14 187.85,14.9 187.85,16V32C187.85,33.1 186.95,34 185.85,34H171.62C170.51,34 169.62,33.1 169.62,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M191.85,16C191.85,14.9 192.74,14 193.85,14H208.08C209.18,14 210.08,14.9 210.08,16V32C210.08,33.1 209.18,34 208.08,34H193.85C192.74,34 191.85,33.1 191.85,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M214.08,16C214.08,14.9 214.97,14 216.08,14H230.31C231.41,14 232.31,14.9 232.31,16V32C232.31,33.1 231.41,34 230.31,34H216.08C214.97,34 214.08,33.1 214.08,32V16Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M236.31,16C236.31,14.9 237.2,14 238.31,14H252.54C253.64,14 254.54,14.9 254.54,16V32C254.54,33.1 253.64,34 252.54,34H238.31C237.2,34 236.31,33.1 236.31,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M258.54,16C258.54,14.9 259.43,14 260.54,14H274.77C275.87,14 276.77,14.9 276.77,16V32C276.77,33.1 275.87,34 274.77,34H260.54C259.43,34 258.54,33.1 258.54,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M280.77,16C280.77,14.9 281.67,14 282.77,14H297C298.11,14 299,14.9 299,16V32C299,33.1 298.11,34 297,34H282.77C281.67,34 280.77,33.1 280.77,32V16Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,16C303,14.9 303.89,14 305,14H332C333.11,14 334,14.9 334,16V32C334,33.1 333.11,34 332,34H305C303.89,34 303,33.1 303,32V16Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,44C14,42.9 14.9,42 16,42H43C44.1,42 45,42.9 45,44V60C45,61.1 44.1,62 43,62H16C14.9,62 14,61.1 14,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M49,44C49,42.9 49.9,42 51,42H68.4C69.5,42 70.4,42.9 70.4,44V60C70.4,61.1 69.5,62 68.4,62H51C49.9,62 49,61.1 49,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M74.4,44C74.4,42.9 75.3,42 76.4,42H93.8C94.9,42 95.8,42.9 95.8,44V60C95.8,61.1 94.9,62 93.8,62H76.4C75.3,62 74.4,61.1 74.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M99.8,44C99.8,42.9 100.69,42 101.8,42H119.2C120.31,42 121.2,42.9 121.2,44V60C121.2,61.1 120.31,62 119.2,62H101.8C100.69,62 99.8,61.1 99.8,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M125.2,44C125.2,42.9 126.1,42 127.2,42H144.6C145.71,42 146.6,42.9 146.6,44V60C146.6,61.1 145.71,62 144.6,62H127.2C126.1,62 125.2,61.1 125.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M150.6,44C150.6,42.9 151.5,42 152.6,42H170C171.1,42 172,42.9 172,44V60C172,61.1 171.1,62 170,62H152.6C151.5,62 150.6,61.1 150.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M176,44C176,42.9 176.9,42 178,42H195.4C196.51,42 197.4,42.9 197.4,44V60C197.4,61.1 196.51,62 195.4,62H178C176.9,62 176,61.1 176,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M201.4,44C201.4,42.9 202.29,42 203.4,42H220.8C221.9,42 222.8,42.9 222.8,44V60C222.8,61.1 221.9,62 220.8,62H203.4C202.29,62 201.4,61.1 201.4,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M226.8,44C226.8,42.9 227.7,42 228.8,42H246.2C247.3,42 248.2,42.9 248.2,44V60C248.2,61.1 247.3,62 246.2,62H228.8C227.7,62 226.8,61.1 226.8,60V44Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M252.2,44C252.2,42.9 253.1,42 254.2,42H271.6C272.7,42 273.6,42.9 273.6,44V60C273.6,61.1 272.7,62 271.6,62H254.2C253.1,62 252.2,61.1 252.2,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M277.6,44C277.6,42.9 278.5,42 279.6,42H297C298.11,42 299,42.9 299,44V60C299,61.1 298.11,62 297,62H279.6C278.5,62 277.6,61.1 277.6,60V44Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M303,44C303,42.9 303.89,42 305,42H332C333.11,42 334,42.9 334,44V60C334,61.1 333.11,62 332,62H305C303.89,62 303,61.1 303,60V44Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,72C14,70.9 14.9,70 16,70H48C49.1,70 50,70.9 50,72V88C50,89.1 49.1,90 48,90H16C14.9,90 14,89.1 14,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,72C54,70.9 54.9,70 56,70H73.78C74.88,70 75.78,70.9 75.78,72V88C75.78,89.1 74.88,90 73.78,90H56C54.9,90 54,89.1 54,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M79.78,72C79.78,70.9 80.67,70 81.78,70H99.56C100.66,70 101.56,70.9 101.56,72V88C101.56,89.1 100.66,90 99.56,90H81.78C80.67,90 79.78,89.1 79.78,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M105.56,72C105.56,70.9 106.45,70 107.56,70H125.33C126.44,70 127.33,70.9 127.33,72V88C127.33,89.1 126.44,90 125.33,90H107.56C106.45,90 105.56,89.1 105.56,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M131.33,72C131.33,70.9 132.23,70 133.33,70H151.11C152.22,70 153.11,70.9 153.11,72V88C153.11,89.1 152.22,90 151.11,90H133.33C132.23,90 131.33,89.1 131.33,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M157.11,72C157.11,70.9 158.01,70 159.11,70H176.89C177.99,70 178.89,70.9 178.89,72V88C178.89,89.1 177.99,90 176.89,90H159.11C158.01,90 157.11,89.1 157.11,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M182.89,72C182.89,70.9 183.78,70 184.89,70H202.67C203.77,70 204.67,70.9 204.67,72V88C204.67,89.1 203.77,90 202.67,90H184.89C183.78,90 182.89,89.1 182.89,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M208.67,72C208.67,70.9 209.56,70 210.67,70H228.45C229.55,70 230.45,70.9 230.45,72V88C230.45,89.1 229.55,90 228.45,90H210.67C209.56,90 208.67,89.1 208.67,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M234.44,72C234.44,70.9 235.34,70 236.44,70H254.22C255.33,70 256.22,70.9 256.22,72V88C256.22,89.1 255.33,90 254.22,90H236.44C235.34,90 234.44,89.1 234.44,88V72Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M260.22,72C260.22,70.9 261.12,70 262.22,70H280C281.11,70 282,70.9 282,72V88C282,89.1 281.11,90 280,90H262.22C261.12,90 260.22,89.1 260.22,88V72Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M286,72C286,70.9 286.89,70 288,70H332C333.11,70 334,70.9 334,72V88C334,89.1 333.11,90 332,90H288C286.89,90 286,89.1 286,88V72Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,100C14,98.9 14.9,98 16,98H62C63.1,98 64,98.9 64,100V116C64,117.11 63.1,118 62,118H16C14.9,118 14,117.11 14,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M68,100C68,98.9 68.9,98 70,98H87.78C88.88,98 89.78,98.9 89.78,100V116C89.78,117.11 88.88,118 87.78,118H70C68.9,118 68,117.11 68,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M93.78,100C93.78,98.9 94.67,98 95.78,98H113.56C114.66,98 115.56,98.9 115.56,100V116C115.56,117.11 114.66,118 113.56,118H95.78C94.67,118 93.78,117.11 93.78,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M119.56,100C119.56,98.9 120.45,98 121.56,98H139.33C140.44,98 141.33,98.9 141.33,100V116C141.33,117.11 140.44,118 139.33,118H121.56C120.45,118 119.56,117.11 119.56,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M145.33,100C145.33,98.9 146.23,98 147.33,98H165.11C166.22,98 167.11,98.9 167.11,100V116C167.11,117.11 166.22,118 165.11,118H147.33C146.23,118 145.33,117.11 145.33,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M171.11,100C171.11,98.9 172.01,98 173.11,98H190.89C191.99,98 192.89,98.9 192.89,100V116C192.89,117.11 191.99,118 190.89,118H173.11C172.01,118 171.11,117.11 171.11,116V100Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M196.89,100C196.89,98.9 197.78,98 198.89,98H216.67C217.77,98 218.67,98.9 218.67,100V116C218.67,117.11 217.77,118 216.67,118H198.89C197.78,118 196.89,117.11 196.89,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M222.67,100C222.67,98.9 223.56,98 224.67,98H242.45C243.55,98 244.45,98.9 244.45,100V116C244.45,117.11 243.55,118 242.45,118H224.67C223.56,118 222.67,117.11 222.67,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M248.44,100C248.44,98.9 249.34,98 250.44,98H268.22C269.33,98 270.22,98.9 270.22,100V116C270.22,117.11 269.33,118 268.22,118H250.44C249.34,118 248.44,117.11 248.44,116V100Z"
+        android:fillColor="#804D7A"/>
+    <path
+        android:pathData="M274.22,100C274.22,98.9 275.12,98 276.22,98H294C295.11,98 296,98.9 296,100V116C296,117.11 295.11,118 294,118H276.22C275.12,118 274.22,117.11 274.22,116V100Z"
+        android:fillColor="#F8DAEE"/>
+    <path
+        android:pathData="M300,100C300,98.9 300.89,98 302,98H332C333.11,98 334,98.9 334,100V116C334,117.11 333.11,118 332,118H302C300.89,118 300,117.11 300,116V100Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M14,128C14,126.89 14.9,126 16,126H48C49.1,126 50,126.89 50,128V144C50,145.1 49.1,146 48,146H16C14.9,146 14,145.1 14,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M54,128C54,126.89 54.9,126 56,126H88C89.1,126 90,126.89 90,128V144C90,145.1 89.1,146 88,146H56C54.9,146 54,145.1 54,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M94,128C94,126.89 94.9,126 96,126H248C249.1,126 250,126.89 250,128V144C250,145.1 249.1,146 248,146H96C94.9,146 94,145.1 94,144V128Z"
+        android:fillColor="#D1C2CB"/>
+    <path
+        android:pathData="M254,128C254,126.89 254.9,126 256,126H276C277.11,126 278,126.89 278,128V144C278,145.1 277.11,146 276,146H256C254.9,146 254,145.1 254,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M282,128C282,126.89 282.89,126 284,126H304C305.11,126 306,126.89 306,128V144C306,145.1 305.11,146 304,146H284C282.89,146 282,145.1 282,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M310,128C310,126.89 310.89,126 312,126H332C333.11,126 334,126.89 334,128V144C334,145.1 333.11,146 332,146H312C310.89,146 310,145.1 310,144V128Z"
+        android:fillColor="#ECDFE5"/>
+    <path
+        android:pathData="M18,3C9.72,3 3,9.72 3,18V142C3,150.28 9.72,157 18,157H330C338.28,157 345,150.28 345,142V18C345,9.72 338.28,3 330,3H18Z"
+        android:strokeWidth="6"
+        android:fillColor="#00000000"
+        android:strokeColor="#ECDFE5"/>
+</vector>
diff --git a/res/layout/dialog_custom_body_audio_sharing.xml b/res/layout/dialog_custom_body_audio_sharing.xml
index ba7f643..5e9f239 100644
--- a/res/layout/dialog_custom_body_audio_sharing.xml
+++ b/res/layout/dialog_custom_body_audio_sharing.xml
@@ -64,7 +64,7 @@
             android:layout_gravity="center"
             android:layout_marginTop="4dp"
             android:textColor="?androidprv:attr/textColorOnAccent"
-            android:background="@drawable/audio_sharing_rounded_bg_ripple"
+            android:background="@drawable/audio_sharing_rounded_bg_ripple_top"
             android:visibility="gone" />
 
         <Button
@@ -75,7 +75,7 @@
             android:layout_gravity="center"
             android:layout_marginTop="4dp"
             android:textColor="?androidprv:attr/textColorOnAccent"
-            android:background="@drawable/audio_sharing_rounded_bg_ripple"
+            android:background="@drawable/audio_sharing_rounded_bg_ripple_bottom"
             android:visibility="gone" />
     </LinearLayout>
 </ScrollView>
\ No newline at end of file
diff --git a/res/layout/dialog_a11y_bounce_key.xml b/res/layout/dialog_keyboard_a11y_input_setting_keys.xml
similarity index 80%
rename from res/layout/dialog_a11y_bounce_key.xml
rename to res/layout/dialog_keyboard_a11y_input_setting_keys.xml
index da3ebde..dfa3c46 100644
--- a/res/layout/dialog_a11y_bounce_key.xml
+++ b/res/layout/dialog_keyboard_a11y_input_setting_keys.xml
@@ -22,47 +22,45 @@
               android:orientation="vertical">
 
     <TextView
-        android:id="@+id/bounce_key_dialog_title"
+        android:id="@+id/input_setting_keys_dialog_title"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="16dp"
         android:textSize="20sp"
         android:gravity="center_horizontal"
-        android:text="@string/bounce_keys_dialog_title"
         android:textColor="?android:attr/textColorPrimary"
         android:fontFamily="@*android:string/config_headlineFontFamilyMedium"
     />
 
     <TextView
-        android:id="@+id/bounce_key_dialog_subtitle"
+        android:id="@+id/input_setting_keys_dialog_subtitle"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginHorizontal="26dp"
         android:layout_marginTop="8dp"
         android:textSize="16sp"
         android:gravity="center"
-        android:text="@string/bounce_keys_dialog_subtitle"
         android:textColor="?android:attr/textColorSecondary"
     />
 
     <RadioGroup
-        android:id="@+id/bounce_key_value_group"
+        android:id="@+id/input_setting_keys_value_group"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginStart="20dp"
         android:layout_marginTop="16dp">
 
         <RadioButton
-            android:id="@+id/bounce_key_value_200"
-            android:text="@string/bounce_keys_dialog_option_200"
+            android:id="@+id/input_setting_keys_value_200"
+            android:text="@string/input_setting_keys_dialog_option_200"
             android:paddingStart="12dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="start|center_vertical"
             android:background="@null"/>
         <RadioButton
-            android:id="@+id/bounce_key_value_400"
-            android:text="@string/bounce_keys_dialog_option_400"
+            android:id="@+id/input_setting_keys_value_400"
+            android:text="@string/input_setting_keys_dialog_option_400"
             android:paddingStart="12dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -70,8 +68,8 @@
             android:layout_marginTop="12dp"
             android:background="@null"/>
         <RadioButton
-            android:id="@+id/bounce_key_value_600"
-            android:text="@string/bounce_keys_dialog_option_600"
+            android:id="@+id/input_setting_keys_value_600"
+            android:text="@string/input_setting_keys_dialog_option_600"
             android:paddingStart="12dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
@@ -85,14 +83,14 @@
             android:layout_height="wrap_content"
             android:layout_marginVertical="12dp">
             <RadioButton
-                android:id="@+id/bounce_key_value_custom"
+                android:id="@+id/input_setting_keys_value_custom"
                 android:paddingStart="12dp"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_gravity="center_vertical"
                 android:background="@null"/>
             <LinearLayout
-                android:id="@+id/custom_value_option"
+                android:id="@+id/input_setting_keys_custom_value_option"
                 android:orientation="vertical"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
@@ -100,15 +98,15 @@
                 android:gravity="center_vertical"
                 android:paddingEnd="16dp">
                 <TextView
-                    android:id="@+id/bounce_key_value_custom_title"
-                    android:text="Custom"
+                    android:id="@+id/input_setting_keys_value_custom_title"
+                    android:text="@string/input_setting_keys_custom_title"
                     android:textColor="?android:attr/textColorPrimary"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center_vertical"/>
                 <TextView
-                    android:id="@+id/bounce_key_value_custom_value"
-                    android:text="custom value"
+                    android:id="@+id/input_setting_keys_value_custom_value"
+                    android:text="@string/input_setting_keys_custom_value"
                     android:textColor="?android:attr/textColorPrimary"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
@@ -116,7 +114,7 @@
                     android:layout_marginTop="8dp"
                     android:visibility="gone"/>
                 <SeekBar
-                    android:id="@+id/bounce_key_value_custom_slider"
+                    android:id="@+id/input_setting_keys_value_custom_slider"
                     android:paddingStart="8dp"
                     android:paddingEnd="36dp"
                     android:min="1"
diff --git a/res/layout/mouse_keys_image_item.xml b/res/layout/mouse_keys_image_item.xml
new file mode 100644
index 0000000..36b9992
--- /dev/null
+++ b/res/layout/mouse_keys_image_item.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:id="@+id/layout_description"
+          android:layout_width="match_parent"
+          android:layout_height="wrap_content"
+          android:layout_marginStart="16dp"
+          android:layout_marginEnd="20dp"
+          android:layout_marginBottom="20dp"
+          android:textAppearance="?android:attr/textAppearanceListItemSmall"
+          android:drawablePadding="8dp"/>
diff --git a/res/layout/mouse_keys_image_list.xml b/res/layout/mouse_keys_image_list.xml
new file mode 100644
index 0000000..f111736
--- /dev/null
+++ b/res/layout/mouse_keys_image_list.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 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.
+-->
+
+<androidx.constraintlayout.widget.ConstraintLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/mouse_keys_image_recycler_list"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:clipToPadding="true"
+        android:nestedScrollingEnabled="false"
+        android:padding="12dp"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintBottom_toBottomOf="parent"/>
+
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
diff --git a/res/layout/preference_credential_manager_with_buttons.xml b/res/layout/preference_credential_manager_with_buttons.xml
index 24096f7..e27bd50 100644
--- a/res/layout/preference_credential_manager_with_buttons.xml
+++ b/res/layout/preference_credential_manager_with_buttons.xml
@@ -18,6 +18,7 @@
 <!-- Based off preference_single_target.xml with buttons added below text. -->
 <LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -95,18 +96,29 @@
         android:gravity="center"
         android:orientation="vertical" />
 
-    <LinearLayout
+    <androidx.constraintlayout.widget.ConstraintLayout
         android:id="@+id/credman_button_frame"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:gravity="start|center_vertical"
         android:minWidth="56dp"
-        android:orientation="horizontal"
         android:clipToPadding="false"
         android:paddingTop="4dp"
         android:paddingLeft="76dp"
         android:paddingBottom="4dp">
 
+        <androidx.constraintlayout.helper.widget.Flow
+            android:id="@+id/button_flow"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            app:constraint_referenced_ids="change_button, open_button"
+            app:flow_horizontalStyle="spread_inside"
+            app:flow_wrapMode="chain"
+            app:flow_verticalGap = "16dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
             <Button
                 android:id="@+id/change_button"
                 android:layout_width="match_parent"
@@ -122,6 +134,6 @@
                 android:visibility="gone"
                 android:text="@string/credman_button_open"/>
 
-    </LinearLayout>
+    </androidx.constraintlayout.widget.ConstraintLayout>
 
 </LinearLayout>
\ No newline at end of file
diff --git a/res/values-af/arrays.xml b/res/values-af/arrays.xml
index 4b51726..01f6f3a 100644
--- a/res/values-af/arrays.xml
+++ b/res/values-af/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Sneeuvlokkie"</item>
     <item msgid="7952183800501346803">"Strandsambreel"</item>
     <item msgid="799139025758265891">"Werkswinkelgereedskap"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Klavier"</item>
     <item msgid="3861584909935022342">"Filmspoel"</item>
     <item msgid="5827426100157335512">"Boek"</item>
     <item msgid="8585828346253128384">"Egiptiese waterlelie"</item>
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index 56a239f..6d1bbe2 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Stel outomaties deur jou netwerk- en draadloosinstellings"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Outomatiese tydsone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Stel outomaties op grond van mobiele netwerke naby jou"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Stel outomaties met jou toestelligging, indien beskikbaar. ’n Aktiewe wi-fi-verbinding kan vereis word."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Stel outomaties met jou toestelligging, indien beskikbaar"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Gebruik verstek vir locale"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Gebruik 24-uur-formaat"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Tyd"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Toeganklikheid"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fisiese sleutelbord"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Hopsleutels"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Die sleutelbord ignoreer vinnig herhaalde drukke van dieselfde sleutel"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Bonssleuteldrempel"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Kies vir hoe lank jou sleutelbord herhaalde sleuteldrukke ignoreer"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2s."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4s."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6s."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Gepasmaak"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"gepasmaakte waarde"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Stadige sleutels"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Verstel die tyd wat dit neem vir ’n sleuteldruk om geaktiveer te word"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Taaisleutels"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Druk een sleutel op ’n slag vir kortpaaie pleks van om die sleutels saam in te hou"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Muissleutels"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Gebruik jou sleutelbord om die wyser te beheer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Muis – omgekeerde rollees"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Rollees op om die bladsy af te beweeg"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Ruil linker- en regterknoppies om"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Gebruik die muis se linkerknoppie as jou regterknoppie"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortpadsleutels"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Wys lys met kortpaaie"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Werkprofielsleutelborde en -nutsgoed"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Kies ’n nuwe sleutel vir <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Toeganklikheid vir fisieke sleutelbord"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Taaisleutels, hopsleutels, muissleutels"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Herhaalsleutels"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Vertraging voor herhaling"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Herhaalkoers"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hou ’n sleutel in om sy karakter te herhaal totdat die sleutel gelos word"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g>-uitleg"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Verstek"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Outomaties: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Voorskou"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standaardopsies"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Taal"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Onderskrifgrootte"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Onderskrifstyl"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Gepasmaakte opsies"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Agtergrondkleur"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Ontkoppel hierdie VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Ontkoppel"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Weergawe"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Weergawe <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Vergeet VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Vervang bestaande VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Stel altyd-aan VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Soekinstellings"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakte, berging, rekening"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontakte-berging"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Net toestel"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nuwe kontakte sal nie met ’n rekening gesinkroniseer word nie"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakte sal by verstek op jou toestel gestoor en met jou rekening gesinkroniseer word"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Geen verstek gestel nie"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Voeg ’n rekening by om te begin"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Omkring en Soek"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Raak en hou die Tuisknoppie of die navigasiehandvatsel om met gebruik van die inhoud op jou skerm te soek."</string>
 </resources>
diff --git a/res/values-am/arrays.xml b/res/values-am/arrays.xml
index f2996ac..d0a748b 100644
--- a/res/values-am/arrays.xml
+++ b/res/values-am/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"የበረዶ ቅንጣት"</item>
     <item msgid="7952183800501346803">"የባህር ዳርቻ ዣንጥላ"</item>
     <item msgid="799139025758265891">"የሥራ ቦታ መሣሪያዎች"</item>
-    <item msgid="1330084588359129896">"ድንኳን"</item>
+    <item msgid="8112685757657659269">"ፒያኖ"</item>
     <item msgid="3861584909935022342">"የፊልም ሪል"</item>
     <item msgid="5827426100157335512">"መጽሐፍ"</item>
     <item msgid="8585828346253128384">"የሎተስ አበባ"</item>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index fd47a2c..8fc92bf 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"አውታረ መረቡን እና ገመድ አልባ ምልክቶችን በመጠቀም በራስ-ሰር ያቀናብሩ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ራስ-ሰር የሰዓት ሰቅ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"በአቅራቢያዎ ባሉ የተንቀሳቃሽ ስልክ አውታረ መረቦች መሰረት በራስ-ሰር ያቀናብሩ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"የሚገኝ ከሆነ የመሣሪያዎን አካባቢ በመጠቀም በራስ-ሰር ያቀናብሩ። እንዲሁም ንቁ የWifi ግንኙነት ሊያስፈልግ ይችላል።"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"የሚገኝ ከሆነ የመሣሪያዎን አካባቢ በመጠቀም በራስ-ሰር ያቀናብሩ"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"የቋንቋ ነባሪ ይጠቀሙ"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 ሰዓት ቅርፀት ተጠቀም"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ሰዓት"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ተደራሽነት"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"አካላዊ ቁልፍ ሰሌዳ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"የመንጠሪያ ቁልፎች"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"ቁልፍ ሰሌዳው ተመሳሳዩ ቁልፍ በፍጥነት መጫኖችን ችላ ይላል"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"የወጡ ቁልፎች መባቻ"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"የቁልፍ ሰሌዳዎ ተደጋጋሚ የቁልፍ መጫኖችን ችላ የሚልበትን የቆይታ ጊዜ ይምረጡ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2ሰ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4ሰ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6ሰ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"ብጁ"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"ብጁ እሴት"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ቀርፋፋ ቁልፎች"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"የቁልፍ መጫኖችን ለማግበር የሚወስደውን ጊዜ ያስተካክላል"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ተጣባቂ ቁልፎች"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"አቋራጮችን ለማግኘት ቁልፎችን በአንድ ላይ ከመያዝ ይልቅ ቁልፎችን አንድ በአንድ ይጫኑ"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"የመዳፊት ቁልፎች"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ነጥቦቹን ለመቆጣጠር የቁልፍ ሰሌዳዎን ይጠቀሙ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"የመዳፊት ወደኋላ መሸብለል"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ገፁን ወደ ታች ለማንቀሳቀስ ወደ ላይ ይሸብልሉ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"የግራ እና የቀኝ አዝራሮችን ያለዋውጡ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"የግራ የመዳፊት አዝራሩን እንደ የእርስዎ ቀኝ ይጠቀሙ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"የቁልፍ ሰሌዳ አቋራጮች"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"የአቋራጭ ዝርዝርን አሳይ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"የሥራ መገለጫ የቁልፍ ሰሌዳዎች እና መሣሪያዎች"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"ለ<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> አዲስ ቁልፍ ይምረጡ፦"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"የአካላዊ ቁልፍ ሰሌዳ ተደራሽነት"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ተለጣፊ ቁልፎች፣ አንጥር ቁልፎች፣ የመዳፊት ቁልፎች"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"የሚደጋገሙ አዝራሮች"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ከመድገም በፊት አዘግይ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"የድግግሞሽ ፍጥነት"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"አንድ አዝራር እስከሚለቀቅ ድረስ ቁምፊውን ለመደጋገም አዝራሩን ተጭነው ይያዙ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"የ<xliff:g id="IME_LABEL">%s</xliff:g> አቀማመጥ"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ነባሪ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ራስ-ሰር፦ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ቅድመ-ዕይታ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"መደበኛ አማራጮች"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ቋንቋ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"የመግለጫ ጽሁፍ መጠን"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"የመግለጫ ጽሁፍ ቅጥ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ብጁ አማራጮች"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"የጀርባ ቀለም"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"የዚህ ቪፒኤን ግንኙነት ይቋረጥ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ግንኙነት አቋርጥ"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ስሪት"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ሥሪት <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPNን እርሳ"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"አሁን ያለው VPN ይተካ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ሁልጊዜ-የበራ VPN ይቀናበር?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ቅንብሮች ውስጥ ይፈልጉ"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"ዕውቂያዎች፣ ማከማቻ፣ መለያ"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"የዕውቂያዎች ማከማቻ"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"መሣሪያ ብቻ"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"አዳዲስ ዕውቂያዎች በመለያ አይሰምሩም"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ዕውቂያዎች ወደ መሣሪያዎ ይቀመጣሉ እና በነባሪ ከመለያዎ ጋር ይሰምራሉ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ምንም ነባሪ አልተቀናበረም"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ለመጀመር መለያ ያክሉ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ለመፈለግ ክበብ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"በማያ ገፅዎ ላይ ያለውን ይዘት በመጠቀም ለመፈለግ የመነሻ አዝራሩን ወይም የአሰሳ መያዣውን ይንኩ እና ይያዙ።"</string>
 </resources>
diff --git a/res/values-ar/arrays.xml b/res/values-ar/arrays.xml
index 5f924b2..11636c3 100644
--- a/res/values-ar/arrays.xml
+++ b/res/values-ar/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ندفة ثلج"</item>
     <item msgid="7952183800501346803">"مظلة شاطئ"</item>
     <item msgid="799139025758265891">"أدوات ورشة عمل"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"بيانو"</item>
     <item msgid="3861584909935022342">"بكرة فيلم"</item>
     <item msgid="5827426100157335512">"كتاب"</item>
     <item msgid="8585828346253128384">"زهرة لوتس"</item>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 5365903..6ea25eb 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ضبط التاريخ والوقت تلقائيًا باستخدام إشارة الشبكة والإشارة اللاسلكية"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"المنطقة الزمنية التلقائية"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ضبط التاريخ والوقت تلقائيًا استنادًا إلى شبكات الجوّال القريبة منك"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"‏يمكن ضبط التاريخ والوقت تلقائيًا باستخدام الموقع الجغرافي لجهازك، إذا كان متاحًا. وقد يُطلَب الاتصال بشبكة Wi-Fi نشِطة."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"يمكن ضبط التاريخ والوقت تلقائيًا باستخدام الموقع الجغرافي لجهازك، إذا كان متاحًا"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"استخدام التنسيق التلقائي المحلي"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"استخدام تنسيق ٢٤ ساعة"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"الوقت"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"تتجاهل لوحة المفاتيح الضغطات المتكررة بسرعة على المفتاح نفسه"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"حدّ تجاهُل النقرات المتكرّرة"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"اختَر المدة الزمنية التي تتجاهل فيها لوحة المفاتيح الضغطات المتكرّرة على المفاتيح"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"‫0.2 ثانية"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"‫0.4 ثانية"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"‫0.6 ثانية"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"‫0.2 ثانية"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"‫0.4 ثانية"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"‫0.6 ثانية"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"مخصّصة"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"قيمة مخصّصة"</string>
     <string name="slow_keys" msgid="2891452895499690837">"المفاتيح البطيئة"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"تضبط هذه الميزة المهلة قبل أن يعمل المفتاح عند الضغط عليه"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"تثبيت المفاتيح"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"اضغط على مفتاح واحد في كل مرة للحصول على الاختصارات بدلاً من الضغط باستمرار على المفاتيح معًا"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"مفاتيح الماوس"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"يمكنك استخدام لوحة المفاتيح للتحكّم في المؤشر"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"الانتقال العكسي عبر الماوس"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"يمكنك الانتقال للأعلى لتحريك محتوى الصفحة للأسفل"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"تبديل الزرَّين الأيمن والأيسر"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"يمكنك استخدام زر الماوس الأيسر كزر الماوس الأيمن"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"اختصارات لوحة المفاتيح"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"إظهار قائمة الاختصارات"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"لوحات مفاتيح وأدوات ملف العمل"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"اختيار مفتاح جديد لـ \"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>\":"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"تسهيل استخدام لوحة المفاتيح الخارجية"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ميزة \"تثبيت المفاتيح\" وميزة \"تجاهُل النقرات المتكرّرة\" ومفاتيح الماوس"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"تكرار الحرف الذي يكتبه المفتاح"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"مدة التأخير قبل التكرار"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"معدّل التكرار"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"اضغط مع الاستمرار على أحد المفاتيح لتكرار الحرف الذي يكتبه هذا المفتاح إلى أن ترفع إصبعك عنه"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"التنسيق <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"تلقائي"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"تلقائي: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"معاينة"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"خيارات عادية"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"اللغة"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"حجم نص الترجمة والشرح"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"نمط الشرح"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"خيارات مخصصة"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"لون الخلفية"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"‏هل تريد قطع الاتصال بهذه شبكة VPN؟"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"قطع الاتصال"</string>
     <string name="vpn_version" msgid="6344167191984400976">"الإصدار"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"الإصدار <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"‏نسيان شبكة VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"‏هل تريد استبدال شبكة VPN الحالية؟"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"‏هل تريد تشغيل شبكة VPN باستمرار؟"</string>
@@ -5461,6 +5467,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"الجهاز فقط"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"لن تتم مزامنة جهات الاتصال الجديدة مع أحد الحسابات"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"سيتم حفظ جهات الاتصال على جهازك ومزامَنتها مع حسابك تلقائيًا"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"لم يتم ضبط حساب تلقائي"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"يُرجى إضافة حساب للبدء"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"دائرة البحث"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"انقر مع الاستمرار على زر الشاشة الرئيسية أو مؤشر التنقُّل للبحث باستخدام المحتوى الذي يظهر على شاشتك."</string>
 </resources>
diff --git a/res/values-as/arrays.xml b/res/values-as/arrays.xml
index bddefce..992508f 100644
--- a/res/values-as/arrays.xml
+++ b/res/values-as/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"তুষাৰ কণিকা"</item>
     <item msgid="7952183800501346803">"সমুদ্ৰতীৰৰ ছাতি"</item>
     <item msgid="799139025758265891">"কৰ্মশালাৰ সঁজুলি"</item>
-    <item msgid="1330084588359129896">"তম্বু"</item>
+    <item msgid="8112685757657659269">"পিয়ান’"</item>
     <item msgid="3861584909935022342">"ফিল্মৰ ৰীল"</item>
     <item msgid="5827426100157335512">"কিতাপ"</item>
     <item msgid="8585828346253128384">"পদুম ফুল"</item>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index a0ded4d..a595e4a 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"আপোনাৰ নেটৱৰ্ক আৰু বেতাঁৰ ছিগনেল ব্যৱহাৰ কৰি স্বয়ংক্ৰিয়ভাৱে ছেট কৰক"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"স্বয়ংক্ৰিয় সময় মণ্ডল"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"আপোনাৰ নিকটৱৰ্তী ম’বাইল নেটৱৰ্ক অনুযায়ী স্বয়ংক্ৰিয়ভাৱে ছেট কৰক"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"উপলব্ধ হ’লে আপোনাৰ ডিভাইচৰ অৱস্থান ব্যৱহাৰ কৰি স্বয়ংক্ৰিয়ভাৱে ছেট কৰক। সক্ৰিয় ৱাইফাই সংযোগৰ প্ৰয়োজন হ’ব পাৰে।"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"উপলব্ধ হ’লে আপোনাৰ ডিভাইচৰ অৱস্থান ব্যৱহাৰ কৰি স্বয়ংক্ৰিয়ভাৱে ছেট কৰক"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"স্থানীয় ডিফ’ল্ট ব্যৱহাৰ কৰক"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"২৪ ঘণ্টীয়া সজ্জা ব্যৱহাৰ কৰক"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"সময়"</string>
@@ -1949,15 +1949,26 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"কীব’ৰ্ডে একেটা কী ক্ষিপ্ৰতাৰে বাবে বাৰে টিপাটো আওকাণ কৰে"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"বাউন্স কীৰ সীমা"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"সেই সময় অৱধি বাছনি কৰক যেতিয়া আপোনাৰ কীব’ৰ্ডে বাৰে বাৰে কী টিপাটো আওকাণ কৰে"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"০.২ ছেকেণ্ড"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"০.৪ ছেকেণ্ড"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"০.৬ ছেকেণ্ড"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
+    <skip />
     <string name="slow_keys" msgid="2891452895499690837">"ধীৰ গতিৰ কী"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"সক্ৰিয় কৰিবলৈ এটা কী টিপাৰ বাবে লগা সময় মিলায়"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ষ্টিকী কী"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"একেলগে কীসমূহ টিপি ধৰি থকাৰ সলনি শ্বৰ্টকাটৰ বাবে এবাৰত এটা কী টিপক"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"মাউছ কীসমূহ"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"পইণ্টাৰ নিয়ন্ত্ৰণ কৰিবলৈ আপোনাৰ কীব’ৰ্ড ব্যৱহাৰ কৰক"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"মাউছ ওলোটাকৈ স্ক্ৰ’ল কৰাৰ সুবিধা"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"পৃষ্ঠাটো তললৈ নিবলৈ ওপৰলৈ স্ক্ৰ’ল কৰক"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"বাওঁ আৰু সোঁফালৰ বুটাম সলনা-সলনি কৰক"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"মাউছৰ বাওঁফালৰ বুটামটো আপোনাৰ সোঁফালৰ হিচাপে ব্যৱহাৰ কৰক"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীব’ৰ্ডৰ শ্বৰ্টকাটসমূহ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শ্বৰ্টকাটৰ সূচী দেখুৱাওক"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"কৰ্মস্থানৰ প্ৰ’ফাইল আৰু সঁজুলি"</string>
@@ -2026,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>ৰ বাবে এটা নতুন চাবি বাছনি কৰক:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"কায়িক কীব’ৰ্ডৰ সাধ্য সুবিধা"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ষ্টিকী কী, বাউন্স কী, মাউছ কী"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"কী পুনৰাবৃত্তি কৰক"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"পুনৰাবৃত্তিৰ পূৰ্বে হোৱা বিলম্ব"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"পুনৰাবৃত্তিৰ হাৰ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"কীটো এৰি নিদিয়ালৈকে কোনো কীৰ বৰ্ণটো পুনৰাবৃত্তি কৰিবলৈ সেই কীটো টিপি ধৰক"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> লে’আউট"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ডিফ\'ল্ট"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"স্বয়ংক্ৰিয়: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"পূৰ্বদৰ্শন"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"মান্য বিকল্পসমূহ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ভাষা"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"কেপশ্বনৰ আকাৰ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"কেপশ্বন শৈলী"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"কাষ্টম বিকল্পসমূহ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"বেকগ্ৰাউণ্ডৰ ৰং"</string>
@@ -2979,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"এই ভিপিএনটোৰ সৈতে সংযোগ বিচ্ছিন্ন কৰিবনে?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"সংযোগ বিচ্ছিন্ন কৰক"</string>
     <string name="vpn_version" msgid="6344167191984400976">"সংস্কৰণ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"সংস্কৰণ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"ভিপিএন পাহৰক"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"পূৰ্বৰ ভিপিএনটো সলনি কৰেনে?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ভিপিএনক যিকোনো সময়ত অন থকা অবস্থাত ছেট কৰিবনে?"</string>
@@ -5457,6 +5468,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ডিভাইচ মাত্ৰ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"নতুন সম্পৰ্কসমূহ একাউণ্টৰ সৈতে ছিংক কৰা নহ’ব"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"সম্পৰ্কসমূহ আপোনাৰ ডিভাইচত ছেভ কৰা হ’ব আৰু ডিফ’ল্টভাৱে আপোনাৰ একাউণ্টত ছিংক কৰা হ’ব"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"কোনো ডিফ\'ল্ট ছেট কৰা হোৱা নাই"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"আৰম্ভ কৰিবলৈ এটা একাউণ্ট যোগ দিয়ক"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"সন্ধান কৰিবৰ বাবে বৃত্ত"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"আপোনাৰ স্ক্ৰীনত থকা সমলটো ব্যৱহাৰ কৰি সন্ধান কৰিবলৈ গৃহ বুটামটো বা নেভিগেশ্বন হেণ্ডেল স্পৰ্শ কৰি ধৰি ৰাখক।"</string>
 </resources>
diff --git a/res/values-az/arrays.xml b/res/values-az/arrays.xml
index e035d4e..6293141 100644
--- a/res/values-az/arrays.xml
+++ b/res/values-az/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Qar uçqunu"</item>
     <item msgid="7952183800501346803">"Çimərlik çətiri"</item>
     <item msgid="799139025758265891">"Emalatxana alətləri"</item>
-    <item msgid="1330084588359129896">"Çadır"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Kinolent"</item>
     <item msgid="5827426100157335512">"Kitab"</item>
     <item msgid="8585828346253128384">"Lotus çiçəyi"</item>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index b2bc577..883c191 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Şəbəkə və simsiz siqnallarınızdan istifadə edərək avtomatik təyin edin"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Avtomatik saat qurşağı"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Yaxınlıqdakı mobil şəbəkələrə əsasən avtomatik təyin edin"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Mümkünsə, cihaz məkanı vasitəsilə avtomatik təyin edin. Aktiv Wi-Fi bağlantısı da tələb oluna bilər."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Mümkünsə, cihaz məkanı vasitəsilə avtomatik təyin edin"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Regional defolt ayarlar tətbiq olunsun"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 saat formatından istifadə et"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Vaxt"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Əlçatımlıq"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziki klaviatura"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Sıçrama düymələri"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klaviatura eyni düymənin təkrarən basılmasını nəzərə almır"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Sıçrayan klaviş üzrə hədd"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Klaviaturanızın təkrarlanan düymə basılmalarını nəzərə almayacağı müddəti seçin"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Fərdi"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"fərdi qiymət"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Asta düymələr"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Düyməyə basmağın aktivləşdirilməsi üçün tələb olunan vaxtı tənzimləyir"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Əvəzedici düymələr"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Qısayollar üçün düymələri birlikdə basıb saxlamaq əvəzinə hər dəfə bir düyməyə basın"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Maus düymələri"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Poynteri idarə etmək üçün klaviaturadan istifadə edin"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mausun geri sürüşdürülməsi"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Səhifəni aşağı hərəkət etdirmək üçün yuxarı sürüşdürün"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Sol və sağ düymələri dəyişin"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Mausun sol düyməsini sağ kimi istifadə edin"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatura qısayolları"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Qısayolların siyahısını göstərin"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klaviaturaları və alətlər"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> üçün yeni açar seçin:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fiziki klaviatura əlçatanlığı"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Əvəzedici düymələr, sıçrama düymələri, maus düymələri"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Düymələri təkrarlayın"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Təkrardan əvvəlki gecikmə"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Təkrar sürəti"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Düymə buraxılana qədər simvolu təkrarlamaq üçün düyməni basıb saxlayın"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> düzəni"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Defolt"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Avtomatik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Önizləmə"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standart seçimlər"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Dil"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Subtitr ölçüsü"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Subtitr üslubu"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Fərdi seçimlər"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Arxa plan rəngi"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Bu VPN bağlantısı kəsilsin?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Bağlantını kəsin"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versiya"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versiya <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN\'i unudun"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Mövcud VPN əvəz edilsin?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Hər zaman aktiv VPN quraşdırılsın?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Axtarış Ayarları"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktlar, yaddaş, hesab"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontakt yaddaşı"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Yalnız cihaz"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Yeni kontaktlar hesab ilə sinxronlaşdırılmayacaq"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontaktlar cihazınızda saxlanılacaq və defolt olaraq hesabınız ilə sinxronlaşdırılacaq"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Defolt ayarlanmayıb"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Başlamaq üçün hesab əlavə edin"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Dairəyə alaraq axtarın"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Ekrandakı kontentdən istifadə edərək axtarış etmək üçün Əsas ekran düyməsinə və ya naviqasiya tutacağına basıb saxlayın."</string>
 </resources>
diff --git a/res/values-b+sr+Latn/arrays.xml b/res/values-b+sr+Latn/arrays.xml
index 9536100..0a97d19 100644
--- a/res/values-b+sr+Latn/arrays.xml
+++ b/res/values-b+sr+Latn/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Pahulja"</item>
     <item msgid="7952183800501346803">"Suncobran"</item>
     <item msgid="799139025758265891">"Alat iz radionice"</item>
-    <item msgid="1330084588359129896">"Šator"</item>
+    <item msgid="8112685757657659269">"Klavir"</item>
     <item msgid="3861584909935022342">"Rolna filma"</item>
     <item msgid="5827426100157335512">"Knjiga"</item>
     <item msgid="8585828346253128384">"Cvet lotosa"</item>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index a66625c..5594267 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Automatsko podešavanje pomoću mreže i bežičnih signala"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatska vremenska zona"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Automatsko podešavanje na osnovu mobilnih mreža u blizini"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Automatsko podešavanje pomoću lokacije uređaja, ako je dostupna. Možda je potrebna i aktivna WiFi veza."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Automatsko podešavanje pomoću lokacije uređaja, ako je dostupna"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Koristi podrazumevanu vrednost za lokalitet"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Koristi 24-časovni format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Vreme"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastatura zanemaruje brze pritiske istog tastera koji se ponavljaju"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prag za duži odziv tastera"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Odaberite koliko dugo tastatura zanemaruje ponavljane pritiske tastera"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 sek"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 sek"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 sek"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 sek"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 sek"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 sek"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Prilagođeno"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"prilagođena vrednost"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Spori tasteri"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Prilagodite vreme za aktiviranje tastera posle pritiska"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Lepljivi tasteri"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Pritiskajte jedan po jedan taster da biste koristili prečice umesto da istovremeno držite tastere"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tasteri miša"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Kontrolišite pokazivač pomoću tastature"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Obrnuto skrolovanje mišem"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Skrolujte nagore da biste pomerili stranicu nadole"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Zamenite dugmad nalevo i nadesno"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Koristite levi taster miša kao desni"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tasterske prečice"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikazuje listu prečica"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastature i alatke za poslovni profil"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Odaberite novi taster za <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Pristupačnost fizičke tastature"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Lepljivi tasteri, duži odziv tastera, tasteri miša"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ponavljanje tastera"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Odlaganje pre ponavljanja"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Brzina ponavljanja"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pritisnite i zadržite taster da biste ponavljali unos znaka sve dok ne pustite taster"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Raspored <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Podrazumevano"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatski: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pregled"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardne opcije"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jezik"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Veličina titla"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stil titla"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Prilagođene opcije"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Boja pozadine"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Želite li da prekinete vezu sa ovim VPN-om?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Prekini vezu"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verzija"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verzija <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zaboravi VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Želite li da zamenite postojeći VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Želite li da podesite uvek uključeni VPN?"</string>
@@ -5458,6 +5464,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Samo uređaj"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Novi kontakti se neće sinhronizovati sa nalogom"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakti se podrazumevano čuvaju na uređaju i sinhronizuju sa nalogom"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nije podešen podrazumevani nalog"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Dodajte nalog da biste započeli"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Pretraga zaokruživanjem"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Dodirnite i zadržite dugme Početak ili marker za kretanje da biste pretraživali pomoću sadržaja na ekranu."</string>
 </resources>
diff --git a/res/values-be/arrays.xml b/res/values-be/arrays.xml
index ab14c2b..932a172 100644
--- a/res/values-be/arrays.xml
+++ b/res/values-be/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Сняжынка"</item>
     <item msgid="7952183800501346803">"Пляжны парасон"</item>
     <item msgid="799139025758265891">"Інструменты майстэрні"</item>
-    <item msgid="1330084588359129896">"Палатка"</item>
+    <item msgid="8112685757657659269">"Піяніна"</item>
     <item msgid="3861584909935022342">"Кінаплёнка"</item>
     <item msgid="5827426100157335512">"Кніга"</item>
     <item msgid="8585828346253128384">"Кветка лотаса"</item>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 4b6de65..5a2af18 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Задаваць аўтаматычна, выкарыстоўваючы сігналы сеткі і бесправадныя сігналы прылады"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Аўтавызначэнне часавага пояса"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Задаваць аўтаматычна па даных бліжэйшых мабільных сетак"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Задаваць аўтаматычна па месцазнаходжанню прылады, калі яно вызначаецца. Можа спатрэбіцца актыўнае падключэнне да Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Задаваць аўтаматычна па месцазнаходжанні прылады, калі яно вызначаецца"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Выкарыстоўваць стандартныя рэгіянальныя налады"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Выкарыстоўваць 24-гадзінны фармат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Час"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Спецыяльныя магчымасці"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізічная клавіятура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ігнараванне паўторнага націскання"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Хуткія паўторныя націсканні адной і той жа клавішы ігнаруюцца"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Ігнараванне паўторнага націскання"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Выберыце час, на працягу якога паўторныя націсканні адной і той жа клавішы будуць ігнаравацца"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 с"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 с"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 с"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Карыстальніцкае значэнне"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"карыстальніцкае значэнне"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Запавольванне рэакцыі на націсканне"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Адрэгулюйце час, неабходны для актывацыі націскання клавішы"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Заліпанне клавіш"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Замест таго каб утрымліваць усе клавішы са спалучэння, націскайце іх па адной"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Кнопкі мышы"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Выкарыстоўвайце клавіятуру, каб кіраваць паказальнікам"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Адваротная прагортка мышшу"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Калі прагортваць уверх, старонка будзе перамяшчацца ўніз"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Замена месцамі функцый левай і правай кнопак"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Прызначце для левай кнопкі мышы функцыі правай"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарачыя клавішы"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Паказаць спіс спалучэнняў клавіш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіятуры і інструменты працоўнага профілю"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Выберыце новы ключ для \"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>\":"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Спецыяльныя магчымасці з выкарыстаннем фізічнай клавіятуры"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Заліпанне клавіш, ігнараванне паўторнага націскання, клавішы мышы"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Паўторны ўвод сімвала"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Затрымка перад паўторам"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Частата паўтораў"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Паўтараць увод сімвала, пакуль клавіша націснута"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Раскладка \"<xliff:g id="IME_LABEL">%s</xliff:g>\""</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Стандартная"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Аўтаматычна: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Перадпрагляд"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандартныя опцыі"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Мова"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Памер субцітраў"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стыль субцітраў"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Карыстальніцкія параметры"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Колер фону"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Адключыць гэту VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Адключыць"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Версія"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Версія <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Забыць VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Замяніць існуючую VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Наладзіць заўсёды ўключаную VPN?"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Шукаць у наладах"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"кантакты, сховішча, уліковы запіс"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Сховішча кантактаў"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Толькі прылада"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Новыя кантакты не будуць сінхранізавацца з уліковым запісам"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Кантакты будуць стандартна захоўвацца на прыладзе і сінхранізавацца з уліковым запісам"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Стандарт не вызначаны"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Каб пачаць, дадайце ўліковы запіс"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Абвесці для пошуку"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Каб запусціць пошук з выкарыстаннем змесціва экрана, націсніце і ўтрымлівайце кнопку галоўнага экрана або маркер навігацыі."</string>
 </resources>
diff --git a/res/values-bg/arrays.xml b/res/values-bg/arrays.xml
index 631450e..b736ea3 100644
--- a/res/values-bg/arrays.xml
+++ b/res/values-bg/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Снежинка"</item>
     <item msgid="7952183800501346803">"Плажен чадър"</item>
     <item msgid="799139025758265891">"Инструменти за работилница"</item>
-    <item msgid="1330084588359129896">"Палатка"</item>
+    <item msgid="8112685757657659269">"Пиано"</item>
     <item msgid="3861584909935022342">"Филмов видеоколаж"</item>
     <item msgid="5827426100157335512">"Книга"</item>
     <item msgid="8585828346253128384">"Лотос"</item>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index d3ddd40..659e3d7 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Автоматично задаване чрез мрежата и безжичните сигнали"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Автоматична часова зона"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Автоматично задаване въз основа на мобилните мрежи в близост до вас"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Авт. задаване чрез местоп. на у-вото ви, ако е налице. Може да се изисква и активна връзка с Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Автоматично задаване чрез местоположението на устройството ви, ако е налице"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Използване на стандартния формат за локала"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-часов формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Час"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Достъпност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическа клавиатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Игнориране на многократ. натискане"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Клавиатурата игнорира бързите повтарящи се натискания на един и същ клавиш"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Игнор. на многокр. натискане (праг)"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Изберете периода от време, през който клавиатурата ви ще игнорира повтарящите се натискания на даден клавиш"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 сек"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 сек"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 сек"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Персонализирано"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"персонализирана стойност"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Забавяне на сигнала от клавишите"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Коригира времето, необходимо за активиране след натискане на даден клавиш"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Фиксирани клавиши"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Натискайте клавишите от съответните комбинации един по един, вместо да ги задържате заедно"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Бутони на мишката"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Използвайте клавиатурата, за да управлявате курсора"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Обратно превъртане с мишката"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Превъртете нагоре, за да преместите страницата надолу"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Размяна на левия и десния бутон"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Използвайте левия бутон на мишката като десен"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Клавишни комбинации"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показване на списък с клавишните комбинации"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатури и инструменти за служебния потр. профил"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Изберете нов ключ за <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Достъпност чрез физическата клавиатура"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Фиксирани клавиши, игнориране на многократни натискания, бутони на мишката"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Повтаряне на клавишите"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Забавяне преди повтаряне"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Честота на повторение"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Задържане на клавиш с цел повтаряне на съответния знак, докато клавишът не бъде пуснат"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Подредба: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"По подразбиране"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматично: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Визуализация"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандартни опции"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Език"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Размер на надписите"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стил на надписите"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Персонализирани опции"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Цвят на фона"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Да се прекрати ли връзката с тази виртуална частна мрежа (VPN)?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Прекратяване на връзката"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Версия"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Версия <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Забравяне на вирт. частна мрежа (VPN)"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Да се замени ли съществуващата VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Да се зададе ли винаги включена виртуална частна мрежа (VPN)?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Търсене в настройките"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"контакти, хранилище, профил"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Хранилище на контакти"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Само на устройството"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Новите контакти няма да се синхронизират с профил"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"По подразбиране контактите ще се запазват на устройството ви и ще се синхронизират с профила ви"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Няма профил по подразбиране"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"За да започнете, добавете профил"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Търсене с ограждане"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Докоснете и задръжте бутона „Начало“ или манипулатора за навигация, за да потърсите съдържанието на екрана."</string>
 </resources>
diff --git a/res/values-bn/arrays.xml b/res/values-bn/arrays.xml
index 5b14f56..d260c02 100644
--- a/res/values-bn/arrays.xml
+++ b/res/values-bn/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"বরফের কণা"</item>
     <item msgid="7952183800501346803">"বিচ আমব্রেলা"</item>
     <item msgid="799139025758265891">"ওয়ার্কশপ টুল"</item>
-    <item msgid="1330084588359129896">"তাঁবু"</item>
+    <item msgid="8112685757657659269">"পিয়ানো"</item>
     <item msgid="3861584909935022342">"ফিল্ম রিল"</item>
     <item msgid="5827426100157335512">"বই"</item>
     <item msgid="8585828346253128384">"পদ্ম ফুল"</item>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 042aac7..2483e1f 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"আপনার নেটওয়ার্ক ও ওয়্যারলেস সিগন্যাল ব্যবহার করে অটোমেটিক সেট করুন"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"অটোমেটিক টাইম জোন"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"আপনার কাছাকাছি মোবাইল নেটওয়ার্কের উপর নির্ভর করে অটোমেটিক সেট করুন"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"উপলভ্য থাকলে, আপনার ডিভাইসের লোকেশন ব্যবহার করে অটোমেটিক সেট করুন। চালু থাকা একটি ওয়াই-ফাই কানেকশনও প্রয়োজন হতে পারে।"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"উপলভ্য থাকলে, আপনার ডিভাইসের লোকেশন ব্যবহার করে অটোমেটিক সেট করুন"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"লোকেল ডিফল্ট ব্যবহার করুন"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"২৪ ঘন্টার ফর্ম্যাট ব্যবহার করুন"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"সময়"</string>
@@ -1949,15 +1949,26 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"একই \'কী\' দ্রুত বারবার প্রেস করলে কীবোর্ড তা উপেক্ষা করে"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"বাউন্স কী থ্রেশহোল্ড"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"আপনার কীবোর্ড কতক্ষণ পর্যন্ত কোনও একটি \'কী\' বারবার প্রেস করার ঘটনাকে উপেক্ষা করে সেই সময়সীমা বেছে নিন"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"০.২ সেকেন্ড"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"০.৪ সেকেন্ড"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"০.৬ সেকেন্ড"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
+    <skip />
     <string name="slow_keys" msgid="2891452895499690837">"স্লো \'কী\'"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"কোনও কী প্রেস করলে সেটি অ্যাক্টিভেট হতে যে সময় লাগে তা অ্যাডজাস্ট করে নেয়"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"স্টিকি \'কী\'"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"শর্টকাটের জন্য কীগুলি একসাথে ধরে রাখার পরিবর্তে একবারে একটি কী প্রেস করুন"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"মাউস \'কী\'"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"পয়েন্টার নিয়ন্ত্রণ করতে আপনার কীবোর্ড ব্যবহার করুন"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"মাউস উল্টো দিকে স্ক্রল করা"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"পৃষ্ঠা নিচের দিকে নামাতে উপরের দিকে স্ক্রল করুন"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"বাঁদিক ও ডানদিকের বোতাম অদলবদল করুন"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"মাউসের বাঁদিকের বোতামটিকে ডানদিকের বোতাম হিসেবে ব্যবহার করুন"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"কীবোর্ড শর্টকাট"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"শর্টকাটের তালিকা দেখান"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"অফিসের প্রোফাইলের কীবোর্ড ও টুল"</string>
@@ -2026,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>-এর জন্য নতুন \'কী\' বেছে নিন:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ফিজিক্যাল কীবোর্ডের অ্যাক্সেসিবিলিটি"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"স্টিকি কী, বাউন্স কী, মাউস কী"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"\'কী\' রিপিট করুন"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"রিপিট হওয়ার আগে বিলম্ব"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"রিপিটের হার"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"\'কী\' রিলিজ না হওয়া পর্যন্ত কোনও \'কী\'-এর অক্ষর রিপিট করতে সেই \'কী\' প্রেস করে ধরে থাকুন"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> লেআউট"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ডিফল্ট"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"অটোমেটিক: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"প্রিভিউ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"মানক বিকল্পগুলি"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ভাষা"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ক্যাপশনের সাইজ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"ক্যাপশনের স্টাইল"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"কাস্টম বিকল্পগুলি"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"পশ্চাদপটের রঙ"</string>
@@ -2979,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"এই VPN থেকে ডিসকানেক্ট করবেন?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ডিসকানেক্ট করুন"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ভার্সন"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ভার্সন <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN সরিয়ে দিন"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"বিদ্যমান VPN প্রতিস্থাপন করতে চান?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"সর্বদা-চালু VPN সেট করতে চান?"</string>
@@ -5457,6 +5468,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"শুধুমাত্র ডিভাইস"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"অ্যাকাউন্টের সাথে নতুন পরিচিতি সিঙ্ক হবে না"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"সাধারণত, পরিচিতি আপনার ডিভাইসে সেভ হবে এবং আপনার অ্যাকাউন্টের সাথে সিঙ্ক হবে"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"কোনও ডিফল্ট অ্যাকাউন্ট সেট করা নেই"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"শুরু করতে একটি অ্যাকাউন্ট যোগ করুন"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"খোঁজার জন্য সার্কেল বানান"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"আপনার স্ক্রিনে কন্টেন্ট ব্যবহার করে সার্চ করতে হোম বোতাম বা নেভিগেশন হ্যান্ডেল টাচ করে ধরে রাখুন।"</string>
 </resources>
diff --git a/res/values-bs/arrays.xml b/res/values-bs/arrays.xml
index 6b5a498..7fc43fb 100644
--- a/res/values-bs/arrays.xml
+++ b/res/values-bs/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Pahuljica"</item>
     <item msgid="7952183800501346803">"Suncobran"</item>
     <item msgid="799139025758265891">"Alati radionice"</item>
-    <item msgid="1330084588359129896">"Šator"</item>
+    <item msgid="8112685757657659269">"Klavir"</item>
     <item msgid="3861584909935022342">"Filmska traka"</item>
     <item msgid="5827426100157335512">"Knjiga"</item>
     <item msgid="8585828346253128384">"Cvijet lotosa"</item>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 4d34680..1bf4f13 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Automatsko postavljanje putem mreže i bežičnih signala"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatska vremenska zona"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Automatsko postavljanje na osnovu mobilnih mreža u blizini"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Automatsko postavljanje putem lokacije uređaja, ako je dostupna. Može biti potrebna i WiFi veza."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Automatsko postavljanje putem lokacije uređaja, ako je dostupna"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Koristi zadani format jezika/zemlje"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Koristi 24-satni format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Vrijeme"</string>
@@ -1946,18 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pristupačnost"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizička tastatura"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Slučajni pritisci tipki"</string>
-    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tipkovnica zanemaruje brzo ponovljene pritiske iste tipke"</string>
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastatura zanemaruje brzo ponavljane pritiske iste tipke"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prag zanemarivanja slučajnih pritisaka"</string>
-    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Odaberite koliko dugo će tipkovnica zanemarivati ponovljene pritiske tipki"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Odaberite vrijeme u kojem će tastatura zanemarivati ponovljene pritiske tipki"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Prilagođeno"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"prilagođena vrijednost"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Sporo reagiranje tipki"</string>
-    <string name="slow_keys_summary" msgid="2914214326648535377">"Prilagođava vrijeme potrebno za aktivaciju pritiska tipke"</string>
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Podešava vrijeme potrebno za aktiviranje pritiskanja tipke"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Za prečice pritišćite jednu po jednu tipku umjesto da ih istovremeno zadržavate"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tipke miša"</string>
-    <string name="mouse_keys_summary" msgid="7030731235143286467">"Upravljajte pokazivačem pomoću tipkovnice"</string>
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Koristite tastaturu da upravljate pokazivačem"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Obrnuto klizanje mišem"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Kliznite nagore da pomjerite stranicu nadolje"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Zamijeni lijevo i desno dugme"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Koristite lijevo dugme miša kao desno dugme"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Prečice tastature"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz liste prečica"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatura i alati radnog profila"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Odaberite novu tipku za \"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>\":"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Pristupačnost fizičke tastature"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Ljepljive tipke, tipke s dužim odzivom i tipke miša"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ponavljaj tipke"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Odgodi prije ponavljanja"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Brzina ponavljanja"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Zadržite tipku da ponavljate njen znak dok ne pustite tipku"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Raspored: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Zadano"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatski: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pregled"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardne opcije"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jezik"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Veličina titlova"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stil titlova"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Prilagođene opcije"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Boja pozadine"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Želite li prekinuti vezu s ovim VPN-om?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Prekini vezu"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verzija"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verzija <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zaboravi VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Želite li zamijeniti postojeći VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Želite li postaviti uvijek uključen VPN?"</string>
@@ -5456,8 +5462,15 @@
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakti, pohrana, račun"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Pohrana za kontakte"</string>
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Samo uređaj"</string>
-    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Novi kontakti neće se sinkronizirati s računom"</string>
-    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakti će se spremiti na vaš uređaj i prema zadanim postavkama sinkronizirati s vašim računom"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Zadani račun nije postavljen"</string>
-    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Dodajte račun da biste započeli"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Novi kontakti se neće sinhronizirati s računom"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakti će se sačuvati na uređaj i sinhronizirati s računom prema zadanim postavkama"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Dodajte račun da započnete"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Pretraživanje zaokruživanjem"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Dodirnite i zadržite dugme za početnu stranicu ili ručicu za navigaciju da pretražujete pomoću sadržaja na ekranu."</string>
 </resources>
diff --git a/res/values-ca/arrays.xml b/res/values-ca/arrays.xml
index 9bfaf64..a3c9cef 100644
--- a/res/values-ca/arrays.xml
+++ b/res/values-ca/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Floc de neu"</item>
     <item msgid="7952183800501346803">"Para-sol"</item>
     <item msgid="799139025758265891">"Eines d\'un taller"</item>
-    <item msgid="1330084588359129896">"Tenda de campanya"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rodet de pel·lícula"</item>
     <item msgid="5827426100157335512">"Llibre"</item>
     <item msgid="8585828346253128384">"Flor de lotus"</item>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c81d720..3a3f142 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Estableix automàticament amb la xarxa i els senyals sense fil"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zona horària automàtica"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Estableix automàticament segons les xarxes mòbils properes"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Estableix auto. amb ubicació dispositiu, si disponible. Pot ser que també calgui una connexió Wi‑Fi activa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Estableix automàticament amb la ubicació del dispositiu, si està disponible."</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Utilitza la configuració regional predeterminada"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Format de 24 hores"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Hora"</string>
@@ -1127,7 +1127,7 @@
     <string name="wifi_p2p_peer_devices" msgid="5158559154640283546">"Altres dispositius"</string>
     <string name="wifi_p2p_remembered_groups" msgid="5497007770930525695">"Grups recordats"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6767831720507440027">"No s\'ha pogut connectar."</string>
-    <string name="wifi_p2p_failed_rename_message" msgid="1317434386267376606">"S\'ha produït un error en canviar el nom del dispositiu."</string>
+    <string name="wifi_p2p_failed_rename_message" msgid="1317434386267376606">"Hi ha hagut un error en canviar el nom del dispositiu."</string>
     <string name="wifi_p2p_disconnect_title" msgid="96361896458072463">"Vols desconnectar?"</string>
     <string name="wifi_p2p_disconnect_message" msgid="1208761239498807208">"Si et desconnectes, finalitzarà la teva connexió amb <xliff:g id="PEER_NAME">%1$s</xliff:g>."</string>
     <string name="wifi_p2p_disconnect_multiple_message" msgid="4490648217799144078">"Si et desconnectes, finalitzarà la teva connexió amb <xliff:g id="PEER_NAME">%1$s</xliff:g> i amb <xliff:g id="PEER_COUNT">%2$s</xliff:g> dispositius més."</string>
@@ -1659,9 +1659,9 @@
     <string name="wallpaper_attributions" msgid="4323659759250650736">"Crèdits de fons de pantalla"</string>
     <string name="wallpaper_attributions_values" msgid="987277439026021925">"Proveïdors d\'imatges de satèl·lit:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="1682978148920788484">"Manual"</string>
-    <string name="settings_manual_activity_unavailable" msgid="2514549851682321576">"S\'ha produït un problema en carregar el manual."</string>
+    <string name="settings_manual_activity_unavailable" msgid="2514549851682321576">"Hi ha hagut un problema en carregar el manual."</string>
     <string name="settings_license_activity_title" msgid="7832071619364734914">"Llicències de tercers"</string>
-    <string name="settings_license_activity_unavailable" msgid="9014803774391134570">"S\'ha produït un problema en llegir les llicències."</string>
+    <string name="settings_license_activity_unavailable" msgid="9014803774391134570">"Hi ha hagut un problema en llegir les llicències."</string>
     <string name="settings_license_activity_loading" msgid="1653151990366578827">"S\'està carregant…"</string>
     <string name="settings_safetylegal_activity_loading" msgid="1757860124583063395">"S\'està carregant…"</string>
     <string name="lockpassword_choose_your_password_header" msgid="2407205113298094824">"Defineix una contrasenya"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilitat"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclat físic"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tecles de rebot"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"El teclat ignora les pulsacions repetides ràpidament de la mateixa tecla"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Llindar de la tecla de rebot"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Tria el temps que vols que el teclat ignori les pulsacions repetides de tecles"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalitzat"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalitzat"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tecles lentes"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta el temps que tarda la pulsació d\'una tecla en activar-se"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Tecles permanents"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Prem una tecla cada vegada per a les dreceres en lloc de mantenir premudes les tecles alhora"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tecles del ratolí"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Utilitza el teclat per controlar el punter"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Desplaçament invers del ratolí"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Desplaça\'t cap amunt per moure la pàgina cap avall"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Canvia els botons dret i esquerre"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Utilitza el botó esquerre del ratolí com si fos el dret"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tecles de drecera"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra la llista de dreceres"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclats i eines del perfil de treball"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Tria una tecla nova per a <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accessibilitat del teclat físic"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Tecles permanents, tecles de rebot, tecles del ratolí"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repeteix les tecles"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Retard abans de la repetició"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Freqüència de repetició"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mantén premuda una tecla per repetir-ne el caràcter fins que la deixis anar"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Disseny de <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predeterminat"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automàtic: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2209,7 +2207,7 @@
     <string name="accessibility_tutorial_dialog_title_quick_setting" msgid="2905083277641794558">"Drecera de la configuració ràpida"</string>
     <string name="accessibility_tutorial_dialog_title_gesture" msgid="4541649734549409614">"Drecera del gest d\'accessibilitat"</string>
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Utilitza el gest d\'accessibilitat"</string>
-    <string name="accessibility_tutorial_dialog_message_button" msgid="8977286776192770246">"Per utilitzar aquesta funció, toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla.\n\nPer canviar entre funcions, mantén premut el botó d\'accessibilitat."</string>
+    <string name="accessibility_tutorial_dialog_message_button" msgid="8977286776192770246">"Per utilitzar aquesta funció, toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla.\n\nPer canviar d\'una funció a una altra, mantén premut el botó d\'accessibilitat."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="6631371483819355514">"Per utilitzar aquesta funció, toca el botó d\'accessibilitat de la pantalla"</string>
     <string name="accessibility_tutorial_dialog_message_volume" msgid="3785791536286606664">"Per utilitzar aquesta funció, mantén premudes les dues tecles de volum"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Per iniciar o aturar l\'ampliació, fes triple toc en qualsevol punt de la pantalla."</string>
@@ -2217,11 +2215,11 @@
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"Per iniciar o aturar l\'ampliació, toca ràpidament la pantalla dues vegades amb %1$d dits"</string>
     <string name="accessibility_tutorial_dialog_message_quick_setting" msgid="3715446725334547432">"{count,plural, =1{Per utilitzar aquesta funció, llisca cap avall des de la part superior de la pantalla. A continuació, cerca la icona de {featureName}.}other{Per utilitzar aquesta funció, llisca cap avall amb # dits des de la part superior de la pantalla. A continuació, cerca la icona de {featureName}.}}"</string>
     <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"Aquesta drecera estarà disponible quan acabis de configurar el dispositiu."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Per utilitzar aquesta funció, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 2 dits i mantén premut."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Per utilitzar aquesta funció, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar d\'una funció a una altra, llisca cap amunt amb 2 dits i mantén premut."</string>
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction" msgid="7349950768250852308">"{count,plural, =1{Per utilitzar aquesta funció, llisca cap amunt des de la part inferior de la pantalla}other{Per utilitzar aquesta funció, llisca cap amunt amb # dits des de la part inferior de la pantalla}}"</string>
-    <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Per utilitzar aquesta funció, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 3 dits i mantén premut."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 2 dits i mantén premut."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar entre funcions, llisca cap amunt amb 3 dits i mantén premut."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Per utilitzar aquesta funció, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar d\'una funció a una altra, llisca cap amunt amb 3 dits i mantén premut."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 2 dits des de la part inferior de la pantalla.\n\nPer canviar d\'una funció a una altra, llisca cap amunt amb 2 dits i mantén premut."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture_settings_talkback" msgid="7292969929578621958">"Per utilitzar una funció d\'accessibilitat, llisca cap amunt amb 3 dits des de la part inferior de la pantalla.\n\nPer canviar d\'una funció a una altra, llisca cap amunt amb 3 dits i mantén premut."</string>
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Entesos"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="13364319079385020">"Personalitza el botó"</string>
     <string name="accessibility_tutorial_dialog_configure_software_shortcut_type" msgid="8041105223988170653">"Més opcions"</string>
@@ -2233,8 +2231,8 @@
     <string name="accessibility_shortcut_edit_dialog_title_software" msgid="6505512764022389951">"Botó d\'accessibilitat"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Toca el botó flotant"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gest d\'accessibilitat"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla. Per canviar entre funcions, mantén premut el botó d\'accessibilitat."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Llisca cap amunt des de la part inferior de la pantalla. Per canviar entre funcions, llisca cap amunt i mantén premut.}other{Llisca cap amunt amb # dits des de la part inferior de la pantalla. Per canviar entre funcions, llisca cap amunt amb # dits i mantén premut.}}"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Toca el botó d\'accessibilitat <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> a la part inferior de la pantalla. Per canviar d\'una funció a una altra, mantén premut el botó d\'accessibilitat."</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Llisca cap amunt des de la part inferior de la pantalla. Per canviar d\'una funció a una altra, llisca cap amunt i mantén premut.}other{Llisca cap amunt amb # dits des de la part inferior de la pantalla. Per canviar d\'una funció a una altra, llisca cap amunt amb # dits i mantén premut.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Més opcions"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Més informació sobre <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings" msgid="140959604014177304">"Configuració ràpida"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Previsualització"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opcions estàndard"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Mida dels subtítols"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estil dels subtítols"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opcions personalitzades"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Color de fons"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vols desconnectar aquesta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconnecta"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versió"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versió <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Oblida la VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Vols substituir la VPN actual?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Vols definir la VPN sempre activa?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Configuració de la cerca"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contactes, emmagatzematge, compte"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Emmagatzematge de contactes"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Només dispositiu"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Els contactes nous no se sincronitzaran amb un compte"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Els contactes es desaran al dispositiu i se sincronitzaran amb el teu compte de manera predeterminada"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Cap compte predeterminat definit"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Afegeix un compte per començar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Encercla per cercar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Mantén premut el botó d\'inici o l\'ansa de navegació per cercar utilitzant el contingut de la pantalla."</string>
 </resources>
diff --git a/res/values-cs/arrays.xml b/res/values-cs/arrays.xml
index 5bfe008..84386e3 100644
--- a/res/values-cs/arrays.xml
+++ b/res/values-cs/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Sněhová vločka"</item>
     <item msgid="7952183800501346803">"Plážový slunečník"</item>
     <item msgid="799139025758265891">"Dílenské nástroje"</item>
-    <item msgid="1330084588359129896">"Stan"</item>
+    <item msgid="8112685757657659269">"Klavír"</item>
     <item msgid="3861584909935022342">"Filmový pás"</item>
     <item msgid="5827426100157335512">"Kniha"</item>
     <item msgid="8585828346253128384">"Lotosový květ"</item>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index b3a90de..1497907 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Nastavit automaticky pomocí sítě a bezdrátových signálů"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatické časové pásmo"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Nastavit automaticky podle mobilních sítí v okolí"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Nastavit automaticky podle polohy zařízení (pokud je k dispozici). Může být potřeba aktivní Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Nastavit automaticky podle polohy zařízení (pokud je k dispozici)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Používat výchozí nastavení jazyka"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Používat 24hodinový formát"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Čas"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Klávesnice ignoruje opakovaná stisknutí jedné klávesy"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Limit opakovaného stisknutí"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Vyberte dobu, po kterou bude klávesnice ignorovat opakované stisknutí klávesy"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Vlastní"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"vlastní hodnota"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Zpomalení kláves"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Upraví čas aktivace po stisknutí klávesy"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Jedním prstem"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Místo držení více kláves aktivujte zkratky postupným tisknutím jednotlivých kláves"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Klávesy pro myš"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Ukazatel můžete ovládat pomocí klávesnice"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Opačné posouvání myší"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Při posunutí nahoru posunout stránku dolů"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Prohodit levé a pravé tlačítko"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Používat levé tlačítko myši jako pravé"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové zkratky"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobrazit seznam zkratek"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje v pracovním profilu"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Vyberte novou klávesu pro <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Přístupnost na fyzické klávesnici"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Funkce Jedním prstem, klávesy pro opuštění, klávesy pro myš"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Opakovat klávesy"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Prodleva před opakováním"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Rychlost opakování"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Při podržení klávesy se bude znak opakovaně zadávat, dokud klávesu neuvolníte"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Rozvržení <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Výchozí"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatické: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Náhled"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardní možnosti"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jazyk"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Velikost titulků"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Styl titulků"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Vlastní možnosti"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Barva pozadí"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Odpojit tuto síť VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Odpojit"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verze"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verze <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zapomenout VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Nahradit stávající síť VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Nastavit trvalou síť VPN?"</string>
@@ -5459,6 +5465,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Pouze zařízení"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nové kontakty se nebudou synchronizovat s účtem"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakty se ve výchozím nastavení uloží do zařízení a synchronizují s účtem"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Žádné výchozí nastavení"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Začněte tím, že přidáte účet"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Zakroužkuj a hledej"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Pokud chcete vyhledávat pomocí obsahu na obrazovce, podržte tlačítko plochy nebo navigační úchyt."</string>
 </resources>
diff --git a/res/values-da/arrays.xml b/res/values-da/arrays.xml
index 1ff620f..20c4aba 100644
--- a/res/values-da/arrays.xml
+++ b/res/values-da/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snefnug"</item>
     <item msgid="7952183800501346803">"Parasol"</item>
     <item msgid="799139025758265891">"Værktøj"</item>
-    <item msgid="1330084588359129896">"Telt"</item>
+    <item msgid="8112685757657659269">"Klaver"</item>
     <item msgid="3861584909935022342">"Filmspole"</item>
     <item msgid="5827426100157335512">"Bog"</item>
     <item msgid="8585828346253128384">"Lotusblomst"</item>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 5fc8b0b..884e59a 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Indstil automatisk ved hjælp af dit netværk og trådløse signaler"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatisk tidszone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Indstil automatisk baseret på mobilnetværk i nærheden af dig"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Indstil automatisk ved hjælp af din enhedslokation, hvis den er tilgængelig. En aktiv Wi-Fi-forbindelse kan også være påkrævet."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Angiv automatisk ved hjælp af din enhedslokation, hvis det er muligt"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Brug landestandard"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Brug 24-timers format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Klokkeslæt"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Hjælpefunktioner"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Elastiktaster"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastaturet ignorerer gentagende, hurtige tryk på den samme tast"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Grænse for elastiktaster"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Vælg, hvor lang tid dit tastatur skal ignorere gentagne tastetryk"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 sekunder"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 sekunder"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 sekunder"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Tilpasset"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"tilpasset værdi"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Langsomtaster"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Justerer den tid, det tager, før et tastetryk aktiveres"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Træge taster"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Tryk på én tast ad gangen for at bruge genveje i stedet for at holde flere taster nede på samme tid"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Musetaster"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Brug dit tastatur til at styre markøren"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Omvendt rulning på mus"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Rul opad for at gå ned på siden"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Byt om på knapperne (venstre og højre)"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Brug venstre museknap som højre"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastaturgenveje"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis liste over genveje"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og værktøjer for arbejdsprofil"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Vælg en ny ændringstast til <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Hjælpefunktioner til fysisk tastatur"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Træge taster, elastiktaster, musetaster"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Gentagelsestaster"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Forsinkelse før gentagelse"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Gentagelsesfrekvens"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold fingeren på en tast for at gentage dens tegn, indtil du slipper tasten"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g>-layout"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standard"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatisk: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Forhåndsvisning"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardindstillinger"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Sprog"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Underteksternes størrelse"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Underteksttype"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Tilpassede valgmuligheder"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Baggrundsfarve"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vil du afbryde dette VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Afbryd forbindelse"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Glem VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Erstat det eksisterende VPN-netværk?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Vil du konfigurere konstant VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Søg i Indstillinger"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakter, lagerplads, konto"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Lagerplads for kontakter"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Kun via GPS"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nye kontakter synkroniseres ikke med en konto"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakter gemmes på din enhed og synkroniseres med din konto som standard"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Der er ikke angivet nogen standardkonto"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Tilføj en konto for at komme godt i gang"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Hold fingeren på knappen Hjem eller navigationshåndtaget for at søge ved hjælp af indholdet på skærmen."</string>
 </resources>
diff --git a/res/values-de/arrays.xml b/res/values-de/arrays.xml
index fd23c5b..bb3241d 100644
--- a/res/values-de/arrays.xml
+++ b/res/values-de/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Schneeflocke"</item>
     <item msgid="7952183800501346803">"Sonnenschirm"</item>
     <item msgid="799139025758265891">"Workshop-Tools"</item>
-    <item msgid="1330084588359129896">"Zelt"</item>
+    <item msgid="8112685757657659269">"Klavier"</item>
     <item msgid="3861584909935022342">"70er-Jahre-Film"</item>
     <item msgid="5827426100157335512">"Buch"</item>
     <item msgid="8585828346253128384">"Lotusblume"</item>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index f2129a6..adb9c4f 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Einstellung erfolgt automatisch über Netzwerk- und WLAN-Signale"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zeitzone automatisch einstellen"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Einstellung erfolgt automatisch auf der Grundlage von Mobilfunknetzen in deiner Nähe"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Einstellung erfolgt automatisch anhand des Gerätestandorts, wenn verfügbar. Eventuell ist auch eine aktive WLAN-Verbindung nötig."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Einstellung erfolgt automatisch anhand des Gerätestandorts, wenn verfügbar"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Standardformat für die gewählte Spracheinstellung verwenden"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-Stunden-Format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Uhrzeit"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Muster für vertrauliches Profil einrichten"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Sperren"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Verbergen"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Muster für vertrauliches Profil bestätigen"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"PIN für vertrauliches Profil noch einmal eingeben"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Passwort für vertrauliches Profil noch einmal eingeben"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Du kannst bis zu <xliff:g id="COUNT">%d</xliff:g> Fingerabdrücke hinzufügen."</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Du hast die maximale Anzahl an Fingerabdrücken hinzugefügt"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Es können keine Fingerabdrücke mehr hinzugefügt werden"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Prüfe das Passwort und versuch es noch einmal"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Wende dich an den Hersteller des Geräts"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Prüfe die Verbindung und versuche es noch einmal"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Dieses WLAN ist momentan nicht verfügbar"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Es gibt ein Problem mit diesem QR‑Code. Versuche es mit einer anderen Methode."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Netzwerk auswählen"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Wenn du dein Gerät verbinden möchtest, wähle ein Netzwerk"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"Dieses Gerät zu \"<xliff:g id="SSID">%1$s</xliff:g>\" hinzufügen?"</string>
@@ -1951,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Barrierefreiheit"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physische Tastatur"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce-Tasten"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Schnell aufeinanderfolgende Betätigungen derselben Taste auf der Tastatur werden ignoriert"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Grenzwert für Bounce-Tasten"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Wähle aus, wie lange wiederholtes Drücken der Tasten auf der Tastatur ignoriert werden soll"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"Anschlagverzögerung"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Passt die Zeit an, die eine Taste gedrückt werden muss, um sie zu aktivieren"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Einfingerbedienung"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Bei Tastenkombinationen Tasten einzeln drücken, statt sie zusammen gedrückt zu halten"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Maustasten"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Zum Steuern des Mauszeigers die Tastatur verwenden"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mausrad-Scrollrichtung umkehren"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Wenn du nach oben scrollst, wird die Seite nach unten verschoben"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Linke und rechte Taste tauschen"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Die linke Maustaste übernimmt die Funktion der rechten Maustaste (und umgekehrt)"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tastenkürzel"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Liste der Tastenkombinationen anzeigen"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturen und Tools für das Arbeitsprofil"</string>
@@ -2039,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Wähle eine neue Taste für <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Bedienungshilfen für physische Tastaturen"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Einfingerbedienung, Bounce-Tasten, Maustasten"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Tasteneingabewiederholung"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Verzögerung vor Wiederholung"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Wiederholungsrate"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Wenn du eine Taste gedrückt hältst, wird das entsprechende Zeichen so lange immer wieder eingegeben, bis du die Taste loslässt"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layout: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standard"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatisch: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2230,7 +2228,7 @@
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"OK"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="13364319079385020">"Schaltfläche anpassen"</string>
     <string name="accessibility_tutorial_dialog_configure_software_shortcut_type" msgid="8041105223988170653">"Weitere Optionen"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Kurzbefehl für „<xliff:g id="SERVICE">%1$s</xliff:g>“"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Kurzbefehl für <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="48978719406821294">"Schaltfläche „Bedienungshilfen“"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="7346399253904683940">"Touch-Geste für Bedienungshilfen"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Mit zwei Fingern nach oben wischen"</string>
@@ -2447,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Vorschau"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardoptionen"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Sprache"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Größe der Untertitel"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Untertitelstil"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Benutzerdefinierte Optionen"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Hintergrundfarbe"</string>
@@ -2992,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Verbindung zu diesem VPN trennen?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Verbindung trennen"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN entfernen"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Aktuelles VPN ersetzen?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Durchgehend aktives VPN aktivieren?"</string>
@@ -3924,8 +3922,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Modus erstellen"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Benutzerdefinierter Modus"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Modusname"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Der Name des Modus darf nicht leer sein"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Symbol auswählen"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Kalendertermine"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Ablauf „Schlafenszeit“"</string>
@@ -5468,13 +5465,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"In Einstellungen suchen"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"Kontakte, Speicher, Konto"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontakte-Speicher"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Nur Gerät"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Neue Kontakte werden nicht mit einem Konto synchronisiert"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakte werden standardmäßig auf deinem Gerät gespeichert und mit deinem Konto synchronisiert"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Kein Standard festgelegt"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Füge ein Konto hinzu, um loszulegen"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Halte die Startbildschirmtaste oder den Navigationsziehpunkt gedrückt, um anhand des Inhalts auf dem Bildschirm zu suchen."</string>
 </resources>
diff --git a/res/values-el/arrays.xml b/res/values-el/arrays.xml
index 2bad60e..3765c8b 100644
--- a/res/values-el/arrays.xml
+++ b/res/values-el/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Νιφάδα χιονιού"</item>
     <item msgid="7952183800501346803">"Ομπρέλα παραλίας"</item>
     <item msgid="799139025758265891">"Εργαλεία εργαστηρίου"</item>
-    <item msgid="1330084588359129896">"Σκηνή"</item>
+    <item msgid="8112685757657659269">"Πιάνο"</item>
     <item msgid="3861584909935022342">"Ρετρό φιλμ"</item>
     <item msgid="5827426100157335512">"Βιβλίο"</item>
     <item msgid="8585828346253128384">"Λουλούδι λωτού"</item>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 56ab7f6..21d0d39 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Αυτόματος ορισμός με χρήση του δικτύου σας και των ασύρματων σημάτων"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Αυτόματη ζώνη ώρας"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Αυτόματος ορισμός με βάση τα δίκτυα κινητής τηλεφωνίας κοντά σας"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Ορίστε αυτόματα με την τοποθεσία συσκευής, αν είναι διαθέσιμη. Ίσως απαιτείται ενεργή σύνδεση Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Αυτόματος ορισμός με χρήση της τοποθεσίας συσκευής, αν είναι διαθέσιμη"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Χρήση προεπιλογής τοπικών ρυθμίσεων"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Χρήση μορφής 24ώρου"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ώρα"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Το πληκτρολόγιο αγνοεί τα γρήγορα, επαναλαμβανόμενα πατήματα του ίδιου πλήκτρου"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Όριο ελαστικών πλήκτρων"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Επιλέξτε το χρονικό διάστημα κατά το οποίο το πληκτρολόγιο θα παραβλέπει τα επαναλαμβανόμενα πατήματα πλήκτρων"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 δ."</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 δ."</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 δ."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 δ."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 δ."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 δ."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Προσαρμοσμένη"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"προσαρμοσμένη τιμή"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Αργά πλήκτρα"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Προσαρμόζει τον χρόνο που απαιτείται για την ενεργοποίηση ενός πατήματος πλήκτρου"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Ασύγχρονα πλήκτρα"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Για τις συντομεύσεις, αντί να πατάτε παρατεταμένα όλα τα κουμπιά μαζί, φροντίστε να πατάτε ένα πλήκτρο κάθε φορά"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Πλήκτρα ποντικιού"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Χρησιμοποιήστε το πληκτρολόγιο, για να ελέγξετε τον δείκτη"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Αντίστροφη κύλιση με το ποντίκι"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Κάντε κύλιση προς τα επάνω, για να μετακινήσετε τη σελίδα προς τα κάτω."</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Εναλλαγή αριστερού και δεξιού κουμπιού"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Χρησιμοποιήστε το αριστερό κουμπί του ποντικιού ως δεξί κουμπί"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Συντομεύσεις πληκτρολογίου"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Εμφάνιση λίστας συντομεύσεων"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Πληκτρολόγιο και εργαλεία προφίλ εργασίας"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Επιλέξτε ένα νέο κλειδί για <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Προσβασιμότητα φυσικού πληκτρολογίου"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Ασύγχρονα πλήκτρα, Ελαστικά πλήκτρα, Πλήκτρα ποντικιού"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Επανάληψη πλήκτρων"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Καθυστέρηση πριν από την επανάληψη"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Ρυθμός επανάληψης"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Κρατήστε πατημένο ένα πλήκτρο, για επανάληψη του χαρακτήρα του μέχρι να αφήσετε το πλήκτρο"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Διάταξη <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Προεπιλογή"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Αυτόματο: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Προεπισκόπηση"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Βασικές επιλογές"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Γλώσσα"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Μέγεθος υπότιτλων"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Στιλ υποτίτλων"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Προσαρμοσμένες επιλογές"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Χρώμα φόντου"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Να αποσυνδεθεί αυτό το VPN;"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Αποσύνδεση"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Έκδοση"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Έκδοση <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Διαγραφή VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Αντικατάσταση υπάρχοντος VPN;"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Ενεργοποίηση του μονίμως ενεργού VPN;"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Μόνο στη συσκευή"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Οι νέες επαφές δεν θα συγχρονίζονται με κάποιον λογαριασμό"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Οι επαφές θα αποθηκεύονται στη συσκευή σας και θα συγχρονίζονται με τον λογαριασμό σας από προεπιλογή"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Δεν ορίστηκε προεπιλογή"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Για να ξεκινήσετε, προσθέστε λογαριασμό"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Κυκλώστε για αναζήτηση"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Πατήστε παρατεταμένα το κουμπί αρχικής οθόνης ή τη λαβή πλοήγησης, για να κάνετε αναζήτηση χρησιμοποιώντας το περιεχόμενο στην οθόνη σας."</string>
 </resources>
diff --git a/res/values-en-rAU/arrays.xml b/res/values-en-rAU/arrays.xml
index 53465e7..9cb3e27 100644
--- a/res/values-en-rAU/arrays.xml
+++ b/res/values-en-rAU/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snowflake"</item>
     <item msgid="7952183800501346803">"Beach umbrella"</item>
     <item msgid="799139025758265891">"Workshop tools"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Film reel"</item>
     <item msgid="5827426100157335512">"Book"</item>
     <item msgid="8585828346253128384">"Lotus flower"</item>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index ef44048..6744e6f 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Set automatically using your network and wireless signals"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatic time zone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Set automatically based on mobile networks near you"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Set automatically using your device location, if available. An active Wi-Fi connection may also be required."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Set automatically using your device location, if available"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Use locale default"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Use 24-hour format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Time"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"The keyboard ignores quickly repeated presses of the same key"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Bounce key threshold"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choose the duration of time that your keyboard ignores repeated key presses"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Custom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"custom value"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Adjusts the time that it takes for a key press to activate"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Use your keyboard to control the pointer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mouse reverse scrolling"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll up to move the page down"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Swap left and right buttons"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use the left mouse button as your right"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choose a new key for <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Physical keyboard accessibility"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Sticky keys, bounce keys, mouse keys"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repeat keys"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Delay before repeat"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Repeat rate"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold down a key to repeat its character until the key is released"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> layout"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatic: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Preview"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standard options"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Language"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Caption size"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Caption style"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Customisation options"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Background colour"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Disconnect this VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Disconnect"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Forget VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Replace existing VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Set always-on VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, storage, account"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Contacts storage"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Device only"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"New contacts won\'t be synced with an account"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Contacts will be saved to your device and synced to your account by default"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"No default set"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Add an account to get started"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Touch and hold the home button or the navigation handle to search using the content on your screen."</string>
 </resources>
diff --git a/res/values-en-rCA/arrays.xml b/res/values-en-rCA/arrays.xml
index 4682432..19cf1b9 100644
--- a/res/values-en-rCA/arrays.xml
+++ b/res/values-en-rCA/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snowflake"</item>
     <item msgid="7952183800501346803">"Beach umbrella"</item>
     <item msgid="799139025758265891">"Workshop tools"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Film reel"</item>
     <item msgid="5827426100157335512">"Book"</item>
     <item msgid="8585828346253128384">"Lotus flower"</item>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index a1ab150..6ae36b2 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Set automatically using your network and wireless signals"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatic time zone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Set automatically based on mobile networks near you"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Set automatically using your device location, if available. An active Wifi connection may also be required."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Set automatically using your device location, if available"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Use locale default"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Use 24-hour format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Time"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"The keyboard ignores quickly repeated presses of the same key"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Bounce key threshold"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choose the duration of time your keyboard ignores repeated key presses"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Custom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"custom value"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Adjusts the time it takes for a key press to activate"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Use your keyboard to control the pointer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mouse reverse scrolling"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll up to move the page down"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Swap left and right buttons"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use the left mouse button as your right"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -2026,8 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choose a new key for <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Physical keyboard accessibility"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Sticky keys, Bounce keys, Mouse keys"</string>
-    <string name="keyboard_repeat_key_title" msgid="3641350808120194549">"Repeat Keys"</string>
-    <string name="keyboard_repeat_key_summary" msgid="3970350989341158854">"Hold down a key to repeat its character until the key is released"</string>
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repeat Keys"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Delay before repeat"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Repeat Rate"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold down a key to repeat its character until the key is released"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> layout"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatic: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2976,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Disconnect this VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Disconnect"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Forget VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Replace existing VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Set always-on VPN?"</string>
@@ -5454,6 +5463,10 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Device only"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"New contacts won\'t be synced with an account"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Contacts will be saved to your device and synced to your account by default"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"No default set"</string>
+    <string name="contacts_storage_set_default_account_error_message" msgid="849847649756411393">"Error setting the default account"</string>
+    <string name="contacts_storage_no_account_set_summary" msgid="7454973781666475276">"No default set"</string>
+    <string name="contacts_storage_local_account_summary" msgid="5034805108128685712">"Device only"</string>
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Add an account to get started"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Touch and hold the Home button or the navigation handle to search using the content on your screen."</string>
 </resources>
diff --git a/res/values-en-rGB/arrays.xml b/res/values-en-rGB/arrays.xml
index 53465e7..9cb3e27 100644
--- a/res/values-en-rGB/arrays.xml
+++ b/res/values-en-rGB/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snowflake"</item>
     <item msgid="7952183800501346803">"Beach umbrella"</item>
     <item msgid="799139025758265891">"Workshop tools"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Film reel"</item>
     <item msgid="5827426100157335512">"Book"</item>
     <item msgid="8585828346253128384">"Lotus flower"</item>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 0f428c2..b146c48 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Set automatically using your network and wireless signals"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatic time zone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Set automatically based on mobile networks near you"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Set automatically using your device location, if available. An active Wi-Fi connection may also be required."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Set automatically using your device location, if available"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Use locale default"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Use 24-hour format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Time"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"The keyboard ignores quickly repeated presses of the same key"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Bounce key threshold"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choose the duration of time that your keyboard ignores repeated key presses"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Custom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"custom value"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Adjusts the time that it takes for a key press to activate"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Use your keyboard to control the pointer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mouse reverse scrolling"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll up to move the page down"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Swap left and right buttons"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use the left mouse button as your right"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choose a new key for <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Physical keyboard accessibility"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Sticky keys, bounce keys, mouse keys"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repeat keys"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Delay before repeat"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Repeat rate"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold down a key to repeat its character until the key is released"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> layout"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatic: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Preview"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standard options"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Language"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Caption size"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Caption style"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Customisation options"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Background colour"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Disconnect this VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Disconnect"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Forget VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Replace existing VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Set always-on VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, storage, account"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Contacts storage"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Device only"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"New contacts won\'t be synced with an account"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Contacts will be saved to your device and synced to your account by default"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"No default set"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Add an account to get started"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Touch and hold the home button or the navigation handle to search using the content on your screen."</string>
 </resources>
diff --git a/res/values-en-rIN/arrays.xml b/res/values-en-rIN/arrays.xml
index 53465e7..9cb3e27 100644
--- a/res/values-en-rIN/arrays.xml
+++ b/res/values-en-rIN/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snowflake"</item>
     <item msgid="7952183800501346803">"Beach umbrella"</item>
     <item msgid="799139025758265891">"Workshop tools"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Film reel"</item>
     <item msgid="5827426100157335512">"Book"</item>
     <item msgid="8585828346253128384">"Lotus flower"</item>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 606547b..99b995c 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Set automatically using your network and wireless signals"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatic time zone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Set automatically based on mobile networks near you"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Set automatically using your device location, if available. An active Wi-Fi connection may also be required."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Set automatically using your device location, if available"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Use locale default"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Use 24-hour format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Time"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibility"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Physical keyboard"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Bounce keys"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"The keyboard ignores quickly repeated presses of the same key"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Bounce key threshold"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choose the duration of time that your keyboard ignores repeated key presses"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Custom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"custom value"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Slow keys"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Adjusts the time that it takes for a key press to activate"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Sticky keys"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Press one key at a time for shortcuts instead of holding keys down together"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Mouse keys"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Use your keyboard to control the pointer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Mouse reverse scrolling"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll up to move the page down"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Swap left and right buttons"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use the left mouse button as your right"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Keyboard shortcuts"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Show list of shortcuts"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Work profile keyboards &amp; tools"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choose a new key for <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Physical keyboard accessibility"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Sticky keys, bounce keys, mouse keys"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repeat keys"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Delay before repeat"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Repeat rate"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold down a key to repeat its character until the key is released"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> layout"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatic: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Preview"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standard options"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Language"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Caption size"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Caption style"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Customisation options"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Background colour"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Disconnect this VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Disconnect"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Forget VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Replace existing VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Set always-on VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Search settings"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, storage, account"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Contacts storage"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Device only"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"New contacts won\'t be synced with an account"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Contacts will be saved to your device and synced to your account by default"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"No default set"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Add an account to get started"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Touch and hold the home button or the navigation handle to search using the content on your screen."</string>
 </resources>
diff --git a/res/values-es-rUS/arrays.xml b/res/values-es-rUS/arrays.xml
index 607d9d7..a19ff4b 100644
--- a/res/values-es-rUS/arrays.xml
+++ b/res/values-es-rUS/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Copo de nieve"</item>
     <item msgid="7952183800501346803">"Sombrilla"</item>
     <item msgid="799139025758265891">"Herramientas de taller"</item>
-    <item msgid="1330084588359129896">"Tienda"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rollo de película"</item>
     <item msgid="5827426100157335512">"Libro"</item>
     <item msgid="8585828346253128384">"Flor de loto"</item>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index ce0820e..3e3e59d 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -132,7 +132,7 @@
     <string name="connected_device_add_device_summary" msgid="8671009879957120802">"Se activará el Bluetooth para vincular"</string>
     <string name="connected_device_connections_title" msgid="4164120115341579170">"Preferencias de conexión"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="8823331744788100605">"Conectados anteriormente"</string>
-    <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Se activó el Bluetooth"</string>
+    <string name="connected_device_bluetooth_turned_on_toast" msgid="144664089794199928">"Bluetooth activado"</string>
     <string name="previous_connected_see_all" msgid="7759413145713251328">"Ver todos"</string>
     <string name="connected_device_fast_pair_device_see_all" msgid="4898279230458128620">"Ver todos"</string>
     <string name="stylus_device_details_title" msgid="7618295136015480864">"Pluma stylus"</string>
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Se establecen automáticamente con la red y las señales inalámbricas"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zona horaria automática"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Configurar automáticamente según las redes móviles cercanas"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Se establecen automáticamente con la ubicación del dispositivo (si está disponible). Se podría necesitar una conexión Wi-Fi activa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Se establecen automáticamente con la ubicación del dispositivo (si está disponible)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar configuración regional predeterminada"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Hora"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Establece patrón para espacio privado"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Bloqueo"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Ocultar"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Confirma el patrón de tu espacio privado"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Vuelve a ingresar el PIN de tu espacio privado"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Vuelve a ingresar la contraseña de tu espacio privado"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes agregar hasta <xliff:g id="COUNT">%d</xliff:g> huellas dactilares"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Agregaste la cantidad máxima permitida de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden agregar más huellas digitales"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Revisa la contraseña y vuelve a intentarlo"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Comunícate con el fabricante del dispositivo"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Comprueba la conexión y vuelve a intentarlo"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Esta red Wi-Fi no está disponible en este momento"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Hay un problema con este código QR. Intenta conectarte de otra forma."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Elegir una red"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Selecciona una red para conectar tu dispositivo"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"¿Agregar este dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\"?"</string>
@@ -1954,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"El teclado ignora las presiones repetidas con rapidez de la misma tecla"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Umbral de rechazo de teclas"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Elige el intervalo de tiempo en el que el teclado ignora las presiones repetidas"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta el tiempo que lleva activar la presión de una tecla"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas especiales"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Presiona una tecla a la vez para hacer la combinación de teclas en lugar de presionarlas juntas"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas del mouse"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Usa el teclado para controlar el puntero"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Desplazamiento invertido del mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Desplázate hacia arriba para bajar la página"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Intercambiar los botones izquierdo y derecho"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Usa el botón izquierdo del mouse como el derecho"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de combinaciones de teclas"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados y herramientas del perfil de trabajo"</string>
@@ -2031,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Elige una nueva tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accesibilidad del teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas especiales, rechazo de teclas, teclas del mouse"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetición de teclas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Tiempo para repetición"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Frecuencia de repetición"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mantener presionada una tecla para repetir su carácter hasta que se suelte la tecla"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Diseño <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predeterminadas"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automático: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2222,7 +2223,7 @@
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"Entendido"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="13364319079385020">"Personalizar botón"</string>
     <string name="accessibility_tutorial_dialog_configure_software_shortcut_type" msgid="8041105223988170653">"Más opciones"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Combinación para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Atajo para <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="48978719406821294">"botón de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="7346399253904683940">"gesto de accesibilidad"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Deslizar dos dedos hacia arriba"</string>
@@ -2439,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Vista previa"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opciones estándar"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamaño de los subtítulos"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo de los subtítulos"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opciones personalizadas"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Color de fondo"</string>
@@ -2984,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"¿Deseas desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconectar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versión"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versión <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Borrar VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"¿Reemplazar VPN existente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"¿Configurar la VPN siempre activa?"</string>
@@ -3389,7 +3390,7 @@
     <string name="spatial_summary_on_one" msgid="6239933399496282994">"Sí (<xliff:g id="OUTPUT_DEVICE">%1$s</xliff:g>)"</string>
     <string name="spatial_summary_on_two" msgid="4526919818832483883">"Sí (<xliff:g id="OUTPUT_DEVICE_0">%1$s</xliff:g> y <xliff:g id="OUTPUT_DEVICE_1">%2$s</xliff:g>)"</string>
     <string name="spatial_audio_footer_title" msgid="8775010547623606088">"También puedes activar el audio espacial para dispositivos Bluetooth."</string>
-    <string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Parámetros de configuración de dispositivos conectados"</string>
+    <string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Configuración de dispositivos conectados"</string>
     <string name="spatial_audio_multi_toggle_title" msgid="6175786400035541273">"Audio espacial"</string>
     <string name="spatial_audio_multi_toggle_off" msgid="2086359413991193164">"Desactivado"</string>
     <string name="spatial_audio_multi_toggle_on" msgid="4204808183659033003">"Fijo"</string>
@@ -3916,8 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crea un modo"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nombre del modo"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"El nombre del modo no puede estar vacío"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Selecciona un ícono"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos de calendario"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina Hora de dormir"</string>
@@ -5041,9 +5041,9 @@
     <string name="lockscreen_privacy_wallet_summary" msgid="3984851951621168573">"Permite el acceso a la billetera desde la pantalla de bloqueo"</string>
     <string name="lockscreen_privacy_qr_code_scanner_setting_toggle" msgid="1856477548806618829">"Mostrar escáner de código QR"</string>
     <string name="lockscreen_privacy_qr_code_scanner_summary" msgid="4577409244972250235">"Permitir el acceso al escáner de código QR desde la pantalla de bloqueo"</string>
-    <string name="lockscreen_privacy_controls_setting_toggle" msgid="7445725343949588613">"Mostrar controles del dispositivo"</string>
+    <string name="lockscreen_privacy_controls_setting_toggle" msgid="7445725343949588613">"Mostrar controles de dispositivos"</string>
     <string name="lockscreen_privacy_controls_summary" msgid="7522918441738915364">"Desde la pantalla de bloqueo"</string>
-    <string name="lockscreen_trivial_controls_setting_toggle" msgid="2174300719855112358">"Usar controles del dispositivo"</string>
+    <string name="lockscreen_trivial_controls_setting_toggle" msgid="2174300719855112358">"Usar controles de dispositivos"</string>
     <string name="lockscreen_trivial_disabled_controls_summary" msgid="7593626010580689155">"Para usar, primero activa \"Mostrar controles del dispositivo\""</string>
     <string name="lockscreen_double_line_clock_summary" msgid="4109235686687860393">"El tamaño del reloj cambia según el contenido de la pantalla de bloqueo"</string>
     <string name="lockscreen_double_line_clock_setting_toggle" msgid="802271087416091548">"Reloj dinámico"</string>
@@ -5220,7 +5220,7 @@
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar más adelante"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Audio espacial"</string>
     <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_title" msgid="5416972521040337799">"Monitoreo 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_permissions_sync_title" msgid="7277580382321003521">"Sincronización de permisos desde el teléfono"</string>
     <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Otórgale al reloj los mismos permisos de la app de este teléfono"</string>
@@ -5463,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Solo en dispositivo"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Los contactos nuevos no se sincronizarán con una cuenta"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"De forma predeterminada, los contactos se guardarán en el dispositivo y se sincronizarán con tu cuenta"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"No hay cuenta predeterminada"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Agrega una cuenta para comenzar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Busca con un círculo"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Mantén presionado el botón de inicio o la barra de navegación para hacer búsquedas con el contenido de la pantalla."</string>
 </resources>
diff --git a/res/values-es/arrays.xml b/res/values-es/arrays.xml
index 2a48e62..83143e5 100644
--- a/res/values-es/arrays.xml
+++ b/res/values-es/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Copo de nieve"</item>
     <item msgid="7952183800501346803">"Sombrilla"</item>
     <item msgid="799139025758265891">"Herramientas del taller"</item>
-    <item msgid="1330084588359129896">"Tienda de campaña"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Carrete vintage"</item>
     <item msgid="5827426100157335512">"Libro"</item>
     <item msgid="8585828346253128384">"Flor de loto"</item>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index ff50016..8d53bfc 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Se establece automáticamente mediante tu red y señales inalámbricas"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zona horaria automática"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Se establece automáticamente según las redes móviles cercanas"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Se establece automáticamente usando la ubicación de tu dispositivo, si está disponible. También puede que se necesite una conexión Wi-Fi activa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Se establece automáticamente usando la ubicación de tu dispositivo, si está disponible"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar configuración regional predeterminada"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usar formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Hora"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Configura un patrón para espacio privado"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Bloquear"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Ocultar"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Confirma el patrón del espacio privado"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Vuelve a introducir el PIN del espacio privado"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Vuelve a introducir la contraseña del espacio privado"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puedes añadir hasta <xliff:g id="COUNT">%d</xliff:g> huellas digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Has añadido el número máximo de huellas digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"No se pueden añadir más huellas digitales"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Comprueba que la contraseña sea correcta y vuelve a intentarlo"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Ponte en contacto con el fabricante del dispositivo"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Comprueba la conexión y vuelve a intentarlo"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Esta red Wi-Fi no está disponible en este momento"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Hay un problema con este código QR. Prueba a conectarte de otra forma."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Elegir red"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Elige una red para conectar tu dispositivo"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"¿Añadir este dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\"?"</string>
@@ -1951,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidad"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"El teclado ignora las pulsaciones rápidas repetidas de la misma tecla"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Umbral de tecla de rebote"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Elige el tiempo que tu teclado ignora las pulsaciones repetidas de teclas"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta el tiempo que se tarda en activar una pulsación de tecla"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas persistentes"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Para las combinaciones de teclas, pulsa las teclas de una en una en lugar de mantenerlas pulsadas todas a la vez"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas para el ratón"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Usa el teclado para controlar el puntero"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Desplazamiento inverso del ratón"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Desplázate hacia arriba para mover la página hacia abajo"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Cambiar los botones izquierdo y derecho"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Usa el botón izquierdo del ratón como el derecho"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Combinaciones de teclas"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Muestra la lista de combinaciones de teclas"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Perfiles de trabajo y herramientas"</string>
@@ -2039,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Elige una nueva tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accesibilidad del teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas persistentes, teclas de rebote y teclas para el ratón"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Teclas de repetición"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Tiempo hasta la repetición"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Porcentaje de repetición"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mantén pulsada una tecla para repetir su carácter hasta que la sueltes"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Diseño <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predeterminado"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automático: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2216,7 +2209,7 @@
     <string name="accessibility_tutorial_dialog_title_gesture_settings" msgid="6800684770875867559">"Usar gesto de accesibilidad"</string>
     <string name="accessibility_tutorial_dialog_message_button" msgid="8977286776192770246">"En la parte inferior de la pantalla, toca el botón de accesibilidad <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> para usar esta función.\n\nPara cambiar de una función a otra, mantén pulsado ese botón."</string>
     <string name="accessibility_tutorial_dialog_message_floating_button" msgid="6631371483819355514">"Para usar esta función, toca el botón de accesibilidad de la pantalla"</string>
-    <string name="accessibility_tutorial_dialog_message_volume" msgid="3785791536286606664">"Para usar esta función, mantén pulsadas las dos teclas de volumen"</string>
+    <string name="accessibility_tutorial_dialog_message_volume" msgid="3785791536286606664">"Para usar esta función, mantén pulsadas las 2 teclas de volumen"</string>
     <string name="accessibility_tutorial_dialog_message_triple" msgid="5219991116201165146">"Para iniciar o detener la ampliación, toca tres veces en cualquier parte de la pantalla."</string>
     <string name="accessibility_tutorial_dialog_tripletap_instruction" msgid="7549293553589934">"Para iniciar o detener la ampliación, toca rápidamente la pantalla %1$d veces"</string>
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"Para iniciar o detener la ampliación, toca rápidamente la pantalla dos veces con %1$d dedos"</string>
@@ -2447,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Vista previa"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opciones estándar"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamaño de los subtítulos"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo de los subtítulos"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opciones personalizadas"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Color de fondo"</string>
@@ -2992,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"¿Desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconectar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versión"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versión <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Olvidar VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"¿Reemplazar VPN actual?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"¿Configurar el modo de VPN siempre activada?"</string>
@@ -3924,8 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crea un modo"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modo personalizado"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nombre del modo"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"El nombre del modo no puede estar vacío"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Selecciona un icono"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventos del calendario"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina Buenas noches"</string>
@@ -3946,7 +3938,7 @@
     <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"Bloquea las distracciones o interrupciones de tu dispositivo para concentrarte"</string>
     <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"Elimina todas las distracciones para un ambiente silencioso"</string>
     <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"Personaliza las experiencias y los ajustes del dispositivo para diferentes usuarios"</string>
-    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Reduce las interrupciones al permitir que solo se pongan en contacto contigo las personas y aplicaciones importantes"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"Reduce interrupciones al solo permitir que ciertas personas y aplicaciones importantes se pongan en contacto contigo."</string>
     <string name="zen_mode_inspiration_schedule_time" msgid="5596540503159096153">"Configura un modo que siga un horario regular"</string>
     <string name="zen_mode_inspiration_schedule_calendar" msgid="3678727180860212700">"Mantén tu dispositivo sincronizado con los eventos del día"</string>
     <string name="zen_mode_inspiration_bedtime" msgid="6294822414181670666">"Empieza el día con energía"</string>
@@ -5468,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Buscar ajustes"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contactos, almacenamiento, cuenta"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Almacenamiento de los contactos"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Solo en el dispositivo"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Los contactos nuevos no se sincronizarán con ninguna cuenta"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Los contactos se guardarán en tu dispositivo y se sincronizarán con tu cuenta de forma predeterminada"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ninguna cuenta predeterminada definida"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Añade una cuenta para empezar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Rodea para buscar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Mantén pulsado el botón de inicio o la barra de navegación para buscar usando el contenido de tu pantalla."</string>
 </resources>
diff --git a/res/values-et/arrays.xml b/res/values-et/arrays.xml
index 63bcbc6..f33792e 100644
--- a/res/values-et/arrays.xml
+++ b/res/values-et/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Lumehelves"</item>
     <item msgid="7952183800501346803">"Päikesevari"</item>
     <item msgid="799139025758265891">"Õpitoa tööriistad"</item>
-    <item msgid="1330084588359129896">"Telk"</item>
+    <item msgid="8112685757657659269">"Klaver"</item>
     <item msgid="3861584909935022342">"Filmilint"</item>
     <item msgid="5827426100157335512">"Raamat"</item>
     <item msgid="8585828346253128384">"Lootoseõis"</item>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index 3519af7..868a125 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Seadistage automaatselt oma võrgu ja juhtmeta ühenduse signaalide abil"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automaatne ajavöönd"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Seadistage automaatselt enda lähedal olevate mobiilivõrkude põhjal"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Seadistage automaatselt oma seadme asukoha põhjal (kui on saadaval). Vaja võib olla ka aktiivset WiFi-ühendust."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Seadistage automaatselt oma seadme asukoha põhjal (kui on saadaval)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Kasuta lokaadi vaikeseadet"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-tunnise vormingu kasutamine"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Kellaaeg"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Klaviatuur eirab kiiresti tehtud sama klahvi korduvaid vajutusi"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Põrkeklahvi lävi"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Valige kestus, kui kaua teie klaviatuur korduvaid klahvivajutusi eirab"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Kohandatud"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"kohandatud väärtus"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Aeglased klahvid"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Määrab klahvivajutuse aktiveerumiseks kuluva aja"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Nakkeklahvid"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Otseteede puhul klahvide korraga allhoidmise asemel vajutage klahve ükshaaval"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Hiireklahvid"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Kasutage kursori juhtimiseks klaviatuuri"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Hiirega tagurpidi kerimine"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Lehe allapoole liigutamiseks kerige üles"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Vasaku ja parema nupu vahetamine"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Kasutage hiire vasakut nuppu parema nupuna"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klaviatuuri otseteed"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kuva otseteede loend"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tööprofiili klaviatuurid ja tööriistad"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Valige muuteklahvi <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> jaoks uus klahv:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Füüsilise klaviatuuri juurdepääsetavus"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Nakkeklahvid, põrkeklahvid, hiireklahvid"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Korduvad klahvid"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Viivitus enne kordamist"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Kordusmäär"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hoidke klahvi all, et selle tähemärki kuni klahvi vabastamiseni korrata"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Paigutus: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Vaikeseade"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automaatne: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2223,7 +2229,7 @@
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Pühkige kahe sõrmega üles"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback" msgid="7422753388389160524">"Pühkige kolme sõrmega üles"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software" msgid="6505512764022389951">"Juurdepääsetavuse nupp"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Puudutage hõljuvat nuppu"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Puudutage hõljuvat nuppu."</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Juurdepääsetavuse liigutus"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Puudutage ekraani allservas juurdepääsetavuse nuppu <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g>. Funktsioonide vahetamiseks puudutage ja hoidke juurdepääsetavuse nuppu."</string>
     <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Tõmmake sõrmega ekraani allservast üles. Funktsioonide vahetamiseks tõmmake sõrmega üles ja hoidke sõrme ekraanil.}other{Tõmmake # sõrmega ekraani allservast üles. Funktsioonide vahetamiseks tõmmake # sõrmega üles ja hoidke sõrmi ekraanil.}}"</string>
@@ -2235,7 +2241,7 @@
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings" msgid="7006526933552889373">"Kiirseaded"</string>
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Helitugevuse klahvid"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"helitugevuse klahvid"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hoidke all mõlemat helitugevuse klahvi"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Hoidke all mõlemat helitugevuse klahvi."</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"%1$d sõrmega topeltpuudutus"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Puudutage ekraani %1$d sõrmega kiiresti kaks korda"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Kolmikpuudutus"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Eelvaade"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardvalikud"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Keel"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Subtiitrite suurus"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Subtiitri stiil"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Kohandatud valikud"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Tausta värv"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Kas soovite katkestada ühenduse selle VPN-iga?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Katkesta ühendus"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versioon"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versioon <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Unusta VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Kas asendada olemasolev VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Kas määrata alati sisselülitatud VPN?"</string>
@@ -5145,7 +5151,7 @@
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Juhtmevaba silumise kasutamine"</string>
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Graafikadraiveri eelistuste kasutamine"</string>
     <string name="night_light_main_switch_title" msgid="3428298022467805219">"Kasuta öövalgust"</string>
-    <string name="nfc_main_switch_title" msgid="6295839988954817432">"NFC kasutamine"</string>
+    <string name="nfc_main_switch_title" msgid="6295839988954817432">"Kasuta NFC-d"</string>
     <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Kasuta kohanduvat eredust"</string>
     <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"WiFi-kõnede kasutamine"</string>
     <string name="default_see_all_apps_title" msgid="7481113230662612178">"Kuva kõik rakendused"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Ainult seade"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Uusi kontakte ei sünkroonita kontoga"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontaktid salvestatakse teie seadmesse ja sünkroonitakse vaikimisi teie kontoga"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ühtegi vaikekontot pole määratud"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Lisage alustamiseks konto"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Ring otsimiseks"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Puudutage pikalt avakuva nuppu või navigeerimispidet, et otsida ekraanil oleva sisu järgi."</string>
 </resources>
diff --git a/res/values-eu/arrays.xml b/res/values-eu/arrays.xml
index 4ff40ac..6ff3f1b 100644
--- a/res/values-eu/arrays.xml
+++ b/res/values-eu/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Elur-maluta"</item>
     <item msgid="7952183800501346803">"Eguzkitakoa"</item>
     <item msgid="799139025758265891">"Lantegiko tresnak"</item>
-    <item msgid="1330084588359129896">"Kanpin-denda"</item>
+    <item msgid="8112685757657659269">"Pianoa"</item>
     <item msgid="3861584909935022342">"Film-bobina"</item>
     <item msgid="5827426100157335512">"Liburua"</item>
     <item msgid="8585828346253128384">"Loto-lorea"</item>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 764255f..5d5e583 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Ezarri automatikoki sarea eta hari gabeko seinaleak erabilita"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Ordu-zona automatikoa"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Ezarri automatikoki inguruko sare mugikorretan oinarrituta"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Ezarri automatikoki gailuaren kokapena erabilita, halakorik badago. Baliteke wifi-konexio aktibo bat ere behar izatea."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Ezarri automatikoki gailuaren kokapena erabilita, halakorik badago"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Erabili lurraldeko ezarpen lehenetsiak"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Erabili 24 orduko formatua"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ordua"</string>
@@ -414,11 +414,11 @@
     <string name="security_settings_fingerprint_single_face_watch_preference_summary" msgid="764951912234638192">"Gehitu dira aurpegia, hatz-marka eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
     <string name="security_settings_fingerprint_multiple_face_watch_preference_summary" msgid="3935500711366489380">"Gehitu dira aurpegia, hatz-markak eta <xliff:g id="WATCH">%s</xliff:g> erlojua"</string>
     <string name="mandatory_biometrics_prompt_description" msgid="6790144699440050735">"Identitate-egiaztapena aktibatuta dago eta sistema biometriko bat behar du"</string>
-    <string name="go_to_settings" msgid="4394928396153474179">"Joan ezarpenetara"</string>
+    <string name="go_to_settings" msgid="4394928396153474179">"Joan Ezarpenak atalera"</string>
     <string name="identity_check_lockout_error_title" msgid="7486409651908283892">"Identitate-egiaztapena aktibatuta dago eta ezin du egiaztatu zu zarenik"</string>
     <string name="identity_check_lockout_error_description_1" msgid="4882147327291296884">"Sistema biometrikoak gehiegitan huts egin du. Berriro saiatzeko, blokeatu eta desblokeatu gailua berriro."</string>
     <string name="identity_check_lockout_error_two_factor_auth_description_1" msgid="8369894114882274736">"Sistema biometrikoak gehiegitan huts egin du. Saiatu berriro."</string>
-    <string name="identity_check_lockout_error_description_2" msgid="5512321457771307067">"Identitate-egiaztapena lapurreten aurkako babesaren ezarpenetan kudea dezakezu. Joan ezarpenetara"</string>
+    <string name="identity_check_lockout_error_description_2" msgid="5512321457771307067">"Identitate-egiaztapena lapurreten aurkako babesaren ezarpenetan kudea dezakezu. Joan Ezarpenak atalera"</string>
     <string name="identity_check_general_error_title" msgid="5073929400896102674">"Aurrera egiteko, sistema biometriko bat behar da"</string>
     <string name="identity_check_general_error_description_1" msgid="5260846996256699095">"Identitate-egiaztapena aktibatuta dago eta sistema biometriko bat behar du, baina aurpegiaren edo hatz-marken sentsorea ez dago erabilgarri.\n"<ul><li>"Egiaztatu kamera aktibatuta dagoela eta saiatu berriro."</li>\n<li>"Identitate-egiaztapena desaktibatzeko, joan Google Kontua atalera."</li></ul></string>
     <string name="identity_check_biometric_error_cancel" msgid="3353689146211669291">"Utzi"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erabilerraztasuna"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teklatu fisikoa"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Errebote-teklak"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Teklatuak ez ikusi egiten du tekla bera behin eta berriro bizkor sakatzen bada"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Tekla-sakatze errepikatuen atalasea"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Aukeratu zer iraupenarekin egiten duen teklatuak ez ikusi tekla bera behin eta berriro sakatzen bada"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Pertsonalizatua"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"balio pertsonalizatua"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tekla motelak"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Tekla bat sakatzean aktibatzeko behar den denbora doitzen du"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Tekla itsaskorrak"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Lasterbideetan, sakatu teklak banan-banan, guztiak aldi berean sakatu ordez"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Saguaren teklak"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Erabili teklatua erakuslea kontrolatzeko"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Saguarekin gora eta behera alderantziz egiteko aukera"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Egin gora orria beherantz mugitzeko"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Aldatu ezkerreko eta eskuineko botoiak"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Erabili saguaren ezkerreko botoia eskuinekoa balitz bezala"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Lasterbideak"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Erakutsi lasterbideen zerrenda"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Laneko profilaren teklatuak eta tresnak"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Aukeratu <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> teklarako beste tekla bat:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Teklatu fisikoaren erabilerraztasuna"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Tekla itsaskorrak, errebote-teklak, saguaren teklak"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Errepikatutako teklak"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Errepikatu aurreko tartea"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Errepikapen-abiadura"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Eduki sakatuta tekla bat, eta askatu arte errepikatuko da haren karakterea"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> teklatuaren diseinua"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Lehenetsia"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatikoa: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Aurreikusi"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Aukera estandarrak"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Hizkuntza"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Azpitituluen tamaina"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Azpitituluen estiloa"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Aukera pertsonalizatuak"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Atzeko planoaren kolorea"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"VPN saretik deskonektatu nahi duzu?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Deskonektatu"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Bertsioa"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> bertsioa"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Ahaztu VPN konexioa"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Dagoen VPN konexioa ordeztu nahi duzu?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"VPNa beti aktibatuta egoteko aukera ezarri nahi duzu?"</string>
@@ -3100,7 +3098,7 @@
     <string name="emergency_info_summary" msgid="8463622253016757697">"Datuak eta kontaktuak (<xliff:g id="USER_NAME">%1$s</xliff:g>)"</string>
     <string name="open_app_button" msgid="5025229765547191710">"Ireki <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="application_restrictions" msgid="276179173572729205">"Baimendu aplikazioak eta edukia"</string>
-    <string name="apps_with_restrictions_header" msgid="5277698582872267931">"Murrizketak dituzten aplikazioak"</string>
+    <string name="apps_with_restrictions_header" msgid="5277698582872267931">"Murriztapenak dituzten aplikazioak"</string>
     <string name="apps_with_restrictions_settings_button" msgid="2648355133416902221">"Zabaldu aplikazio-ezarpenak"</string>
     <string name="user_choose_copy_apps_to_another_user" msgid="5914037067347012870">"Aukeratu instalatu nahi dituzun aplikazioak"</string>
     <string name="user_copy_apps_menu_title" msgid="5354300105759670300">"Instalatu aplikazio erabilgarriak"</string>
@@ -3134,7 +3132,7 @@
     <string name="nfc_payment_btn_text_update" msgid="5159700960497443832">"Eguneratu"</string>
     <string name="nfc_work_text" msgid="2496515165821504077">"Lanekoak"</string>
     <string name="restriction_settings_title" msgid="4293731103465972557">"Murriztapenak"</string>
-    <string name="restriction_menu_reset" msgid="92859464456364092">"Kendu murrizketak"</string>
+    <string name="restriction_menu_reset" msgid="92859464456364092">"Kendu murriztapenak"</string>
     <string name="restriction_menu_change_pin" msgid="2505923323199003718">"Aldatu PINa"</string>
     <string name="help_label" msgid="2896538416436125883">"Laguntza eta iritziak"</string>
     <string name="user_account_title" msgid="6389636876210834864">"Edukia gordetzeko kontua"</string>
@@ -3175,7 +3173,7 @@
     <string name="work_sim_title" msgid="8999872928646924429">"Laneko SIM txartela"</string>
     <string name="user_restrictions_title" msgid="4068914244980335993">"Eduki eta aplikazioetarako sarbidea"</string>
     <string name="user_rename" msgid="8735940847878484249">"ALDATU IZENA"</string>
-    <string name="app_restrictions_custom_label" msgid="6949268049087435132">"Ezarri murrizketak aplikazioei"</string>
+    <string name="app_restrictions_custom_label" msgid="6949268049087435132">"Ezarri murriztapenak aplikazioei"</string>
     <string name="user_restrictions_controlled_by" msgid="2821526006742851624">"<xliff:g id="APP">%1$s</xliff:g> aplikazioak kontrolatua"</string>
     <string name="app_sees_restricted_accounts" msgid="3526008344222566318">"Aplikazioak zure kontuak atzi ditzake"</string>
     <string name="app_sees_restricted_accounts_and_controlled_by" msgid="8338520379923447143">"Aplikazio honek zure kontuak atzi ditzake. <xliff:g id="APP">%1$s</xliff:g> aplikazioak kontrolatua."</string>
@@ -3482,7 +3480,7 @@
     <string name="zen_mode_restrict_notifications_summary_muted" msgid="2826459087306271381">"Erakutsi jakinarazpenak"</string>
     <string name="zen_mode_restrict_notifications_summary_custom" msgid="6455811408721183198">"Jakinarazpenak partzialki ezkutatuta"</string>
     <string name="zen_mode_restrict_notifications_summary_hidden" msgid="2157279412167366119">"Ezkutatu jakinarazpenak"</string>
-    <string name="zen_mode_what_to_block_title" msgid="5692710098205334164">"Murrizketa pertsonalizatuak"</string>
+    <string name="zen_mode_what_to_block_title" msgid="5692710098205334164">"Murriztapen pertsonalizatuak"</string>
     <string name="zen_mode_block_effects_screen_on" msgid="8780668375194500987">"Pantaila piztuta dagoenean"</string>
     <string name="zen_mode_block_effects_screen_off" msgid="2291988790355612826">"Pantaila itzalita dagoenean"</string>
     <string name="zen_mode_block_effect_sound" msgid="7929909410442858327">"Desaktibatu soinua eta dardara"</string>
@@ -3919,7 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Sortu modu bat"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modu pertsonalizatua"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Moduaren izena"</string>
-    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Moduaren izenak ezin du hutsik egon"</string>
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Moduaren izena ezin da hutsik egon"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Aukeratu ikono bat"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Egutegiko gertaerak"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Lo egiteko garaiko ohitura"</string>
@@ -4124,7 +4122,7 @@
     <string name="assist_access_screenshot_summary" msgid="5276593070956201863">"Eman pantailako irudi bat erabiltzeko baimena laguntza-aplikazioari"</string>
     <string name="assist_flash_title" msgid="5449512572885550108">"Distirarazi pantaila"</string>
     <string name="assist_flash_summary" msgid="3032289860177784594">"Distirarazi pantailaren ertzak laguntza-aplikazioak pantailako edo pantaila-argazkiko testua erabiltzen duenean"</string>
-    <string name="assist_footer" msgid="8248015363806299068">"Laguntza-aplikazioek ikusten ari zaren pantailako informazioaren araberako laguntza eskain diezazukete. Zenbait aplikaziok abiarazlea eta ahots bidezko zerbitzuak onartzen dituzte laguntza integratua eskaintzeko."</string>
+    <string name="assist_footer" msgid="8248015363806299068">"Laguntza-aplikazioek ikusten ari zaren pantailako informazioaren araberako laguntza eskain diezazukete. Zenbait aplikaziok exekutatzeko tresna eta ahots bidezko zerbitzuak onartzen dituzte laguntza integratua eskaintzeko."</string>
     <string name="average_memory_use" msgid="717313706368825388">"Batez best. memoria-erabilera"</string>
     <string name="maximum_memory_use" msgid="2171779724001152933">"Gehieneko memoria-erabilera"</string>
     <string name="memory_usage" msgid="5594133403819880617">"Memoriaren erabilera"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Bilatu ezarpenetan"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktuak, biltegia, kontua"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontaktuen biltegia"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Gailua soilik"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Kontaktu berriak ez dira sinkronizatuko kontu batekin"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontaktuak gailuan gordeko dira, eta modu lehenetsian kontuarekin sinkronizatuko"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ez da ezarri kontu lehenetsirik"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Hasteko, gehitu kontu bat"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Inguratu bilatzeko"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Pantailako edukia erabilita bilaketa egiteko, eduki sakatuta orri nagusira joateko botoia edo nabigazioaren kontrol-puntua."</string>
 </resources>
diff --git a/res/values-fa/arrays.xml b/res/values-fa/arrays.xml
index aa67b97..ac5cd80 100644
--- a/res/values-fa/arrays.xml
+++ b/res/values-fa/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"دانه برف"</item>
     <item msgid="7952183800501346803">"چتر ساحلی"</item>
     <item msgid="799139025758265891">"ابزارهای کارگاه"</item>
-    <item msgid="1330084588359129896">"چادر"</item>
+    <item msgid="8112685757657659269">"پیانو"</item>
     <item msgid="3861584909935022342">"حلقه فیلم"</item>
     <item msgid="5827426100157335512">"کتاب"</item>
     <item msgid="8585828346253128384">"گل نیلوفر آبی"</item>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index f39f13e..230dddb 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"به‌طور خودکار بااستفاده از سیگنال‌های شبکه و بی‌سیم تنظیم می‌شود"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"منطقه زمانی خودکار"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"به‌طور خودکار براساس شبکه‌های تلفن همراه اطرافتان تنظیم می‌شود"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"‏به‌طور خودکار با مکان دستگاه (اگر دردسترس باشد) تنظیم می‌شود. شاید اتصال فعال Wi-Fi نیز لازم باشد."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"به‌طور خودکار با مکان دستگاه (اگر دردسترس باشد) تنظیم می‌شود"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"استفاده از پیش‌فرض منطقه زبانی"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"استفاده از قالب ۲۴ ساعته"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"زمان"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"دسترس‌پذیری"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"صفحه‌کلید فیزیکی"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"کلیدهای واگشت"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"صفحه‌کلید فشردن‌های تکراری و سریع یک کلید را نادیده می‌گیرد"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"آستانه کلیدهای ضدتکرار"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"مدت زمانی را که صفحه‌کلید شما فشردن‌های تکراری کلید را نادیده می‌گیرد انتخاب کنید"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"‫۰٫۲ ثانیه"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"‫۰٫۴ ثانیه"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"‫۰٫۶ ثانیه"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"سفارشی"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"مقدار سفارشی"</string>
     <string name="slow_keys" msgid="2891452895499690837">"کلیدهای آهسته"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"فاصله زمانی بین فشردن کلید و فعال‌سازی آن را تنظیم می‌کند"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"کلیدهای چسبان"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"به‌جای اینکه چند کلید را به‌طور هم‌زمان پایین نگه دارید، هربار یک کلید را برای میان‌برها فشار دهید"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"کلیدهای موشواره"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"استفاده از صفحه‌کلید برای کنترل کردن اشاره‌گر"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"پیمایش معکوس موشواره"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"برای رفتن به‌پایین صفحه، به‌بالا پیمایش کنید"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"جابه‌جا کردن دکمه‌های چپ و راست"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"استفاده از دکمه چپ موشواره به‌عنوان کلیک راست"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"میان‌برهای صفحه‌کلید"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"نمایش فهرست میان‌برها"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"نمایه کاری صفحه‌کلیدها و ابزارها"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"کلید جدیدی برای <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> انتخاب کنید:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"دسترس‌پذیری صفحه‌کلید فیزیکی"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"کلیدهای چسبان، کلیدهای کمانه‌ای، کلیدهای موشواره"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"تکرار کردن کلیدها"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"تأخیر پیش‌از تکرار"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"سرعت تکرار"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"با نگه داشتن کلید، نویسه آن تا زمانی‌که آن را رها نکنید تکرار می‌شود"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"چیدمان <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"پیش‌فرض"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"خودکار: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2216,7 +2214,7 @@
     <string name="accessibility_tutorial_dialog_tripletap_instruction" msgid="7549293553589934">"‏برای راه‌اندازی یا متوقف کردن درشت‌نمایی، سریع %1$d بار روی صفحه‌نمایش تک‌ضرب بزنید"</string>
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"‏برای راه‌اندازی یا متوقف کردن درشت‌نمایی، سریع با %1$d انگشت دوبار روی صفحه‌نمایش تک‌ضرب بزنید"</string>
     <string name="accessibility_tutorial_dialog_message_quick_setting" msgid="3715446725334547432">"{count,plural, =1{برای استفاده از این ویژگی، از بالای صفحه‌نمایش تند به‌پایین بکشید. سپس، کاشی {featureName} را پیدا کنید.}one{برای استفاده از این ویژگی، با # انگشت از بالای صفحه‌نمایش تند به‌پایین بکشید. سپس، کاشی {featureName} را پیدا کنید.}other{برای استفاده از این ویژگی، با # انگشت از بالای صفحه‌نمایش تند به‌پایین بکشید. سپس، کاشی {featureName} را پیدا کنید.}}"</string>
-    <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"این میان‌بر پس‌از تکمیل راه‌اندازی دستگاه دردسترس خواهد بود."</string>
+    <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"این میان‌بر پس‌از تمام کردن راه‌اندازی دستگاه دردسترس خواهد بود."</string>
     <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"برای استفاده از این ویژگی، با ۲ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۲ انگشت تند به‌بالا بکشید و نگه دارید."</string>
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction" msgid="7349950768250852308">"{count,plural, =1{برای استفاده از این ویژگی، از پایین صفحه‌نمایش تند به‌بالا بکشید}one{برای استفاده از این ویژگی، با # انگشت از پایین صفحه‌نمایش تند به‌بالا بکشید}other{برای استفاده از این ویژگی، با # انگشت از پایین صفحه‌نمایش تند به‌بالا بکشید}}"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"برای استفاده از این ویژگی، با ۳ انگشت از پایین صفحه تند به‌بالا بکشید.\n\nبرای جابه‌جایی بین ویژگی‌ها، با ۳ انگشت تند به‌بالا بکشید و نگه دارید."</string>
@@ -2239,7 +2237,7 @@
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"درباره <xliff:g id="SERVICE">%1$s</xliff:g> بیشتر بدانید"</string>
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings" msgid="140959604014177304">"تنظیمات فوری"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_quick_settings" msgid="739883998754165940">"{count,plural, =1{از بالای صفحه‌نمایش تند به‌پایین بکشید}one{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید}other{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید}}"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_quick_settings_suw" msgid="4216628328191609785">"{count,plural, =1{از بالای صفحه‌نمایش تند به‌پایین بکشید. این میان‌بر پس‌از تکمیل راه‌اندازی دستگاه دردسترس خواهد بود.}one{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید. این میان‌بر پس‌از تکمیل راه‌اندازی دستگاه دردسترس خواهد بود.}other{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید. این میان‌بر پس‌از تکمیل راه‌اندازی دستگاه دردسترس خواهد بود.}}"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_quick_settings_suw" msgid="4216628328191609785">"{count,plural, =1{از بالای صفحه‌نمایش تند به‌پایین بکشید. این میان‌بر پس‌از تمام کردن راه‌اندازی دستگاه دردسترس خواهد بود.}one{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید. این میان‌بر پس‌از تمام کردن راه‌اندازی دستگاه دردسترس خواهد بود.}other{از بالای صفحه‌نمایش با # انگشت تند به‌پایین بکشید. این میان‌بر پس‌از تمام کردن راه‌اندازی دستگاه دردسترس خواهد بود.}}"</string>
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings" msgid="7006526933552889373">"تنظیمات فوری"</string>
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"کلیدهای میزان صدا"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"کلیدهای میزان صدا"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"پیش‌نمایش"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"گزینه‌های استاندارد"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"زبان"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"اندازه زیرنویس ناشنوایان"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"سبک زیرنویس"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"گزینه‌های سفارشی"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"رنگ پس‌زمینه"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"‏اتصال به این VPN.قطع‌ شود؟"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"قطع ارتباط"</string>
     <string name="vpn_version" msgid="6344167191984400976">"نسخه"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"نسخه <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"‏فراموش کردن VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"‏VPN موجود جایگزین شود؟"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"‏VPN همیشه روشن تنظیم شود؟"</string>
@@ -3701,7 +3699,7 @@
     <string name="notif_type_silent" msgid="6273951794420331010">"بی‌صدا"</string>
     <string name="notif_type_silent_summary" msgid="7820923063105060844">"اعلان‌هایی که همیشه بی‌صدا هستند و نمی‌لرزند"</string>
     <string name="notification_listener_allowed" msgid="5536962633536318551">"مجاز"</string>
-    <string name="notification_listener_not_allowed" msgid="3352962779597846538">"مجاز نبودن"</string>
+    <string name="notification_listener_not_allowed" msgid="3352962779597846538">"مجاز نیست"</string>
     <string name="notif_listener_excluded_app_title" msgid="6679316209330349730">"مشاهده همه برنامه‌ها"</string>
     <string name="notif_listener_excluded_app_summary" msgid="2914567678047195396">"تغییر دادن تنظیمات هر برنامه‌ای که اعلان ارسال می‌کند"</string>
     <string name="notif_listener_excluded_app_screen_title" msgid="8636196723227432994">"برنامه‌هایی که در دستگاه نشان داده می‌شوند"</string>
@@ -4403,7 +4401,7 @@
     <string name="dark_theme_slice_title" msgid="4684222119481114062">"زمینه تاریک را امتحان کنید"</string>
     <string name="dark_theme_slice_subtitle" msgid="5555724345330434268">"به افزایش عمر باتری کمک می‌کند"</string>
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"کاشی‌های برنامه‌نویسی تنظیمات سریع"</string>
-    <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏غیرفعال کردن درنگ مجوز adb"</string>
+    <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"‏غیرفعال کردن مهلت مجوز adb adb"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"‏فسخ خودکار مجوزهای ADB (پل اشکال‌زدایی Android) برای سیستم‌هایی که ظرف مدت زمان پیش‌فرض (۷ روز) یا پیکربندی‌شده توسط کاربر (حداقل ۱ روز) دوباره متصل نشده‌اند، غیرفعال شود."</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"حسگرها خاموش است"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"تنظیمات نمایه کاری"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"جستجو در «تنظیمات»"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"مخاطبین، فضای ذخیره‌سازی، حساب"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"فضای ذخیره‌سازی مخاطبین"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"فقط دستگاه"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"مخاطبین جدید با هیچ حسابی همگام‌سازی نمی‌شوند"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"مخاطبین به‌طور پیش‌فرض در دستگاه شما ذخیره می‌شوند و با حسابتان همگام‌سازی می‌شوند"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"حساب پیش‌فرضی تنظیم نشده است"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"برای شروع، حسابی اضافه کنید"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"حلقه جستجو"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"برای جستجو بااستفاده از محتوای روی صفحه، دکمه «صفحه اصلی» یا دستگیره پیمایش را لمس کنید و نگه دارید."</string>
 </resources>
diff --git a/res/values-fi/arrays.xml b/res/values-fi/arrays.xml
index 8cb72b4..d5f6b29 100644
--- a/res/values-fi/arrays.xml
+++ b/res/values-fi/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Lumihiutale"</item>
     <item msgid="7952183800501346803">"Rantavarjo"</item>
     <item msgid="799139025758265891">"Työkalut"</item>
-    <item msgid="1330084588359129896">"Teltta"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Vanha kotivideo"</item>
     <item msgid="5827426100157335512">"Kirja"</item>
     <item msgid="8585828346253128384">"Lootuskukka"</item>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index 6b40627..b01ba65 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Määritä automaattisesti verkon ja langattomien signaalien perusteella"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automaattinen aikavyöhyke"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Määritä automaattisesti lähellä olevien mobiiliverkkojen perusteella"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Määritä automaattisesti sijainnin perusteella, jos saatavilla. Voi vaatia aktiivista Wi-Fi-yhteyttä."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Määritä automaattisesti sijainnin perusteella, jos saatavilla"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Käytä paikallista oletusasetusta"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Käytä 24-tuntista kelloa"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Aika"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Saavutettavuus"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyysinen näppäimistö"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Toistuvien painallusten ohitus"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Näppäimistö ei huomioi nopeasti toistettuja saman näppäimen painalluksia"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Toistuvan painalluksen ohituskynnys"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Valitse, kuinka kauan näppäimistö ohittaa toistuvat painallukset"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Oma"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"oma arvo"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hitaat näppäimet"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Muuta aikaa, joka näppäimellä kuluu aktivoitumiseen painalluksen jälkeen"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Päälle jäävät näppäimet"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Käytä pikanäppäimiä painamalla yhtä näppäintä kerralla monen näppäimen sijaan"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Hiiren painikkeet"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Ohjaa osoitinta näppäimistöllä"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Hiiren käänteinen vieritys"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Siirry alaspäin sivulla vierittämällä ylöspäin"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Vaihda vasemman ja oikean painikkeen paikkaa"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Käytä hiiren vasenta painiketta oikeana"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pikanäppäimet"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Näytä pikanäppäimet"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Työprofiilin näppäimistöt ja työkalut"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Valitse uusi näppäin (<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>):"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fyysisen näppäimistön saavutettavuus"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Päälle jäävät näppäimet, toistuvien painallusten ohitus, hiiren painikkeet"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Toistettavat näppäimet"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Viive ennen toistoa"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Toistonopeus"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pidä näppäintä painettuna, niin sen merkki toistuu, kunnes näppäin vapautetaan"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Asettelu: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Oletus"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automaattinen: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Esikatselu"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Vakioasetukset"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Kieli"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tekstityksen koko"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Tekstityksen tyyli"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Omat asetukset"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Taustaväri"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Katkaistaanko VPN-yhteys?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Katkaise yhteys"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versio"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versio <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Unohda VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Korvataanko nykyinen VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Määritetäänkö aina käytössä oleva VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Hae asetuksista"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"yhteystiedot, tallennustila, tili"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Yhteystietojen säilytys"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Vain laite"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Uusia yhteystietoja ei synkronoida tilille"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Yhteystiedot tallennetaan laitteelle ja synkronoidaan tilillesi oletuksena"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Oletusta ei ole asetettu."</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Aloita lisäämällä tili"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Kosketa aloitusnäyttöpainiketta tai siirtymiskahvaa pitkään, jotta voit tehdä haun näytöllä olevasta sisällöstä."</string>
 </resources>
diff --git a/res/values-fr-rCA/arrays.xml b/res/values-fr-rCA/arrays.xml
index 12749a5..2993aa6 100644
--- a/res/values-fr-rCA/arrays.xml
+++ b/res/values-fr-rCA/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Flocon de neige"</item>
     <item msgid="7952183800501346803">"Parasol"</item>
     <item msgid="799139025758265891">"Outils d\'atelier"</item>
-    <item msgid="1330084588359129896">"Tente"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Pellicule de film"</item>
     <item msgid="5827426100157335512">"Livre"</item>
     <item msgid="8585828346253128384">"Fleur de lotus"</item>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index fc7fe09..fbb187094 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Configurez automatiquement ce paramètre à l\'aide de votre réseau et de vos signaux sans fil"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuseau horaire automatique"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Configurez ce paramètre automatiquement en fonction des réseaux cellulaires à proximité"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Configurez automatiquem. ce param. si localis. d\'appareil est dispo. Connex. Wi-Fi peut être nécess."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Configurez automatiquement ce paramètre si la localisation de l\'appareil est disponible"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Utiliser les paramètres régionaux par défaut"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Utiliser le format 24 h"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Heure"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Créer un schéma pour l\'Espace privé"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Verrouiller"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Masquer"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Confirmer le schéma de votre espace privé"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Entrer à nouveau le NIP de votre espace privé"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Entrer à nouveau le mot de passe de l\'espace privé"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter des empreintes digitales"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Vérifiez votre mot de passe, puis réessayez"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Communiquez avec le fabricant de l\'appareil"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Vérifiez votre connexion et réessayez"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Ce réseau Wi-Fi n\'est pas accessible pour le moment"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Il y a un problème avec ce code QR. Essayez de vous connecter d\'une autre manière."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Choisir un réseau"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Pour connecter votre appareil, choisissez un réseau"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"Ajouter cet appareil au réseau « <xliff:g id="SSID">%1$s</xliff:g> »?"</string>
@@ -1340,7 +1335,7 @@
     <string name="lift_to_wake_title" msgid="8994218158737714046">"Soulever pour activer"</string>
     <string name="ambient_display_screen_title" msgid="8615947016991429325">"Affichage en mode Veille"</string>
     <string name="ambient_display_category_triggers" msgid="1216640141609270011">"Activation du mode Veille"</string>
-    <string name="doze_title" msgid="1523090408230862316">"Réactiv. écran pour notifications"</string>
+    <string name="doze_title" msgid="1523090408230862316">"Activer écran si notifications"</string>
     <string name="doze_summary" msgid="8252867381522942804">"Lorsque l\'écran est sombre, il s\'allume en cas de nouvelles notifications"</string>
     <string name="doze_always_on_title" msgid="7326245192352868477">"Toujours affich. heure et données"</string>
     <string name="doze_always_on_summary" msgid="509097829739647852">"Utilisation accrue de la pile"</string>
@@ -1951,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Touches non répétées"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Le clavier ignore les appuis répétés rapidement sur la même touche"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Seuil de la touche non répétée"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choisissez la durée pendant laquelle votre clavier ignore les appuis répétés sur une touche"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personnalisée"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valeur personnalisée"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Règle le temps nécessaire pour qu\'un appui sur une touche soit activé"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Touches rémanentes"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Appuyer sur une clé à la fois pour activer les raccourcis plutôt que de maintenir plusieurs touches enfoncées en même temps"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Touches de la souris"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Utiliser votre clavier pour contrôler le pointeur"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Défilement inversé de la souris"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Faites défiler l\'écran vers le haut pour déplacer la page vers le bas"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Inverser les boutons gauche et droit"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Utilisez le bouton gauche de la souris comme bouton droit"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste de raccourcis"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils pour le profil professionnel"</string>
@@ -2039,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choisir une nouvelle touche pour <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> :"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accessibilité du clavier physique"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Touches rémanentes, touches non répétées, touches de la souris"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Touches de répétition"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Délai avant la répétition"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Fréquence de répétition"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Maintenez une touche enfoncée pour répéter son caractère jusqu\'à ce que la touche soit relâchée"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Mise en page <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Par défaut"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatique : <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2248,7 +2241,7 @@
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings" msgid="7006526933552889373">"Paramètres rapides"</string>
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"Touches de volume"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"touches de volume"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Maintenez enfoncées les deux touches de volume"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"Maintenez les deux touches de volume enfoncées"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"Toucher deux fois avec %1$d doigts"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"Touchez rapidement l\'écran deux fois avec %1$d doigts"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"Toucher trois fois"</string>
@@ -2447,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Aperçu"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Options standards"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Langue"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Taille des sous-titres"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Style de sous-titres"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Options de personnalisation"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Couleur de l\'arrière-plan"</string>
@@ -2992,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Déconnecter ce RPV?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Déconnecter"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Oublier le profil RPV"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Remplacer le RPV existant?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Définir le RPV permanent?"</string>
@@ -3405,7 +3398,7 @@
     <string name="zen_mode_settings_schedules_summary" msgid="2047688589286811617">"{count,plural, =0{Aucun}=1{1 horaire programmé}one{# horaire programmé}other{# horaires programmés}}"</string>
     <string name="zen_mode_settings_title" msgid="682676757791334259">"Ne pas déranger"</string>
     <string name="zen_modes_list_title" msgid="4796033710444068729">"Modes"</string>
-    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Réduisez les distractions et prenez le contrôle de votre attention à l\'aide des modes pour le sommeil, le travail, la conduite et tout ce qu\'il y a entre les deux."</string>
+    <string name="zen_modes_list_intro" msgid="1795379595115088972">"Réduisez les distractions et prenez le contrôle de votre attention à l\'aide des modes pour le sommeil, le travail, la conduite et tout le reste."</string>
     <string name="zen_modes_add_mode" msgid="5926457160307593664">"Créer votre propre mode"</string>
     <string name="zen_mode_settings_summary" msgid="6040862775514495191">"Recevez uniquement les notifications des personnes et des applis importantes"</string>
     <string name="zen_mode_select_schedule" msgid="663163931596092952">"Définir un horaire"</string>
@@ -3857,10 +3850,10 @@
     <string name="zen_mode_alarms" msgid="5989343060100771099">"Alarmes"</string>
     <string name="zen_mode_alarms_summary" msgid="3388679177457223967">"Des minuteries, des alarmes, des systèmes de sécurité et d\'autres applis"</string>
     <string name="zen_mode_alarms_list" msgid="334782233067365405">"alarmes"</string>
-    <string name="zen_mode_alarms_list_first" msgid="2780418316613576610">"Alarmes"</string>
+    <string name="zen_mode_alarms_list_first" msgid="2780418316613576610">"Les alarmes"</string>
     <string name="zen_mode_media" msgid="885017672250984735">"Sons des éléments multimédias"</string>
     <string name="zen_mode_media_summary" msgid="7174081803853351461">"Sons des vidéos, des jeux et d\'autres éléments multimédias"</string>
-    <string name="zen_mode_media_list" msgid="2006413476596092020">"média"</string>
+    <string name="zen_mode_media_list" msgid="2006413476596092020">"le contenu multimédia"</string>
     <string name="zen_mode_media_list_first" msgid="7824427062528618442">"Éléments multimédias"</string>
     <string name="zen_mode_system" msgid="7301665021634204942">"Sons des touches"</string>
     <string name="zen_mode_system_summary" msgid="7225581762792177522">"Sons du clavier et des autres boutons"</string>
@@ -3924,8 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Créer un mode"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personnalisé"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom du mode"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Le nom du mode est obligatoire"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Sélectionner une icône"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Événements d\'agenda"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Routine Heure du coucher"</string>
@@ -5051,7 +5043,7 @@
     <string name="lockscreen_privacy_qr_code_scanner_summary" msgid="4577409244972250235">"Autorisez l\'accès au lecteur de code QR à partir de l\'écran verrouillé"</string>
     <string name="lockscreen_privacy_controls_setting_toggle" msgid="7445725343949588613">"Afficher les commandes des appareils"</string>
     <string name="lockscreen_privacy_controls_summary" msgid="7522918441738915364">"À partir de l\'écran de verrouillage"</string>
-    <string name="lockscreen_trivial_controls_setting_toggle" msgid="2174300719855112358">"Utiliser les Commandes de l\'appareil"</string>
+    <string name="lockscreen_trivial_controls_setting_toggle" msgid="2174300719855112358">"Utiliser les commandes de l\'appareil"</string>
     <string name="lockscreen_trivial_disabled_controls_summary" msgid="7593626010580689155">"Pour les utiliser, activez d\'abord « Afficher les commandes de l\'appareil »"</string>
     <string name="lockscreen_double_line_clock_summary" msgid="4109235686687860393">"La taille de l\'horloge varie en fonction du contenu de l\'écran de verrouillage"</string>
     <string name="lockscreen_double_line_clock_setting_toggle" msgid="802271087416091548">"Horloge dynamique"</string>
@@ -5468,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Paramètres de recherche"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, stockage, compte"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Stockage des contacts"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Appareil uniquement"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Les nouveaux contacts ne seront pas synchronisés avec un compte"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Les contacts seront enregistrés sur votre appareil et synchronisés avec votre compte par défaut"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Aucun compte par défaut n\'a été défini"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Ajoutez un compte pour commencer"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Encercler et rechercher"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Maintenez le doigt sur la touche d\'accueil ou sur la barre de navigation pour effectuer une recherche à l\'aide du contenu de votre écran."</string>
 </resources>
diff --git a/res/values-fr/arrays.xml b/res/values-fr/arrays.xml
index 4a2e6e2..1059146 100644
--- a/res/values-fr/arrays.xml
+++ b/res/values-fr/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Flocon de neige"</item>
     <item msgid="7952183800501346803">"Parasol"</item>
     <item msgid="799139025758265891">"Outils d\'atelier"</item>
-    <item msgid="1330084588359129896">"Tente"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Bobine de film"</item>
     <item msgid="5827426100157335512">"Livre"</item>
     <item msgid="8585828346253128384">"Fleur de lotus"</item>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 848870a..7e0edd1 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -181,8 +181,8 @@
     <string name="desc_app_locale_disclaimer" msgid="5295933110644789052">"La langue peut différer de celles disponibles dans l\'appli. Certaines applis ne sont pas compatibles avec ce paramètre."</string>
     <string name="desc_app_locale_selection_supported" msgid="6744909281573556379">"Définissez la langue pour chaque appli."</string>
     <string name="desc_introduction_of_language_picker" msgid="4012265379885200083">"Votre appareil, les applis et les sites Web utilisent la première langue prise en charge de votre liste de langues préférées.\n\nDe nombreuses applis se baseront également sur la région de votre langue préférée pour mettre en forme les dates, les nombres et les unités. Pour modifier votre région, ajoutez une langue, puis sélectionnez votre région préférée."</string>
-    <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque appli, accédez aux paramètres de langue de cette appli."</string>
-    <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applis"</string>
+    <string name="desc_notice_of_language_picker" msgid="3449290526457925447">"Pour sélectionner une langue pour chaque application, accédez aux paramètres de langue de cette application."</string>
+    <string name="desc_locale_helper_footer_general" msgid="6112153921151780303">"En savoir plus sur les langues des applications"</string>
     <string name="title_change_system_locale" msgid="8589844586256566951">"Sélectionner %s comme langue du système ?"</string>
     <string name="title_system_locale_addition" msgid="8218683660751479466">"Ajouter %s aux langues préférées ?"</string>
     <string name="desc_system_locale_addition" msgid="3409917362651596070">"Cela permet aux applis et sites Web de savoir que vous préférez aussi cette langue."</string>
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Définir automatiquement à l\'aide de votre réseau et de vos signaux sans fil"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuseau horaire automatique"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Définir automatiquement en fonction des réseaux mobiles à proximité"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Définir automatiquement grâce à la position de votre appareil, si celle-ci est disponible. Une connexion Wi-Fi active peut aussi être requise."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Définir automatiquement grâce à la position de votre appareil, si celle-ci est disponible"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Utiliser les paramètres régionaux par défaut"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Utiliser le format 24h"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Heure"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Définissez un schéma pour l\'espace privé"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Verrouiller"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Masquer"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Confirmez le schéma de votre espace privé"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Saisissez à nouveau le code de votre espace privé"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Saisissez de nouveau le mot de passe de votre espace privé"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Vous pouvez ajouter jusqu\'à <xliff:g id="COUNT">%d</xliff:g> empreintes digitales"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Vous avez ajouté le nombre maximal autorisé d\'empreintes digitales"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossible d\'ajouter d\'autres empreintes digitales"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Vérifiez le mot de passe et réessayez"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Contactez le fabricant de l\'appareil"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Vérifiez la connexion et réessayez"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Ce réseau Wi‑Fi n\'est pas disponible pour le moment"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Ce code QR présente un problème. Essayez de vous connecter d\'une autre manière."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Sélectionner un réseau"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Sélectionnez un réseau pour connecter l\'appareil"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"Ajouter cet appareil à \"<xliff:g id="SSID">%1$s</xliff:g>\" ?"</string>
@@ -1951,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilité"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Clavier physique"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Touches à rebonds"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Le clavier ignore les frappes rapides et consécutives d\'une même touche"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Seuil de touches filtres"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Choisissez la durée pendant laquelle votre clavier ignore les frappes consécutives d\'une touche"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personnalisé"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valeur personnalisée"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Touches lentes"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Règle le temps de réponse à la pression d\'une touche"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Touches persistantes"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Pour les raccourcis, appuyer sur une touche à la fois au lieu de maintenir les touches enfoncées"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Touches pour la souris"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Utilisez le clavier pour contrôler le pointeur"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Défilement inversé avec la souris"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Faire défiler vers le haut pour déplacer la page vers le bas"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Inverser les boutons gauche et droit"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Utiliser le bouton gauche de la souris comme bouton droit"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Raccourcis clavier"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afficher la liste des raccourcis"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Claviers et outils du profil professionnel"</string>
@@ -2039,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Choisir une nouvelle touche pour <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> :"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accessibilité du clavier physique"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Touches rémanentes, touches à rebonds, touches pour la souris"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Répéter les touches"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Délai avant répétition"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Fréquence de répétition"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Maintenez une touche enfoncée pour répéter le caractère correspondant jusqu\'à ce que vous la relâchiez"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Mise en page <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Par défaut"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatique : <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2447,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Aperçu"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Options standards"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Langue"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Taille des sous-titres"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Style des sous-titres"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Options de personnalisation"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Couleur d\'arrière-plan"</string>
@@ -2992,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Déconnecter ce VPN ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Déconnecter"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Supprimer le VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Remplacer le VPN existant ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Définir le VPN permanent ?"</string>
@@ -3715,7 +3708,7 @@
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"D\'autres paramètres sont disponibles dans l\'appli"</string>
     <string name="notification_polite_title" msgid="6121016426991791557">"Limitation des notifications"</string>
     <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Utiliser la limitation des notifications"</string>
-    <string name="notification_polite_description" msgid="5497748284893832854">"Si vous recevez beaucoup de notifications en peu de temps, votre appareil baisse le volume et réduit les alertes pendant 2 minutes maximum. Les appels, les alarmes et les conversations prioritaires ne sont pas affectés. \n\nLes notifications reçues pendant la limitation sont accessibles en faisant glisser votre doigt du haut de l\'écran vers le bas."</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"Si vous recevez beaucoup de notifications en peu de temps, votre appareil réduit le volume et les alertes pendant 2 minutes maximum. Les appels, les alarmes et les conversations prioritaires ne sont pas affectés. \n\nLes notifications reçues pendant la limitation sont accessibles en faisant glisser votre doigt du haut de l\'écran vers le bas."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Appliquer aux profils professionnels"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Appliquer aux applis des profils professionnels"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Services d\'assistance RV"</string>
@@ -3924,8 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Créer un mode"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Mode personnalisé"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nom du mode"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Vous devez indiquer un nom de mode"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Sélectionnez une icône"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Événements d\'agenda"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Routine Heure du coucher"</string>
@@ -5468,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Rechercher un paramètre"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, stockage, compte"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Stockage des contacts"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Appareil uniquement"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Les nouveaux contacts ne seront pas synchronisés avec un compte"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Les contacts seront enregistrés sur votre appareil et synchronisés avec votre compte par défaut"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Aucun compte par défaut n\'a été défini"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Ajoutez un compte pour commencer"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Entourer pour chercher"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Appuyez de manière prolongée sur le bouton d\'accueil ou la barre de navigation pour effectuer une recherche basée sur le contenu de votre écran."</string>
 </resources>
diff --git a/res/values-gl/arrays.xml b/res/values-gl/arrays.xml
index 49cbf33..4ce2f6d 100644
--- a/res/values-gl/arrays.xml
+++ b/res/values-gl/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Folerpa"</item>
     <item msgid="7952183800501346803">"Parasol"</item>
     <item msgid="799139025758265891">"Ferramentas dun taller"</item>
-    <item msgid="1330084588359129896">"Tenda"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rolo de película"</item>
     <item msgid="5827426100157335512">"Libro"</item>
     <item msgid="8585828346253128384">"Flor de loto"</item>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index c9a75b7..16724c2 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"A data e a hora definiranse automaticamente coa axuda da rede e os sinais sen fíos"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuso horario automático"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"O fuso horario definirase automaticamente en función das redes de telefonía móbil que teñas preto"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Data e hora automáticas segundo a localización do dispositivo. Pódese precisar unha conexión wifi activa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"A data e hora definiranse automaticamente segundo a localización do dispositivo, se está dispoñible"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar configuración rexional predeterminada"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usar formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Hora"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de rebote"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"O teclado ignorará as pulsacións repetidas rapidamente da mesma tecla"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Límite das teclas de rebote"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Escolle o tempo durante o cal o teu teclado ignorará as pulsacións repetidas"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Axusta o tempo que se tarda en activar a pulsación dunha tecla"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas presas"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Preme unha tecla de cada vez para os atallos, en lugar de manter premidas varias"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas para o rato"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Usa o teclado para controlar o punteiro"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Desprazamento inverso do rato"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Desprázate cara arriba para mover a páxina cara abaixo"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Cambiar botóns esquerdo e dereito"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Usa o botón esquerdo do rato como se fose o dereito"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atallos de teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra a lista de atallos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de traballo"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Escolle unha nova tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accesibilidade do teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas presas, teclas de rebote, teclas para o rato"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetición de teclas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Retardo previo á repetición"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Índice de repetición"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mantén premida unha tecla para repetir o seu carácter ata que a soltes"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Deseño: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predeterminado"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Selección automática: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Vista previa"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opcións estándar"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamaño dos subtítulos"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo dos subtítulos"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opcións personalizadas"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Cor do fondo"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Queres desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconectar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versión"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versión <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Esquecer perfil da VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Queres substituír a VPN existente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Queres definir a VPN como sempre activa?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Buscar en Configuración"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contactos, almacenamento, conta"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Almacenamento de contactos"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Só dispositivo"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Os novos contactos non se sincronizarán cunha conta"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"De forma predeterminada, os contactos gardaranse no teu dispositivo e sincronizaranse coa túa conta"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Non se definiu ningunha conta predeterminada"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Engade unha conta para comezar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Rodear para buscar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Mantén premido o botón de inicio ou o controlador de navegación para facer buscas usando o contido da pantalla."</string>
 </resources>
diff --git a/res/values-gu/arrays.xml b/res/values-gu/arrays.xml
index bdd9ff1..20b2ced 100644
--- a/res/values-gu/arrays.xml
+++ b/res/values-gu/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"સ્નોફ્લૅક"</item>
     <item msgid="7952183800501346803">"બીચ પરની છત્રી"</item>
     <item msgid="799139025758265891">"વર્કશોપ ટૂલ"</item>
-    <item msgid="1330084588359129896">"તંબુ"</item>
+    <item msgid="8112685757657659269">"પિયાનો"</item>
     <item msgid="3861584909935022342">"ફિલ્મ રીલ"</item>
     <item msgid="5827426100157335512">"પુસ્તક"</item>
     <item msgid="8585828346253128384">"કમળનું ફૂલ"</item>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 84e4b26..c9ecbc1 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"તમારું નેટવર્ક અને વાયરલેસ સિગ્નલ વડે ઑટોમૅટિક રીતે સેટ કરેલું સેટિંગ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ઑટોમૅટિક ટાઇમ ઝોન"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"તમારી નજીકના મોબાઇલ નેટવર્કના આધારે ઑટોમૅટિક રીતે સેટ કરેલું સેટિંગ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ઉપલબ્ધ હોવા પર ડિવાઇસના લોકેશન વડે ઑટો સેટ કરો. કોઈ સક્રિય વાઇ-ફાઇ કનેક્શન હોવું આવશ્યક હોઈ શકે છે."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ઉપલબ્ધ હોવા પર ડિવાઇસના લોકેશન વડે ઑટોમૅટિક રીતે સેટ કરો"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ડિફૉલ્ટ લોકેલનો ઉપયોગ કરો"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-કલાક ફોર્મેટનો ઉપયોગ કરો"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"સમય"</string>
@@ -1698,7 +1698,7 @@
     <string name="lockpassword_choose_your_pin_header_for_biometrics" msgid="9086039918921009380">"ચહેરા અથવા ફિંગરપ્રિન્ટનો ઉપયોગ કરવા માટે પિન સેટ કરો"</string>
     <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_forgot_pin" msgid="7164232234705747672">"તમારો પિન ભૂલી ગયા?"</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>
@@ -1949,15 +1949,26 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"એક જ કીને વારંવાર ઝડપથી દબાવવાની પ્રક્રિયાની કીબોર્ડ અવગણના કરે છે"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"બાઉન્સ કી સંબંધિત મર્યાદા"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"વારંવાર દબાવવામાં આવતી તમારા કીબોર્ડની કીને અવગણવા માટે જરૂરી અવધિ પસંદ કરો"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 સેકન્ડ"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 સેકન્ડ"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 સેકન્ડ"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
+    <skip />
     <string name="slow_keys" msgid="2891452895499690837">"ધીમી કી"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"કોઈ કીને દબાવવાથી સક્રિય થવામાં લાગતા સમયમાં વધઘટ કરે છે"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"સ્ટીકી કી"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"શૉર્ટકટ માટે કીને એકસાથે દબાવી રાખવાને બદલે એક સમયે એક જ કી દબાવો"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"માઉસની કી"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"પૉઇન્ટરનું નિયંત્રણ કરવા માટે, તમારા કીબોર્ડનો ઉપયોગ કરો"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"માઉસનું રિવર્સ સ્ક્રોલિંગ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"પેજને નીચે લઈ જવા માટે ઉપર સ્ક્રોલ કરો"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ડાબા અને જમણા બટનને સ્વૉપ કરો"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"માઉસના ડાબા બટનનો ઉપયોગ તમારા જમણા બટન તરીકે કરો"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"કીબોર્ડ શૉર્ટકટ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"શૉર્ટકટની સૂચિ બતાવો"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"કાર્યાલયનું પ્રોફાઇલ અને સાધનો"</string>
@@ -2026,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> માટે નવી કી પસંદ કરો:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"વાસ્તવિક કીબોર્ડની ઍક્સેસિબિલિટી"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"સ્ટીકી કી, બાઉન્સ કી, માઉસ કી"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"કી રિપીટ કરો"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"રિપીટ થવા પહેલાંનો વિલંબ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"રિપીટ રેટ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"જ્યાં સુધી કી રિલીઝ કરવામાં ન આવે ત્યાં સુધી કીના અક્ષરો રિપીટ કરવા માટે તેને નીચેની તરફ દબાવી રાખો"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> લેઆઉટ"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ડિફૉલ્ટ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ઑટોમૅટિક રીતે: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"પ્રીવ્યૂ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"સ્ટૅન્ડર્ડ વિકલ્પો"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ભાષા"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"કૅપ્શનનું કદ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"કૅપ્શન શૈલી"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"કસ્ટમ વિકલ્પો"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"બૅકગ્રાઉન્ડ રંગ"</string>
@@ -2979,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"આ VPNને ડિસ્કનેક્ટ કરીએ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ડિસ્કનેક્ટ કરો"</string>
     <string name="vpn_version" msgid="6344167191984400976">"વર્ઝન"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"વર્ઝન <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN ભૂલી ગયાં"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"અસ્તિત્વમાંની VPN ને બદલીએ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"હંમેશાં ચાલુ VPN સેટ કરીએ?"</string>
@@ -5457,6 +5468,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ફક્ત ડિવાઇસ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"નવા સંપર્કોને કોઈ એકાઉન્ટ સાથે સિંક કરવામાં આવશે નહીં"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ડિફૉલ્ટ તરીકે, સંપર્કોને તમારા ડિવાઇસમાં સાચવવામાં આવશે અને તેને તમારા એકાઉન્ટ સાથે સિંક કરવામાં આવશે"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"કોઈ ડિફૉલ્ટ સેટ નથી"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"શરૂ કરવા માટે કોઈ એકાઉન્ટ ઉમેરો"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"શોધવા માટે વર્તુળ દોરો"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"તમારી સ્ક્રીન પરના કન્ટેન્ટનો ઉપયોગ કરીને શોધવા માટે હોમ બટનને અથવા નૅવિગેશન હૅન્ડલને ટચ કરીને થોડીવાર દબાવી રાખો."</string>
 </resources>
diff --git a/res/values-hi/arrays.xml b/res/values-hi/arrays.xml
index 0ff7011..7ff6293 100644
--- a/res/values-hi/arrays.xml
+++ b/res/values-hi/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"स्नोफ़्लेक"</item>
     <item msgid="7952183800501346803">"बीच अंब्रेला"</item>
     <item msgid="799139025758265891">"वर्कशॉप टूल"</item>
-    <item msgid="1330084588359129896">"टेंट"</item>
+    <item msgid="8112685757657659269">"पियानो"</item>
     <item msgid="3861584909935022342">"फ़िल्म रील"</item>
     <item msgid="5827426100157335512">"किताब"</item>
     <item msgid="8585828346253128384">"कमल का फूल"</item>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index eb6ede7..56ffb40 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"नेटवर्क और वायरलेस सिग्नल के ज़रिए तारीख और समय अपने-आप सेट होने की सुविधा पाएं"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"टाइम ज़ोन अपने-आप सेट होने की सुविधा"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"अपने आस-पास के मोबाइल नेटवर्क के मुताबिक तारीख और समय अपने-आप सेट होने की सुविधा पाएं"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"डिवाइस की जगह के हिसाब से समय और तारीख अपने-आप सेट होने की सुविधा पाएं. इसमें वाई-फ़ाई की ज़रूरत पड़ सकती है."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"उपलब्ध होने पर, डिवाइस की जगह के हिसाब से समय और तारीख अपने-आप सेट होने की सुविधा पाएं"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"जगह और भाषा के हिसाब से समय का फ़ॉर्मैट सेट करें"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-घंटे वाले फ़ॉर्मैट का इस्तेमाल करें"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"समय"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"सुलभता सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"सामान्य कीबोर्ड"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"बाउंस बटन"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"एक ही बटन को बार-बार दबाने पर, कीबोर्ड तुरंत कोई कार्रवाई नहीं करेगा"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"बाउंस बटन का थ्रेशोल्ड"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"चुनें कि किसी बटन को कितनी देर तक बार-बार दबाने पर कीबोर्ड कोई कार्रवाई नहीं करेगा"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 सेकंड"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 सेकंड"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 सेकंड"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"अपने हिसाब से सेट करें"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"अपने हिसाब से वैल्यू सेट करें"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो बटन"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"किसी बटन को दबाने पर स्क्रीन पर होने वाली प्रतिक्रिया के समय में बदलाव करें"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी बटन"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"शॉर्टकट के लिए, कई कुंजियों को एक साथ दबाकर रखने के बजाय एक बार में एक कुंजी दबाएं"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"माउस का काम करने वाले बटन"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"पॉइंटर को कंट्रोल करने के लिए, कीबोर्ड का इस्तेमाल करें"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"माउस रिवर्स स्क्रोलिंग"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"पेज को नीचे ले जाने के लिए, ऊपर की ओर स्क्रोल करें"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"बाएं और दाएं बटन स्वैप करें"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"माउस के बाएं बटन को दाएं बटन की तरह इस्तेमाल करें"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकट की सूची दिखाएं"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"काम के प्रोफ़ाइल से जुड़े कीबोर्ड और टूल"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> के लिए, कोई नई कुंजी चुनें:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"फ़िज़िकल कीबोर्ड की सुलभता सेटिंग"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"स्टिकी बटन, बाउंस बटन, माउस बटन"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"बटन को दबाकर रखें"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"कीबोर्ड का बटन दबाकर दोहराने में लगने वाला समय"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"दोहराने की दर"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"किसी बटन को दबाकर रखने पर, उस बटन का वर्ण तब तक दोहराया जाएगा, जब तक बटन को छोड़ा नहीं जाता"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> का लेआउट"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"डिफ़ॉल्ट"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"अपने-आप चुना गया: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"झलक"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"मानक विकल्प"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"भाषा"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"कैप्शन का साइज़"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"कैप्शन की स्टाइल"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"आपके मुताबिक विकल्प"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"पृष्ठभूमि का रंग"</string>
@@ -2883,7 +2880,7 @@
     <string name="background_data_summary" msgid="6572245922513522466">"ऐप्लिकेशन किसी भी समय डेटा सिंक कर सकते हैं, भेज और पा सकते हैं"</string>
     <string name="background_data_dialog_title" msgid="1692005302993229867">"पृष्ठभू. डेटा अक्षम करें?"</string>
     <string name="background_data_dialog_message" msgid="7760280837612824670">"बैकग्राउंड डेटा को बंद करने से बैटरी ज़्यादा चलती है और डेटा कम खर्च होता है. हो सकता है कि कुछ ऐप अब भी बैकग्राउंड में डेटा इस्तेमाल कर रहे हों."</string>
-    <string name="sync_enabled" msgid="5794103781356455043">"समन्वयन चालू है"</string>
+    <string name="sync_enabled" msgid="5794103781356455043">"सिंक करने की सेटिंग चालू है"</string>
     <string name="sync_disabled" msgid="1636223106968593391">"सिंक बंद है"</string>
     <string name="sync_error" msgid="846923369794727644">"समन्वयन गड़बड़ी"</string>
     <string name="last_synced" msgid="1527008461298110443">"पिछली बार सिंक करने का समय: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"इस VPN को डिसकनेक्ट करना चाहते हैं?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"डिसकनेक्ट करें"</string>
     <string name="vpn_version" msgid="6344167191984400976">"वर्शन"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"वर्शन <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"इस वीपीएन नेटवर्क को हटाएं"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"मौजूदा वीपीएन को बदलें?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"हमेशा-चालू VPN सेट करें?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"सेटिंग खोजें"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"संपर्क, स्टोरेज, खाता"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"संपर्क स्टोरेज"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"संपर्क सिर्फ़ डिवाइस में सेव करें"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"नए संपर्क किसी खाते से सिंक नहीं किए जाएंगे"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"डिफ़ॉल्ट रूप से, संपर्क आपके डिवाइस में सेव हो जाएंगे और आपके खाते से सिंक हो जाएंगे"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"डिफ़ॉल्ट खाता सेट नहीं किया गया है"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"सिंक करने के लिए कोई खाता जोड़ें"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"सर्कल बनाकर ढूंढें"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"स्क्रीन पर दिख रहे कॉन्टेंट की मदद से कोई चीज़ खोजने के लिए, होम बटन या नेविगेशन हैंडल को दबाकर रखें."</string>
 </resources>
diff --git a/res/values-hr/arrays.xml b/res/values-hr/arrays.xml
index 3af0878..baef0e8 100644
--- a/res/values-hr/arrays.xml
+++ b/res/values-hr/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snježna pahuljica"</item>
     <item msgid="7952183800501346803">"Suncobran za plažu"</item>
     <item msgid="799139025758265891">"Radionički alati"</item>
-    <item msgid="1330084588359129896">"Šator"</item>
+    <item msgid="8112685757657659269">"Klavir"</item>
     <item msgid="3861584909935022342">"Filmska vrpca"</item>
     <item msgid="5827426100157335512">"Knjiga"</item>
     <item msgid="8585828346253128384">"Lotosov cvijet"</item>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 0e4123c..3a6ff22 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Postavi automatski pomoću mreže i bežičnih signala"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatska vremenska zona"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Automatski postavi na temelju mobilnih mreža u blizini"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Postavi automatski pomoću lokacije uređaja, ako je dostupna. Možda je potrebna i aktivna Wi-Fi veza."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Postavi automatski pomoću lokacije uređaja, ako je dostupna"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Koristi zadani lokalni format"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Koristi 24-satni format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Vrijeme"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Tipkovnica zanemaruje brzo ponovljene pritiske iste tipke"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prag zanemarivanja slučajnih pritisaka"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Odaberite koliko dugo će tipkovnica zanemarivati ponovljene pritiske tipki"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Prilagođeno"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"prilagođena vrijednost"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Spore tipke"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Prilagođava vrijeme potrebno za aktivaciju pritiska tipke"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Ljepljive tipke"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Pritisnite jednu po jednu tipku za prečace umjesto da ih pritisnete zajedno"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tipke miša"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Upravljajte pokazivačem pomoću tipkovnice"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Obrnuto pomicanje pomoću miša"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Pomičite se prema gore za pomicanje stranice prema dolje"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Zamjena lijeve i desne tipke"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Upotrebljavajte lijevu tipku miša kao desnu"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tipkovni prečaci"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaži popis prečaca"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice i alati radnog profila"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Odaberite novu tipku za <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Pristupačnost fizičke tipkovnice"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Ljepljive tipke, sprečavanje slučajnih pritisaka tipki, tipke miša"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Tipke za ponavljanje unosa"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Odgodi prije ponavljanja"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Stopa ponavljanja"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pritisnite tipku i zadržite pritisak da biste ponavljali unos znaka dok je ne otpustite"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Izgled: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Zadano"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatski: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pregled"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardne opcije"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jezik"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Veličina titlova"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stil titlova"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Prilagođene opcije"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Boja pozadine"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Prekinuti vezu s VPN-om?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Prekini vezu"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verzija"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verzija <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zaboravi VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Želite li zamijeniti dosadašnji VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Želite li postaviti uvijek uključeni VPN?"</string>
@@ -3701,7 +3707,7 @@
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"Više postavki"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"Više postavki dostupno je unutar aplikacije"</string>
     <string name="notification_polite_title" msgid="6121016426991791557">"Postupno stišavanje obavijesti"</string>
-    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Postupno stišavanje obavijesti"</string>
+    <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Postupno stišaj obavijesti"</string>
     <string name="notification_polite_description" msgid="5497748284893832854">"Ako u kratkom vremenskom razdoblju primite velik broj obavijesti, uređaj će smanjiti glasnoću i minimizirati upozorenja u trajanju do dvije minute. To ne utječe na pozive, alarme i prioritetne razgovore. \n\nObavijesti primljene tijekom stišavanja mogu se pronaći tako da povučete prstom prema dolje s vrha zaslona."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Primijeni na poslovne profile"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"Primjenjuje se na aplikacije poslovnog profila"</string>
@@ -4395,7 +4401,7 @@
     <string name="dark_theme_slice_title" msgid="4684222119481114062">"Isprobajte Tamnu temu"</string>
     <string name="dark_theme_slice_subtitle" msgid="5555724345330434268">"Pomaže produljiti trajanje baterije"</string>
     <string name="quick_settings_developer_tiles" msgid="7336007844525766623">"Pločice brzih postavki za razvojne programere"</string>
-    <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogući vrijeme čekanja za autorizacije za adb"</string>
+    <string name="adb_authorization_timeout_title" msgid="6996844506783749754">"Onemogući istek vremena za autorizaciju ADB-a"</string>
     <string name="adb_authorization_timeout_summary" msgid="409931540424019778">"Onemogućite automatski opoziv autorizacija za adb za sustave koji se ne povežu u zadanom razdoblju (sedam dana) ili korisnički konfiguriranom razdoblju (najmanje jedan dan)."</string>
     <string name="sensors_off_quick_settings_title" msgid="8472151847125917167">"Senzori su isključeni"</string>
     <string name="managed_profile_settings_title" msgid="3400923723423564217">"Postavke poslovnog profila"</string>
@@ -4924,7 +4930,7 @@
     <string name="network_connection_errorstate_dialog_message" msgid="3360714322047603239">"Došlo je do pogreške. Aplikacija je otkazala zahtjev za odabir uređaja."</string>
     <string name="network_connection_connect_successful" msgid="2587314077675642476">"Povezivanje je uspjelo"</string>
     <string name="network_connection_connect_failure" msgid="6803313816657494319">"Povezivanje nije uspjelo"</string>
-    <string name="network_connection_request_dialog_showall" msgid="6392059758456994944">"Pokaži sve"</string>
+    <string name="network_connection_request_dialog_showall" msgid="6392059758456994944">"Prikaži sve"</string>
     <string name="network_connection_searching_message" msgid="8521819623516926482">"Traženje uređaja…"</string>
     <string name="network_connection_connecting_message" msgid="433189540877274889">"Povezivanje s uređajem…"</string>
     <string name="bluetooth_left_name" msgid="7440064067910080502">"Lijevo"</string>
@@ -5445,7 +5451,7 @@
     <string name="audio_streams_main_page_device_title" msgid="2635744035523908253">"Vaš audiouređaj"</string>
     <string name="audio_streams_main_page_no_device_summary" msgid="2936000845397406389">"Poveži kompatibilne slušalice"</string>
     <string name="audio_streams_main_page_scan_section_title" msgid="2778235929304061163">"Audiostreamovi u blizini"</string>
-    <string name="audio_streams_main_page_scan_qr_code_title" msgid="8337270277392468895">"Skeniranje QR koda"</string>
+    <string name="audio_streams_main_page_scan_qr_code_title" msgid="8337270277392468895">"Skenirajte QR kod"</string>
     <string name="audio_streams_main_page_scan_qr_code_summary" msgid="1991792283368249499">"Skenirajte QR kôd streama i počnite slušati"</string>
     <string name="audio_streams_main_page_password_dialog_join_button" msgid="2967747276379153408">"Slušajte stream"</string>
     <string name="audio_streams_main_page_qr_code_scanner_summary" msgid="5312980105735143360">"Skenirajte QR kôd audiostreama da biste slušali s uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -5458,6 +5464,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Samo uređaj"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Novi kontakti neće se sinkronizirati s računom"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakti će se spremiti na vaš uređaj i prema zadanim postavkama sinkronizirati s vašim računom"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nema zadane postavke"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Dodajte račun da biste započeli"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Zaokružite i potražite"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Dodirnite gumb početnog zaslona ili oznaku za navigaciju i zadržite pritisak za pretraživanje pomoću sadržaja na vašem zaslonu."</string>
 </resources>
diff --git a/res/values-hu/arrays.xml b/res/values-hu/arrays.xml
index d6002b8..44532f9 100644
--- a/res/values-hu/arrays.xml
+++ b/res/values-hu/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Hópehely"</item>
     <item msgid="7952183800501346803">"Strandernyő"</item>
     <item msgid="799139025758265891">"Workshop-eszközök"</item>
-    <item msgid="1330084588359129896">"Sátor"</item>
+    <item msgid="8112685757657659269">"Zongora"</item>
     <item msgid="3861584909935022342">"Filmtekercs"</item>
     <item msgid="5827426100157335512">"Könyv"</item>
     <item msgid="8585828346253128384">"Lótuszvirág"</item>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 26bb57c..4b4ee03 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Automatikus beállítás a hálózat és a vezeték nélküli jelek alapján"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatikus időzóna"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Automatikus beállítás a közeli mobilhálózatok alapján"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Automatikus beállítás az eszköz helyadatai alapján (ha rendelkezésre állnak). Aktív Wi-Fi-re is szükség lehet."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Automatikus beállítás az eszköz helyadatai alapján (ha rendelkezésre állnak)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Helyi alapértelmezés használata"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 órás formátum használata"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Idő"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Kisegítő lehetőségek"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizikai billentyűzet"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Billentyűblokkolás"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"A billentyűzet nem veszi figyelembe, ha ugyanazt a billentyűt gyorsan egymás után többször is lenyomja."</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Billentyűblokkolás küszöbértéke"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Válassza ki, hogy a billentyűzet mennyi ideig hagyja figyelmen kívül az ismétlődő gombnyomásokat."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 mp"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 mp"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 mp"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Egyéni"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"egyéni érték"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lassú billentyűk"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Módosítja a billentyű lenyomásától az aktiválásig eltelő időtartamot."</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Beragadó billentyűk"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Egyszerre egy billentyű lenyomásával használhat billentyűparancsokat több billentyű egyszeri lenyomva tartása helyett"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Egérgombok"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"A billentyűzettel vezérelheti a mutatót."</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Fordított görgetés az egérrel"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Az oldal lefelé mozgatásához görgessen felfelé"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Bal és jobb gomb felcserélése"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"A bal egérgomb használata jobb egérgombként"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Billentyűparancsok"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Billentyűparancsok listájának megjelenítése"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Munkaprofil billentyűzetei és eszközei"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Válasszon új billentyűt a(z) <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> számára:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fizikai billentyűzet kisegítő lehetőségei"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Beragadó billentyűk, billentyűblokkolás, egérgombok"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ismétlődő billentyűk"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Ismétlés előtti késleltetés"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Ismétlési sebesség"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Ha lenyomva tartja valamelyik billentyűt, a billentyűhöz tartozó karakter többször is bevitelre kerül, amíg fel nem emeli az ujját."</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> elrendezés"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Alapértelmezett"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatikus: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Előnézet"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Normál beállítások"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Nyelv"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Felirat mérete"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Felirat stílusa"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Egyéni beállítások"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Háttérszín"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Leválasztja a VPN-t?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Leválasztás"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verzió"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verzió: <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN elfelejtése"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Lecseréli a meglévő VPN-t?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Beállítja a mindig bekapcsolt VPN-t?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Keresési beállítások"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"névjegyek, tárhely, fiók"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Névjegytár"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Csak az eszközön"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Az új névjegyeket semmilyen fiókkal nem szinkronizálja a rendszer."</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"A névjegyek alapértelmezés szerint az eszközére lesznek mentve, és szinkronizálódnak a fiókjával."</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nincs alapértelmezett beállítás"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"A kezdéshez adjon hozzá egy fiókot."</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Bekarikázással keresés"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Tartsa lenyomva a Kezdőképernyő gombot vagy a navigációs fogópontot a képernyőn lévő tartalommal való kereséshez."</string>
 </resources>
diff --git a/res/values-hy/arrays.xml b/res/values-hy/arrays.xml
index b64125d..5ea9fd9 100644
--- a/res/values-hy/arrays.xml
+++ b/res/values-hy/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Ձյան փաթիլ"</item>
     <item msgid="7952183800501346803">"Լողափի հովանոց"</item>
     <item msgid="799139025758265891">"Արհեստանոցի գործիքներ"</item>
-    <item msgid="1330084588359129896">"Վրան"</item>
+    <item msgid="8112685757657659269">"Դաշնամուր"</item>
     <item msgid="3861584909935022342">"Ֆիլմի սյուժե"</item>
     <item msgid="5827426100157335512">"Գիրք"</item>
     <item msgid="8585828346253128384">"Լոտոսի ծաղիկ"</item>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index 9994576..95c3479 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Ավտոմատ կարգավորել՝ օգտագործելով ցանցը և անլար ազդանշանները"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Ժամային գոտու ավտոմատ որոշում"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Ավտոմատ սահմանել՝ հիմնվելով ձեր մոտակայքում գործող բջջային ցանցերի վրա"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Ավտոմատ կարգավորել՝ օգտագործելով սարքի տեղադրությունը, եթե առկա է։ Կարող է նաև պահանջվել Wi-Fi կապ։"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Ավտոմատ կարգավորել՝ օգտագործելով սարքի տեղադրությունը, եթե առկա է"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Օգտագործել կանխադրված տեղույթը"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Օգտագործել 24-ժամյա ձևաչափը"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ժամը"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Հատուկ գործառույթներ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ֆիզիկական ստեղնաշար"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Կրկնակի սեղմման անտեսում"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Ստեղնաշարը անտեսում է միևնույն ստեղնի կրկնվող արագ սեղմումները"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Կրկնվող սեղմումների անտեսման շեմ"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Ընտրեք, թե որքան ժամանակ պետք է անտեսվեն ստեղնաշարի ստեղների կրկնվող սեղմումները"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 վ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 վ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 վ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Այլ"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"հատուկ արժեք"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Դանդաղ ստեղներ"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Կարգավորում է ժամանակի տևողությունը, որից հետո ստեղնը արձագանքում է սեղմմանը"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Կպչուն ստեղներ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Դյուրանցումների համար միաժամանակ սեղմեք մեկ ստեղն, այլ ոչ թե միասին սեղմած պահեք մի քանիսը"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Մկնիկի ստեղներ"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Ցուցիչը կառավարել ստեղնաշարի միջոցով"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Մկնիկով հետադարձ ոլորում"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Ոլորեք վերև՝ էջի ներքև անցնելու համար"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Տեղերով փոխել աջ և ձախ կոճակները"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Օգտագործեք մկնիկի ձախ կոճակը որպես աջը"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ստեղնային դյուրանցումներ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ցույց տալ ստեղնաշարի դյուրանցումների ցանկը"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Աշխատանքային պրոֆիլի ստեղնաշարեր և գործիքներ"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Ընտրել նոր ստեղն <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> ստեղնի փոխարեն՝"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Ֆիզիկական ստեղնաշարի հատուկ գործառույթներ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Կպչուն ստեղներ, Վերադարձի ստեղներ, Մկնիկի ստեղներ"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ստեղների նիշերի կրկնություն"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Հապաղում կրկնությունից առաջ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Կրկնման արագությունը"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Կրկնել ստեղնի նիշն այնքան ժամանակ, քանի դեռ ստեղնը սեղմված է"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> դասավորություն"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Կանխադրված"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Ավտոմատ՝ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Նախադիտում"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Սովորական ընտրանքներ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Լեզու"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Ենթագրերի չափսը"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Ենթագրերի ոճը"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Հատուկ ընտրանքներ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Ֆոնի գույնը"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Անջատե՞լ այս VPN-ը:"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Անջատել"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Տարբերակ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Տարբերակ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Մոռանալ VPN-ը"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Փոխարինե՞լ ընթացիկ VPN-ը:"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Սահմանե՞լ որպես «միշտ միացված» VPN:"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Որոնեք կարգավորումներում"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"կոնտակտներ, տարածք, հաշիվ"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Կոնտակտների տարածք"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Միայն սարքում"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Նոր կոնտակտները չեն համաժամացվի հաշվի հետ"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Կոնտակտներն ըստ կանխադրման կպահվեն սարքում և կհամաժամացվեն ձեր հաշվի հետ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Որևէ հաշիվ սահմանված չէ որպես կանխադրված"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Սկսելու համար ավելացրեք հաշիվ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Շրջագծել որոնելու համար"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Հպեք և պահեք գլխավոր էկրանի կոճակը կամ նավիգացիայի նշիչը, որպեսզի որոնեք՝ օգտագործելով ձեր էկրանի բովանդակությունը։"</string>
 </resources>
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index 55f7adf..cae7ae6 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Kepingan salju"</item>
     <item msgid="7952183800501346803">"Payung pantai"</item>
     <item msgid="799139025758265891">"Alat workshop"</item>
-    <item msgid="1330084588359129896">"Tenda"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rol film"</item>
     <item msgid="5827426100157335512">"Buku"</item>
     <item msgid="8585828346253128384">"Bunga teratai"</item>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index a8bea08..6ccb9f8 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Setel secara otomatis menggunakan jaringan dan sinyal nirkabel Anda"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zona waktu otomatis"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Setel otomatis berdasarkan jaringan seluler di sekitar Anda"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Setel secara otomatis menggunakan lokasi perangkat, jika tersedia. Koneksi Wi-Fi yang aktif juga mungkin diperlukan."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Setel secara otomatis menggunakan lokasi perangkat, jika tersedia"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Gunakan default lokalitas"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Gunakan format 24 jam"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Waktu"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aksesibilitas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Keyboard fisik"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tombol pantul"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Keyboard mengabaikan penekanan tombol yang sama secara berulang dan cepat"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Batas tombol pantul"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Pilih durasi waktu keyboard Anda mengabaikan penekanan tombol berulang"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 dtk"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 dtk"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 dtk"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Kustom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"Nilai kustom"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tombol lambat"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Menyesuaikan waktu yang diperlukan penekanan tombol untuk diaktifkan"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Tombol lekat"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Tekan satu tombol pada satu waktu untuk mengaktifkan pintasan, bukan menekan tombol secara bersamaan"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tombol mouse"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Gunakan keyboard untuk mengontrol kursor"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Scroll terbalik mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll ke atas untuk memindahkan halaman ke bawah"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Tukar tombol kiri dan kanan"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Gunakan tombol mouse kiri sebagai tombol kanan"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan keyboard"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tampilkan daftar pintasan"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Keyboard &amp; fitur profil kerja"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Pilih tombol baru untuk <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Aksesibilitas keyboard fisik"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Tombol lekat, Tombol pantul, Tombol mouse"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Tombol Ulangi"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Tunda sebelum mengulangi"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Rasio Pengulangan"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Menahan tombol untuk mengulangi karakternya hingga tombol dilepaskan"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Tata letak <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Otomatis: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pratinjau"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opsi standar"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Bahasa"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Ukuran teks"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Gaya teks"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opsi khusus"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Warna latar belakang"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Putuskan sambungan VPN ini?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Putuskan koneksi"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versi"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versi <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Lupakan VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Ganti VPN yang sudah ada?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Setel VPN selalu aktif?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Telusuri Setelan"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontak, penyimpanan, akun"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Penyimpanan kontak"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Perangkat saja"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Kontak baru tidak akan disinkronkan dengan akun"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontak akan disimpan ke perangkat dan disinkronkan ke akun Anda secara default"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Tidak ada default yang disetel"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Tambahkan akun untuk memulai"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Lingkari untuk Menelusuri"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Sentuh lama tombol Layar utama atau tuas navigasi untuk menelusuri menggunakan konten di layar."</string>
 </resources>
diff --git a/res/values-is/arrays.xml b/res/values-is/arrays.xml
index eacf406..bbc7b6f 100644
--- a/res/values-is/arrays.xml
+++ b/res/values-is/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snjókorn"</item>
     <item msgid="7952183800501346803">"Sólhlíf"</item>
     <item msgid="799139025758265891">"Verkfæri"</item>
-    <item msgid="1330084588359129896">"Tjald"</item>
+    <item msgid="8112685757657659269">"Píanó"</item>
     <item msgid="3861584909935022342">"Gamaldags filma"</item>
     <item msgid="5827426100157335512">"Bók"</item>
     <item msgid="8585828346253128384">"Lótusblóm"</item>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 50610bc..181dafd 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Stilla sjálfvirkt með því að nota merki netkerfis og þráðlaus merki"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Sjálfvirkt tímabelti"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Stilla sjálfvirkt samkvæmt farsímakerfum nálægt þér"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Stilla sjálfvirkt með því að nota staðsetningu tækis, ef tiltæk. Virkrar Wifi-tengingar kann einnig að vera krafist."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Sjálfvirk stilling út frá staðsetningu tækis, ef tiltæk"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Nota sjálfgefið snið staðar"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Nota 24 tíma snið"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Tími"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Aðgengi"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Vélbúnaðarlyklaborð"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Endurkastslyklar"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Lyklaborðið hunsar þegar þú ýtir snöggt og endurtekið á sama lykilinn"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Mörk endurkastslykils"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Veldu tímann sem lyklaborðið þitt hunsar lykil í þegar þú ýtir endurtekið á hann"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 sek."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 sek."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 sek."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Sérsniðið"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"sérsniðið gildi"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hægir lyklar"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Breyttu tímanum sem það tekur fyrir lykil að virkjast eftir að þú ýtir á hann"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Festilyklar"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Ýttu á einn lykil í einu fyrir flýtilykla í staðinn fyrir að halda lyklum saman niðri"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Músarhnappar"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Notaðu lyklaborðið til að stjórna bendlinum"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Öfug fletting músar"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Flettu upp til að færa síðuna niður"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Víxla hægri og vinstri hnappi"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Notaðu vinstri músarhnappinn sem hægri hnapp"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Flýtilyklar"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Sýna lista yfir flýtileiðir"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Lyklaborð og verkfæri vinnusniðs"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Veldu nýjan lykil fyrir <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Aðgengi vélbúnaðarlyklaborðs"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Festilyklar, endurkastslyklar, músarhnappar"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Takkar fyrir endurtekningu"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Töf á undan endurtekningu"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Hraði endurtekninga"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Haltu takka niðri til að endurtaka stafi og slepptu til að hætta"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Útlit: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Sjálfgefið"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Sjálfvirkt: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Forskoða"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Hefðbundnir valkostir"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Tungumál"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Stærð skjátexta"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stíll texta"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Sérsniðnir valkostir"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Bakgrunnslitur"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Aftengja þessa VPN-tengingu?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Aftengja"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Útgáfa"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Útgáfa <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Gleyma VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Skipta út núverandi VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Velja VPN sem alltaf er kveikt á?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Leitarstillingar"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"tengiliðir, geymsla, reikningur"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Tengiliðageymsla"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Aðeins tæki"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nýir tengiliðir verða ekki samstilltir við reikning"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Tengiliðir verða sjálfkrafa vistaðir í tækinu þínu og samstilltir við reikninginn þinn"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ekkert sjálfgildi stillt"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Bættu reikningi við til að hefjast handa"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Haltu heimahnappnum eða flettihandfanginu inni til að leita út frá efninu sem birtist á skjánum þínum."</string>
 </resources>
diff --git a/res/values-it/arrays.xml b/res/values-it/arrays.xml
index 7c6fdf1..8969d0e 100644
--- a/res/values-it/arrays.xml
+++ b/res/values-it/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Fiocco di neve"</item>
     <item msgid="7952183800501346803">"Ombrellone da spiaggia"</item>
     <item msgid="799139025758265891">"Strumenti per il workshop"</item>
-    <item msgid="1330084588359129896">"Tenda"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Pellicola"</item>
     <item msgid="5827426100157335512">"Libro"</item>
     <item msgid="8585828346253128384">"Fiore di loto"</item>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 398d538..b7c6da9 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Imposta automaticamente la data e l\'ora utilizzando la rete e gli indicatori wireless"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuso orario automatico"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Imposta automaticamente la data e l\'ora in base alle reti mobile nelle tue vicinanze"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Imposta automaticamente la data e l\'ora utilizzando la posizione del dispositivo, se disponibile. Potrebbe essere necessaria anche una connessione Wi-Fi attiva."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Imposta automaticamente la data e l\'ora utilizzando la posizione del dispositivo, se disponibile"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usa impostazioni internazionali predefinite"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usa il formato 24 ore"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ora"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Imposta sequenza per lo spazio privato"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Blocca"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Nascondi"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Conferma la sequenza dello spazio privato"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Inserisci di nuovo il PIN dello spazio privato"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Inserisci di nuovo la password dello spazio privato"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Puoi aggiungere fino a <xliff:g id="COUNT">%d</xliff:g> impronte digitali"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Hai aggiunto il numero massimo di impronte digitali"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Impossibile aggiungere ulteriori impronte digitali"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Controlla la password e riprova"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Contatta il produttore del dispositivo"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Controlla la connessione e riprova"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Al momento, questa rete Wi-Fi non è disponibile"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Si è verificato un problema con questo codice QR. Prova a connetterti in un altro modo."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Scegli rete"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Per connettere il tuo dispositivo, scegli una rete"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"Aggiungere questo dispositivo alla rete \"<xliff:g id="SSID">%1$s</xliff:g>\"?"</string>
@@ -1330,7 +1325,7 @@
     <string name="screensaver_settings_when_to_dream_bedtime" msgid="3279310576803094771">"Non disponibili perché la modalità Riposo è attiva"</string>
     <string name="screensaver_settings_toggle_title" msgid="6194634226897244374">"Usa il salvaschermo"</string>
     <string name="screensaver_settings_summary_either_long" msgid="371949139331896271">"Durante la ricarica o quando inserito nel dock"</string>
-    <string name="screensaver_settings_summary_dock_and_charging" msgid="8485905100159376156">"Inserito nel dock e in carica"</string>
+    <string name="screensaver_settings_summary_dock_and_charging" msgid="8485905100159376156">"Agganciato alla base e in carica"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6555922932643037432">"Durante la ricarica"</string>
     <string name="screensaver_settings_summary_dock" msgid="6997766385189369733">"Quando inserito nel dock"</string>
     <string name="screensaver_settings_summary_never" msgid="4988141393040918450">"Mai"</string>
@@ -1951,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accessibilità"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fisica"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tasti rimbalzati"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"La tastiera ignora le pressioni ripetute velocemente dello stesso tasto"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Soglia antirimbalzo dei tasti"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Scegli la durata di tempo in cui la tastiera ignora le pressioni ripetute dei tasti"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizzato"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valore personalizzato"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Tasti lenti"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Regola il tempo di risposta per la pressione di un tasto"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Tasti permanenti"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Premi un tasto alla volta per le scorciatoie invece di tenere premuti più tasti contemporaneamente"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tasti del mouse"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Usa la tastiera per controllare il puntatore"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Scorrimento invertito del mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scorri verso l\'alto per spostare la pagina in basso"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Scambia i tasti sinistro e destro"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Usa il tasto sinistro del mouse come il destro"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Scorciatoie da tastiera"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostra l\'elenco di scorciatoie"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastiere e strumenti del profilo di lavoro"</string>
@@ -2039,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Scegli un nuovo tasto per <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accessibilità della tastiera fisica"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Tasti permanenti, tasti rimbalzati, tasti del mouse"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ripeti tasti"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Ritardo prima della ripetizione"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Frequenza ripetizione"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Tieni premuto un tasto per ripetere il relativo carattere finché non lo rilasci"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layout <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predefinito"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatico: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2447,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Anteprima"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opzioni standard"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Lingua"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Dimensioni sottotitoli codificati"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stile sottotitoli"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opzioni personalizzate"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Colore sfondo"</string>
@@ -2992,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Disconnettere questa VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Disconnetti"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versione"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versione <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Rimuovi VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Sostituire la rete VPN esistente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Impostare la rete VPN sempre attiva?"</string>
@@ -3924,8 +3917,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Crea una modalità"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modalità personalizzata"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Nome della modalità"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Il nome della modalità non può essere vuoto"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Scegli un\'icona"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Eventi nel calendario"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Routine Buonanotte"</string>
@@ -5158,7 +5150,7 @@
     <string name="multiple_users_title_keywords" msgid="2395593167746225172">"più, utenti, profili, persone, account, sensore, molti"</string>
     <string name="wireless_debugging_main_switch_title" msgid="8463499572781441719">"Usa debug wireless"</string>
     <string name="graphics_driver_main_switch_title" msgid="6125172901855813790">"Usa Preferenze del driver di grafica"</string>
-    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Usa Luminosità notturna"</string>
+    <string name="night_light_main_switch_title" msgid="3428298022467805219">"Usa luminosità notturna"</string>
     <string name="nfc_main_switch_title" msgid="6295839988954817432">"Usa NFC"</string>
     <string name="adaptive_brightness_main_switch_title" msgid="2681666805191642737">"Usa la luminosità adattiva"</string>
     <string name="wifi_calling_main_switch_title" msgid="4070224008346815634">"Usa Chiamate Wi-Fi"</string>
@@ -5468,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Cerca in Impostazioni"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contatti, spazio di archiviazione, account"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Archiviazione contatti"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Solo dispositivo"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"I nuovi contatti non verranno sincronizzati con un account"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"I contatti verranno salvati sul dispositivo e sincronizzati con il tuo account per impostazione predefinita"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nessun account predefinito"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Aggiungi un account per iniziare"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Cerchia e Cerca"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Tocca e tieni premuto il pulsante Home o la barra di navigazione per eseguire una ricerca usando i contenuti sullo schermo."</string>
 </resources>
diff --git a/res/values-iw/arrays.xml b/res/values-iw/arrays.xml
index 6d19195..28db091 100644
--- a/res/values-iw/arrays.xml
+++ b/res/values-iw/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"פתית שלג"</item>
     <item msgid="7952183800501346803">"שמשייה"</item>
     <item msgid="799139025758265891">"כלי עבודה"</item>
-    <item msgid="1330084588359129896">"אוהל"</item>
+    <item msgid="8112685757657659269">"פסנתר"</item>
     <item msgid="3861584909935022342">"סרט צילום (פילם)"</item>
     <item msgid="5827426100157335512">"ספר"</item>
     <item msgid="8585828346253128384">"פרח לוטוס"</item>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 0595601..2dd6fad 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"הגדרה אוטומטית באמצעות הרשת והאותות האלחוטיים"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"אזור זמן אוטומטי"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"הגדרה אוטומטית בהתאם לרשתות הסלולריות בקרבתך"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"‏הגדרה אוטומטית באמצעות מיקום המכשיר, אם האפשרות זמינה. יכול להיות שצריך גם חיבור Wi-Fi פעיל."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"הגדרה אוטומטית באמצעות מיקום המכשיר, אם האפשרות זמינה"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"לפי ברירת המחדל באזור"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"פורמט 24 שעות"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"שעה"</string>
@@ -1804,7 +1804,7 @@
     <string name="application_size_label" msgid="6407051020651716729">"גודל האפליקציה"</string>
     <string name="external_code_size_label" msgid="7375146402660973743">"‏אפליקציה של אחסון USB"</string>
     <string name="data_size_label" msgid="7814478940141255234">"נתוני משתמש"</string>
-    <string name="uninstall_text" msgid="315764653029060126">"הסרת התקנה"</string>
+    <string name="uninstall_text" msgid="315764653029060126">"הסרה"</string>
     <string name="uninstall_all_users_text" msgid="5924715251087176474">"להסרת התקנה עבור כל המשתמשים"</string>
     <string name="install_text" msgid="4558333621516996473">"התקנה"</string>
     <string name="disable_text" msgid="5146002260857428005">"השבתה"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"נגישות"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"מקלדת פיזית"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"מקשים חוזרים"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"המערכת מתעלמת מהקשות מהירות חוזרות על אותו המקש במקלדת"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"הסף לסינון הקשות חוזרות"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"צריך לבחור את משך הזמן שבו המערכת מתעלמת מהקשות חוזרות על מקשים במקלדת"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"‫0.2 שניות"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"‫0.4 שניות"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"‫0.6 שניות"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"בהתאמה אישית"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"ערך מותאם אישית"</string>
     <string name="slow_keys" msgid="2891452895499690837">"מקשים איטיים"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"שינוי הזמן שעובר מהקשה על מקש ועד להפעלה שלו"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"מקשים \"דביקים\""</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"מקישים אחד-אחד על רצף של מקשי קיצור, ולא צריך ללחוץ עליהם בו-זמנית."</string>
     <string name="mouse_keys" msgid="6237254627808525540">"מקשי העכבר"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"שליטה בסמן באמצעות המקלדת"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"גלילה הפוכה עם העכבר"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"גלילה למעלה להזזת הדף למטה"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"החלפה בין הלחצן השמאלי ללחצן הימני"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"שימוש בלחצן השמאלי של העכבר כלחצן הימני"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"מקשי קיצור"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"הצגת רשימה של מקשי הקיצור"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"מקלדות וכלים בפרופיל העבודה"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"יש לבחור מפתח חדש עבור <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"תכונות נגישות שפועלות באמצעות מקלדת פיזית"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"מקשים \"דביקים\", מקשים חוזרים, לחצני העכבר"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"חזרה על מקשים"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"השהיה לפני חזרה"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"קצב החזרה"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"לוחצים לחיצה ארוכה על מקש כדי לחזור על התו שלו עד שמפסיקים ללחוץ על המקש"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"פריסה של <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ברירת מחדל"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"אוטומטי: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2231,10 +2229,10 @@
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"יש להחליק למעלה בעזרת שתי אצבעות"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture_talkback" msgid="7422753388389160524">"יש להחליק למעלה בעזרת שלוש אצבעות"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software" msgid="6505512764022389951">"לחצן הנגישות"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"צריך להקיש על הלחצן הצף"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"הקשה על הלחצן הצף"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"תנועה להפעלת תכונות הנגישות"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"צריך להקיש על לחצן הנגישות <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> בחלק התחתון של המסך. כדי לעבור בין תכונות, צריך ללחוץ לחיצה ארוכה על לחצן הנגישות."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{מחליקים למעלה מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה ומחזיקים.}one{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}two{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}other{מחליקים למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, מחליקים למעלה עם # אצבעות ומחזיקים.}}"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{החלקה למעלה מהחלק התחתון של המסך. כדי לעבור בין תכונות, החלקה למעלה והחזקת האצבעות.}one{החלקה למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, החלקה למעלה עם # אצבעות והשארה שלהן.}two{החלקה למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, החלקה למעלה עם # אצבעות והשארה שלהן.}other{החלקה למעלה עם # אצבעות מהחלק התחתון של המסך. כדי לעבור בין תכונות, החלקה למעלה עם # אצבעות והשארה שלהן.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"אפשרויות נוספות"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"מידע נוסף על <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings" msgid="140959604014177304">"הגדרות מהירות"</string>
@@ -2243,7 +2241,7 @@
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings" msgid="7006526933552889373">"הגדרות מהירות"</string>
     <string name="accessibility_shortcut_edit_dialog_title_hardware" msgid="844089763968552142">"לחצני עוצמת הקול"</string>
     <string name="accessibility_shortcut_hardware_keyword" msgid="2483152542320987022">"לחצני עוצמת הקול"</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"יש ללחוץ לחיצה ארוכה על שני הלחצנים של עוצמת הקול"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_hardware" msgid="2503134386397991634">"לחיצה ארוכה על שני הלחצנים של עוצמת הקול"</string>
     <string name="accessibility_shortcut_edit_screen_title_two_finger_double_tap" msgid="8952595692906527694">"‏הקשה כפולה עם %1$d אצבעות"</string>
     <string name="accessibility_shortcut_edit_screen_summary_two_finger_double_tap" msgid="385404127425496362">"‏מקישים הקשה כפולה במהירות על המסך עם %1$d אצבעות"</string>
     <string name="accessibility_shortcut_edit_screen_title_triple_tap" msgid="3314488747597058942">"הקשה משולשת"</string>
@@ -2288,7 +2286,7 @@
     <string name="accessibility_force_invert_title" msgid="5015366813138748407">"הגדרת עיצוב כהה לכל האפליקציות"</string>
     <string name="accessibility_force_invert_summary" msgid="1882329675950887268">"רלוונטי לאפליקציות ללא עיצוב כהה משלהן. בחלק מהאפליקציות עשויות להיות בעיות תצוגה, כמו היפוך צבעים."</string>
     <string name="accessibility_disable_animations" msgid="2993529829457179058">"הסרת אנימציות"</string>
-    <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"הפחתת התנועה במסך"</string>
+    <string name="accessibility_disable_animations_summary" msgid="5828228669556554565">"יהיו פחות תנועות במסך"</string>
     <string name="accessibility_toggle_primary_mono_title" msgid="7587152099472946571">"אודיו במונו"</string>
     <string name="accessibility_toggle_primary_mono_summary" msgid="1935283927319407303">"שילוב ערוצים כאשר מפעילים אודיו"</string>
     <string name="accessibility_toggle_primary_balance_title" msgid="7332275200153366714">"איזון אודיו"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"תצוגה מקדימה"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"אפשרויות רגילות"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"שפה"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"גודל כתובית"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"סגנון כתוביות"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"אפשרויות מותאמות אישית"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"צבע הרקע"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"‏האם לנתק את ה-VPN הזה?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ניתוק"</string>
     <string name="vpn_version" msgid="6344167191984400976">"גרסה"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"גרסה <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"‏אני רוצה לשכוח את ה-VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"‏האם להחליף רשת VPN קיימת?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"‏האם להגדיר את רשת ה-VPN בחיבור תמידי?"</string>
@@ -3710,7 +3708,7 @@
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"הגדרות נוספות זמינות בתוך האפליקציה הזו"</string>
     <string name="notification_polite_title" msgid="6121016426991791557">"הפוגת התראות"</string>
     <string name="notification_polite_main_control_title" msgid="5812529809151927149">"שימוש בהפוגת התראות"</string>
-    <string name="notification_polite_description" msgid="5497748284893832854">"כשמתקבלות הרבה התראות בפרק זמן קצר, המכשיר ינמיך את עוצמת הקול ויצמצם את כמות ההתראות למשך עד שתי דקות. שיחות, התרעות ושיחות בעדיפות גבוהה לא מושפעות. \n\nניתן למצוא התראות שהתקבלו במהלך ההפוגה על ידי משיכה למטה מהחלק העליון של המסך."</string>
+    <string name="notification_polite_description" msgid="5497748284893832854">"אם קיבלת הרבה התראות תוך זמן קצר, המכשיר ינמיך את עוצמת הקול ויצמצם את ההפרעות למשך עד 2 דקות. ההפוגה לא חלה על שיחות, שעונים מעוררים ושיחות בעדיפות גבוהה. \n\nכדי למצוא את ההתראות שהתקבלו במהלך ההפוגה, מושכים למטה מראש המסך."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"הפעלה בפרופילי העבודה"</string>
     <string name="notification_polite_work_summary" msgid="5014189280132951378">"הפעלה באפליקציות של פרופיל העבודה"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"‏שירותי סיוע של VR"</string>
@@ -3837,7 +3835,7 @@
     <string name="zen_mode_messages_list" msgid="5431014101342361882">"הודעות"</string>
     <string name="zen_mode_messages_title" msgid="1777598523485334405">"הודעות"</string>
     <string name="zen_mode_messages_header" msgid="253721635061451577">"הודעות שיכולות להפריע"</string>
-    <string name="zen_mode_messages_footer" msgid="6002468050854126331">"כדי שבטוח יישמע צליל התראה כשייכנסו הודעות מורשות, צריך לוודא שהמכשיר נמצא במצב \'צלצול\'"</string>
+    <string name="zen_mode_messages_footer" msgid="6002468050854126331">"כדי שהמכשיר ישמיע צליל התראה כשמגיעות הודעות מורשות, צריך להעביר אותו למצב \'צלצול\'"</string>
     <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"במצב \'<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\', הודעות נכנסות ייחסמו. ניתן לשנות את ההגדרות כדי לאפשר לחברים, לבני משפחה או לאנשי קשר אחרים ליצור איתך קשר."</string>
     <string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"כל ההודעות יכולות להגיע אליך"</string>
     <string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"כל השיחות יכולות להגיע אליך"</string>
@@ -3940,7 +3938,7 @@
     <string name="zen_mode_blurb_immersive" msgid="5884004861848687869">"חוסמים הסחות דעת והפרעות במכשיר ומתרכזים טוב יותר"</string>
     <string name="zen_mode_blurb_theater" msgid="2999237960059524225">"מסירים את כל הסחות דעת ונהנים מסביבה שקטה"</string>
     <string name="zen_mode_blurb_managed" msgid="5473921634985032149">"התאמה אישית של חווית המשתמש ושל ההגדרות במכשיר למשתמשים שונים"</string>
-    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"מצמצמים הפרעות: אפשר לקבל התראות רק מאפליקציות מסוימות ומאנשים חשובים"</string>
+    <string name="zen_mode_blurb_generic" msgid="3041601339807075625">"פחות הסחות דעת: יתקבלו התראות רק מאפליקציות נבחרות ומאנשים חשובים"</string>
     <string name="zen_mode_inspiration_schedule_time" msgid="5596540503159096153">"הגדרת מצב עם לוח זמנים קבוע"</string>
     <string name="zen_mode_inspiration_schedule_calendar" msgid="3678727180860212700">"שמירה על סנכרון המכשיר עם האירועים של היום"</string>
     <string name="zen_mode_inspiration_bedtime" msgid="6294822414181670666">"מתעוררים עם תחושה שהכול מושלם"</string>
@@ -5369,7 +5367,7 @@
     <string name="audio_sharing_stream_name_title" msgid="8156859441897180940">"שם"</string>
     <string name="audio_sharing_stream_password_title" msgid="7026649168165764602">"סיסמה"</string>
     <string name="audio_sharing_stream_compatibility_title" msgid="5690947186724469918">"שיפור התאימות"</string>
-    <string name="audio_sharing_stream_compatibility_description" msgid="8170241188606110963">"ההגדרה הזו עוזרת למכשירים מסוימים, כמו מכשירי שמיעה, להתחבר על ידי הפחתת איכות האודיו"</string>
+    <string name="audio_sharing_stream_compatibility_description" msgid="8170241188606110963">"ההגדרה הזו מורידה את איכות האודיו כדי שמכשירים כמו מכשירי שמיעה יוכלו להתחבר"</string>
     <string name="audio_sharing_stream_compatibility_disabled_description" msgid="2586408353546825682">"ההגדרה הזו משביתה את שיתוף האודיו כדי להגדיר את התאימות"</string>
     <string name="audio_sharing_nearby_audio_title" msgid="4795438407040677177">"האזנה לאודיו בקרבת מקום"</string>
     <string name="audio_sharing_footer_description" msgid="4786942197840271680">"‏התכונה \'שיתוף אודיו\' תומכת ב-‎Auracast™‎"</string>
@@ -5463,13 +5461,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"חיפוש בהגדרות"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"אנשי קשר, אחסון, חשבון"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"אחסון אנשי הקשר"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"מכשיר בלבד"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"אנשי קשר חדשים לא יסונכרנו עם חשבון כלשהו"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"אנשי הקשר יישמרו במכשיר ויוסנכרנו עם החשבון שלך כברירת מחדל"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"לא הוגדרה ברירת מחדל"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"כדי להתחיל, צריך להוסיף חשבון"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"מקיפים ומחפשים"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"לוחצים לחיצה ארוכה על לחצן דף הבית או על נקודת האחיזה לניווט כדי להפעיל חיפוש של התוכן שמופיע על המסך."</string>
 </resources>
diff --git a/res/values-ja/arrays.xml b/res/values-ja/arrays.xml
index e5ac9e5..82c1342 100644
--- a/res/values-ja/arrays.xml
+++ b/res/values-ja/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"雪の結晶"</item>
     <item msgid="7952183800501346803">"ビーチパラソル"</item>
     <item msgid="799139025758265891">"工具セット"</item>
-    <item msgid="1330084588359129896">"テント"</item>
+    <item msgid="8112685757657659269">"ピアノ"</item>
     <item msgid="3861584909935022342">"フィルムリール"</item>
     <item msgid="5827426100157335512">"書籍"</item>
     <item msgid="8585828346253128384">"ハスの花"</item>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 213c202..130667c 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ネットワークとワイヤレス通信を使用して自動的に設定します"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"タイムゾーンの自動設定"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"付近のモバイル ネットワークに基づいて自動的に設定します"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"可能であればデバイスの位置情報で自動設定します。アクティブな Wi-Fi 接続が必要になることもあります。"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"可能であればデバイスの位置情報で自動設定します"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"言語 / 地域で一般的な形式を使用する"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24時間表示"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"時刻"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"キーボードの同じキーが連続で押された場合は、その操作を無視します"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"バウンスキーのしきい値"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"キーボードのキーが連続で押されても無視する時間を選択します"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"カスタム"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"カスタム値"</string>
     <string name="slow_keys" msgid="2891452895499690837">"スローキー"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"押されたキーが有効になるまでの時間を設定します"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"固定キー"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ショートカットで複数のキーを同時に押すのではなく 1 つずつ押します"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"マウスキー"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"キーボードを使用してポインタを操作します"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"マウスの逆スクロール"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"上にスクロールすると、ページ下部に移動します"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"左右のボタンを入れ替える"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"左のマウスボタンを右のマウスボタンとして使用します"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"キーボード ショートカット"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ショートカットのリストを表示"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"仕事用プロファイルのキーボードとツール"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> の新しいキーを選択してください"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"物理キーボードのユーザー補助"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"固定キー、バウンスキー、マウスキー"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"キーの繰り返し"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"リピートまでの時間"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"リピート速度"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"キーを長押しすると、キーを離すまでその文字が繰り返されます"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"レイアウト: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"デフォルト"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"自動: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"プレビュー"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"標準オプション"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"言語"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"字幕のサイズ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"字幕スタイル"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"カスタマイズオプション"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"背景色"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"この VPN の接続を解除しますか?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"接続を解除"</string>
     <string name="vpn_version" msgid="6344167191984400976">"バージョン"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"バージョン <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN を削除"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"既存の VPN を置き換えますか?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"常時接続 VPN を設定しますか?"</string>
@@ -5451,12 +5457,19 @@
     <string name="audio_streams_main_page_password_dialog_cannot_edit" msgid="9020898619297520153">"共有中はパスワードを編集できません。パスワードを変更するには、まず音声の共有を OFF にしてください。"</string>
     <string name="audio_streams_qr_code_scanner_label" msgid="8799703301071378034">"QR コードスキャナ"</string>
     <string name="audio_streams_qr_code_help_with_link" msgid="5542328067190486479"><annotation id="link">"ご不明な点がある場合"</annotation></string>
-    <string name="homepage_search" msgid="6759334912284663559">"検索設定"</string>
+    <string name="homepage_search" msgid="6759334912284663559">"設定を検索"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"連絡先, ストレージ, アカウント"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"連絡先アプリのストレージ"</string>
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"デバイスのみ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"新しい連絡先はアカウントと同期されません"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"デフォルトでは、連絡先はデバイスに保存されて、アカウントと同期されます"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"デフォルトは設定されていません"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"開始するにはアカウントを追加してください"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"かこって検索"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ホームボタンまたはナビゲーション ハンドルを長押しすると、画面上のコンテンツを使って検索できます。"</string>
 </resources>
diff --git a/res/values-ka/arrays.xml b/res/values-ka/arrays.xml
index cd428c1..ba848ad 100644
--- a/res/values-ka/arrays.xml
+++ b/res/values-ka/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ფიფქი"</item>
     <item msgid="7952183800501346803">"სანაპიროს ქოლგა"</item>
     <item msgid="799139025758265891">"სახელოსნოს ხელსაწყოები"</item>
-    <item msgid="1330084588359129896">"კარავი"</item>
+    <item msgid="8112685757657659269">"პიანინო"</item>
     <item msgid="3861584909935022342">"კინოკადრი"</item>
     <item msgid="5827426100157335512">"დაჯავშნა"</item>
     <item msgid="8585828346253128384">"ლოტოსის ყვავილი"</item>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index 6f64a8b..e1bab03 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ავტომატურად დაყენება თქვენი ქსელის და უსადენო სიგნალების გამოყენებით"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ავტომატური სასაათო სარტყელი"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ავტომატურად დაყენება თქვენთან ახლომდებარე მობილურ ქსელებზე დაყრდნობით"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ავტომატურად დაყენება მოწყობილობის მდებარეობით, თუ ხელმისაწვდომია. შეიძლება მოითხოვოს აქტიური Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ავტომატურად დაყენება მოწყობილობის მდებარეობით, თუ ხელმისაწვდომია"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ლოკალის ნაგულისხმევი პარამეტრის გამოყენება"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-საათიანი ფორმატი"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"დრო"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"კლავიატურა აიგნორებს ერთსა და იმავე კლავიშზე სწრაფ, განმეორებით დაჭერებს"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"კლავიშების ასხლეტის ზღურბლი"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"აირჩიეთ დროის ხანგრძლივობა, რომლის განმავლობაშიც თქვენი კლავიატურა აიგნორებს კლავიშის განმეორებით დაჭერას"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 წმ"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 წმ"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 წმ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 წმ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 წმ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 წმ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"მორგებული"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"მორგებული მნიშვნელობა"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ნელი კლავიშები"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"არეგულირებს დროს, რომელიც სჭირდება კლავიშის დაჭერას აქტივაციისთვის"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"კლავიშების ფიქსაცია"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"მალსახმობებისთვის დააჭირეთ კლავიშებს ცალ-ცალკე და არა ერთდროულად"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"მაუსის კლავიშები"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"თქვენი კლავიატურის გამოყენება კურსორის სამართავად"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"მაუსით უკუგადაადგილება"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ზემოთ გადაადგილება გვერდის ჩამოსაწევად"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"მარცხენა და მარჯვენა ღილაკების ფუნქციის გაცვლა"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"გამოიყენეთ მაუსის მარცხენა ღილაკი მარჯვენის ფუნქციით"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"კლავიატურის მალსახმობები"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"მალსახმობების სიის ჩვენება"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"სამსახურის პროფილის კლავიატურა და ხელსაწყოები"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"აირჩიეთ ახალი კლავიში <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>-ისთვის:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ფიზიკური კლავიატურის მისაწვდომობა"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"კლავიშების ფიქსაცია, მრავალჯერადი დაჭერის შეზღუდვა კლავიშებზე, მაუსის კლავიშები"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"განმეორებადი კლავიშები"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"დაყოვნება განმეორებამდე"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"გამეორების სიხშირე"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ხანგრძლივად დააჭირეთ კლავიშზე, რათა განმეორებით აიკრიფოს სიმბოლო, სანამ კლავიშიდან თითს აიღებთ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> განლაგება"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ნაგულისხმევი"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ავტომატური: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"წინასწარ ნახვა"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"სტანდარტული პარამეტრები"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ენა"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"სუბტიტრების ზომა"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"ტიტრის სტილი"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"მორგებული პარამეტრები"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ფონის ფერი"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"გსურთ ამ VPN-თან კავშირის გაწყვეტა?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"კავშირის გაწყვეტა"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ვერსია"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ვერსია <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN-ის დავიწყება"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"გსურთ არსებული VPN-ის ჩანაცვლება?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"გსურთ ყოველთვის ჩართული VPN-ის დაყენება?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"მხოლოდ მოწყობილობა"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ახალი კონტაქტები არ სინქრონიზდება ანგარიშთან"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"კონტაქტები შეინახება თქვენს მოწყობილობაში და სინქრონიზდება თქვენს ანგარიშთან ნაგულისხმევად"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ნაგულისხმევი ანგარიში დაყენებული არ არის"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"დასაწყებად დაამატეთ ანგარიში"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ძიება წრის მოხაზვით"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ეკრანზე არსებული კონტენტის გამოყენებით ძიებისთვის ხანგრძლივად შეეხეთ მთავარი ეკრანის ღილაკს ან ნავიგაციის ზოლს."</string>
 </resources>
diff --git a/res/values-kk/arrays.xml b/res/values-kk/arrays.xml
index 4e7f4d0..5efc68b 100644
--- a/res/values-kk/arrays.xml
+++ b/res/values-kk/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Ұлпа қар"</item>
     <item msgid="7952183800501346803">"Жағажай қолшатыры"</item>
     <item msgid="799139025758265891">"Шеберхана құралдары"</item>
-    <item msgid="1330084588359129896">"Шатыр"</item>
+    <item msgid="8112685757657659269">"Пианино"</item>
     <item msgid="3861584909935022342">"Кинопленка"</item>
     <item msgid="5827426100157335512">"Кітап"</item>
     <item msgid="8585828346253128384">"Лотос гүлі"</item>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index db84d7c..93feb80 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Желі мен сымсыз сигналдар арқылы автоматты түрде орнатылады."</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Aвтоматты уақыт белдеуі"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Маңайдағы мобильдік желілер негізінде автоматты түрде орнату"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Құрылғы локациясы (қолжетімді болса) арқылы автоматты түрде орнатылады. Қосулы Wi-Fi байланысы да қажет болуы мүмкін."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Құрылғы локациясы (қолжетімді болса) арқылы автоматты түрде орнатылады."</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Жергілікті әдепкі формат"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 сағаттық формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Уақыт"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Арнайы мүмкіндіктер"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физикалық пернетақта"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Қайтару пернелері"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Пернетақта бір перненің тез арада қайталап басылуын елемейді."</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Пернелердің байқаусызда басылуын елемеу шегі"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Пернетақта пернелердің қайталап басылуын елемейтін уақыт ұзақтығын таңдаңыз."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 с"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 с"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 с"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Арнаулы"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"арнаулы мән"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Баяу пернелер"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Басқаннан кейін перненің іске қосылу уақытын реттейді."</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Бекітілген пернелер"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Жылдам пәрмендерді пайдалану үшін пернелерді бірге баспай-ақ, бір пернені бір рет бассаңыз болады."</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Тінтуір пернелері"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Меңзерді басқару үшін пернетақтаны пайдаланыңыз."</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Тінтуірмен кері айналдыру"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Бетті төмен жылжыту үшін жоғары қарай айналдырыңыз."</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Сол және оң жақ түймелердің орындарын ауыстырыңыз"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Тінтуірдің сол жақ түймесін оң жақ түйме ретінде пайдаланыңыз."</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Перне тіркесімдері"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Перне тіркесімдерінің тізімін көрсету"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жұмыс профилі пернетақталары және құралдары"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> жаңа пернесін таңдау:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Физикалық пернетақтаның арнайы мүмкіндіктері"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Бекітілген пернелер, серпімді пернелер, тінтуір пернелері"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Пернелерді қайталау"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Қайталау алдындағы кідіріс"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Қайталау жиілігі"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Пернені басып тұру арқылы таңбаны қайталап жазу"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> форматы"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Әдепкі"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматты: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Алғы көрініс"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандартты опциялар"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Тіл"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Жазу өлшемі"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Субтитр стилі"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Реттеу опциялары"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Артқы фон түсі"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Осы VPN желісі ажыратылсын ба?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Ажырату"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Нұсқа"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> нұсқасы"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN ұмыту"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Бар VPN қолданбасын ауыстыру керек пе?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Әрқашан қосулы VPN режимін орнату"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Іздеу параметрлері"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"контактілер, жад, аккаунт"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Контактілер жады"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Тек құрылғы"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Жаңа контактілер аккаунтпен синхрондалмайды."</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Контактілер әдепкісінше аккаунтыңызбен синхрондалады және құрылғыңызға сақталады."</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Әдепкі аккаунт таңдалмаған"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Бастау үшін аккаунт қосыңыз."</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Қоршау арқылы іздеу"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Экрандағы контенттің көмегімен іздеу үшін негізгі экран түймесін немесе навигация тетігін басып тұрыңыз."</string>
 </resources>
diff --git a/res/values-km/arrays.xml b/res/values-km/arrays.xml
index 5d97701..e0d7b35 100644
--- a/res/values-km/arrays.xml
+++ b/res/values-km/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ផ្កាព្រិល"</item>
     <item msgid="7952183800501346803">"ឆត្រនៅតាមឆ្នេរ"</item>
     <item msgid="799139025758265891">"ឧបករណ៍រោងជាង"</item>
-    <item msgid="1330084588359129896">"តង់"</item>
+    <item msgid="8112685757657659269">"ព្យាណូ"</item>
     <item msgid="3861584909935022342">"ដុំហ្វីលភាពយន្ត"</item>
     <item msgid="5827426100157335512">"សៀវភៅ"</item>
     <item msgid="8585828346253128384">"ផ្កា​ឈូក"</item>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b49f011..2d9984a 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"កំណត់​ដោយស្វ័យប្រវត្តិ​ដោយប្រើ​បណ្ដាញ និង​សញ្ញា​ឥតខ្សែ​របស់អ្នក"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ល្វែង​ម៉ោង​ស្វ័យ​ប្រវត្តិ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"កំណត់​ដោយ​ស្វ័យប្រវត្តិ​ដោយ​ផ្អែកលើ​បណ្ដាញ​ទូរសព្ទ​ចល័ត​ដែលនៅជិតអ្នក"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"កំណត់ដោយស្វ័យប្រវត្តិដោយប្រើទីតាំងឧបករណ៍អ្នក ប្រសិនបើមាន។ ក៏អាចតម្រូវឱ្យមានការតភ្ជាប់ Wifi ដែលកំពុងដំណើរការផងដែរ។"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"កំណត់ដោយស្វ័យប្រវត្តិដោយប្រើទីតាំងឧបករណ៍អ្នក ប្រសិនបើមាន"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ប្រើ​តាមតំបន់"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"ប្រើ​ប្រព័ន្ធ ២៤ ម៉ោង"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ម៉ោង"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ភាពងាយស្រួល"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ក្ដារចុច​រូបវ័ន្ត"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"គ្រាប់ចុចឡង"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"ក្ដារចុចមិនអើពើនឹងការចុចដដែលៗយ៉ាងរហ័សនៃគ្រាប់ចុចដដែល"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"កម្រិតកំណត់គ្រាប់ចុចឡង"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ជ្រើសរើសរយៈពេលដែលក្តារចុចរបស់អ្នកមិនអើពើនឹងការចុចគ្រាប់ចុចដដែលៗ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 វិ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 វិ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 វិ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"ផ្ទាល់ខ្លួន"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"តម្លៃផ្ទាល់ខ្លួន"</string>
     <string name="slow_keys" msgid="2891452895499690837">"គ្រាប់ចុចយឺត"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"កែតម្រូវរយៈពេលនៃការចុចគ្រាប់ចុចដើម្បីបើកដំណើរការ"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"គ្រាប់ចុចស្អិត"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ចុចគ្រាប់ចុចមួយក្នុងមួយលើកសម្រាប់ផ្លូវកាត់ជំនួសឱ្យការចុចគ្រាប់ចុចឱ្យជាប់រួមគ្នា"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"គ្រាប់ចុច​ម៉ៅស៍"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ប្រើក្តារចុចរបស់អ្នកដើម្បីគ្រប់គ្រងសញ្ញាព្រួញ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ការរំកិល​ម៉ៅស៍​បញ្រ្ចាស"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"រំកិល​ឡើងលើ ដើម្បីផ្លាស់ទី​ទំព័រចុះក្រោម"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ដោះដូររវាងប៊ូតុងឆ្វេង និងប៊ូតុងស្ដាំ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ប្រើប៊ូតុងម៉ៅស៍ខាងឆ្វេងជាប៊ូតុងម៉ៅស៍ខាងស្ដាំរបស់អ្នក"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ផ្លូវកាត់ក្តារចុច"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"បង្ហាញបញ្ជីផ្លូវកាត់"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ឧបករណ៍ និងក្ដារចុច​កម្រងព័ត៌មាន​ការងារ"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"ជ្រើសរើសប៊ូតុងថ្មីសម្រាប់ <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>៖"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ភាពងាយស្រួលប្រើប្រាស់ក្ដារចុចរូបវន្ត"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"គ្រាប់ចុចស្អិត គ្រាប់ចុចលោត គ្រាប់ចុចម៉ៅស៍"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"គ្រាប់ចុចដែលចុចឡើងវិញ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ពន្យារពេលមុនការចុចឡើងវិញ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"អត្រា​ចុច​ឡើងវិញ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ចុចឱ្យជាប់លើគ្រាប់ចុចណាមួយ ដើម្បីចុចតួអក្សររបស់វាឡើងវិញ រហូតទាល់តែគ្រាប់ចុចត្រូវបានលែង"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"ប្លង់ <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"លំនាំដើម"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ស្វ័យប្រវត្តិ៖ <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"មើលសាកល្បង"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ជម្រើស​ស្តង់​ដារ​"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ភាសា"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ទំហំអក្សររត់"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"រចនាប័ទ្ម​អក្សររត់"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ជម្រើស​តាម​តម្រូវ​ការ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ពណ៌​ផ្ទៃ​ខាងក្រោយ"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ផ្តាច់ VPN នេះ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ផ្ដាច់"</string>
     <string name="vpn_version" msgid="6344167191984400976">"កំណែ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"កំណែ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"បំភ្លេច VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ជំនួស VPN ដែលមានស្រាប់ឬ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"កំណត់ VPN ឲ្យបើកជានិច្ចឬ?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ស្វែងរកការកំណត់"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contacts, ទំហំ​ផ្ទុក, គណនី"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"ទំហំផ្ទុក Contacts"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"សម្រាប់តែឧបករណ៍"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ទំនាក់ទំនងថ្មីៗនឹងមិនត្រូវបានធ្វើសមកាលកម្មជាមួយគណនីទេ"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ទំនាក់ទំនងនឹងត្រូវបានរក្សាទុកទៅក្នុងឧបករណ៍របស់អ្នក និងធ្វើសមកាលកម្មទៅគណនីរបស់អ្នកតាមលំនាំដើម"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"មិន​បាន​កំណត់​លំនាំដើម"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"សូមបញ្ចូល​គណនី ដើម្បីចាប់ផ្ដើម"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"គូររង្វង់ដើម្បីស្វែងរក"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ចុចប៊ូតុងទំព័រ​ដើម ឬដងរុករកឱ្យជាប់ ដើម្បីស្វែងរកដោយប្រើខ្លឹមសារនៅលើអេក្រង់របស់អ្នក។"</string>
 </resources>
diff --git a/res/values-kn/arrays.xml b/res/values-kn/arrays.xml
index 3487549..dcf2761 100644
--- a/res/values-kn/arrays.xml
+++ b/res/values-kn/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ಸ್ನೋಫ್ಲೇಕ್"</item>
     <item msgid="7952183800501346803">"ಬೀಚ್ ಛತ್ರಿಗಳು"</item>
     <item msgid="799139025758265891">"ಕಾರ್ಯಾಗಾರದ ಟೂಲ್‌ಗಳು"</item>
-    <item msgid="1330084588359129896">"ಟೆಂಟ್"</item>
+    <item msgid="8112685757657659269">"ಪಿಯಾನೋ"</item>
     <item msgid="3861584909935022342">"ಫಿಲಂ ರೀಲ್"</item>
     <item msgid="5827426100157335512">"ಕಾಯ್ದಿರಿಸಿ"</item>
     <item msgid="8585828346253128384">"ಕಮಲದ ಹೂವು"</item>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 6fd0df1..9fb06a9 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ಮತ್ತು ವೈರ್‌ಲೆಸ್ ಸಿಗ್ನಲ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೆಟ್ ಮಾಡಿ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ಸ್ವಯಂಚಾಲಿತ ಸಮಯವಲಯ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ನಿಮ್ಮ ಸಮೀಪದ ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್‌ಗಳನ್ನು ಆಧರಿಸಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೆಟ್ ಮಾಡಿ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ಲಭ್ಯವಿದ್ದರೆ, ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಬಳಸಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೆಟ್ ಮಾಡಿ. ಸಕ್ರಿಯ Wi-Fi ಕನೆಕ್ಷನ್ ಬೇಕಾಗಬಹುದು."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ಲಭ್ಯವಿದ್ದರೆ, ನಿಮ್ಮ ಸಾಧನದ ಸ್ಥಳವನ್ನು ಬಳಸಿ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೆಟ್ ಮಾಡಿ"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ಭಾಷೆ ಡೀಫಾಲ್ಟ್ ಬಳಸಿ"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-ಗಂಟೆ ಫಾರ್ಮ್ಯಾಟ್‌‌ ಬಳಸಿ"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ಸಮಯ"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"ಒಂದೇ ಕೀನ ತ್ವರಿತ ಪುನರಾವರ್ತಿತ ಪ್ರೆಸ್‌ಗಳನ್ನು ಕೀಬೋರ್ಡ್ ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ಬೌನ್ಸ್ ಕೀ ಥ್ರೆಶೋಲ್ಡ್"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಪುನರಾವರ್ತಿತ ಕೀ ಪ್ರೆಸ್‌ಗಳನ್ನು ನಿರ್ಲಕ್ಷಿಸಬೇಕಾದ ಸಮಯದ ಅವಧಿಯನ್ನು ಆರಿಸಿ"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2ಸೆ"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4ಸೆ"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6ಸೆ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2ಸೆ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4ಸೆ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6ಸೆ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"ಕಸ್ಟಮ್"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"ಕಸ್ಟಮ್ ಮೌಲ್ಯ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ಸ್ಲೋ ಕೀಗಳು"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"ಕೀ ಪ್ರೆಸ್ ಸಕ್ರಿಯಗೊಳ್ಳಲು ತೆಗೆದುಕೊಳ್ಳುವ ಸಮಯವನ್ನು ಅಡ್ಜಸ್ಟ್ ಮಾಡುತ್ತದೆ"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ಸ್ಟಿಕಿ ಕೀಗಳು"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ಕೀಗಳನ್ನು ಜೊತೆಯಾಗಿ ಕೆಳಗೆ ಹಿಡಿದಿಟ್ಟುಕೊಳ್ಳುವ ಬದಲಾಗಿ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳಿಗಾಗಿ ಒಂದು ಬಾರಿ ಒಂದು ಕೀ ಅನ್ನು ಒತ್ತಿ"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"ಮೌಸ್ ಕೀಗಳು"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"ಪಾಯಿಂಟರ್ ಅನ್ನು ಕಂಟ್ರೋಲ್ ಮಾಡಲು ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಅನ್ನು ಬಳಸಿ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ಮೌಸ್ ಹಿಮ್ಮುಖ ಸ್ಕ್ರಾಲ್ ಮಾಡುವಿಕೆ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ಪುಟವನ್ನು ಕೆಳಕ್ಕೆ ಸರಿಸಲು ಮೇಲಕ್ಕೆ ಸ್ಕ್ರಾಲ್ ಮಾಡಿ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ಎಡ ಮತ್ತು ಬಲ ಬಟನ್‌ಗಳನ್ನು ಬದಲಾಯಿಸಿ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ಎಡ ಮೌಸ್ ಬಟನ್ ಅನ್ನು ನಿಮ್ಮ ಬಲ ಬಟನ್‌ ಆಗಿ ಬಳಸಿ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ಕೀಬೋರ್ಡ್ ಶಾರ್ಟ್‌ಕಟ್‌ಗಳು"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ಶಾರ್ಟ್‌ಕಟ್‌ಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಿ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ಉದ್ಯೋಗ ಪ್ರೊಫೈಲ್ ಕೀಬೋರ್ಡ್‌ಗಳು ಮತ್ತು ಉಪಕರಣಗಳು"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> ಗಾಗಿ ಹೊಸ ಕೀ ಆಯ್ಕೆಮಾಡಿ:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ಭೌತಿಕ ಕೀಬೋರ್ಡ್ ಆ್ಯಕ್ಸೆಸಿಬಿಲಿಟಿ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ಸ್ಟಿಕಿ ಕೀಗಳು, ಬೌನ್ಸ್ ಕೀಗಳು, ಮೌಸ್ ಕೀಗಳು"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ಕೀಗಳನ್ನು ಪುನರಾವರ್ತಿಸಿ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ಪುನರಾವರ್ತನೆಗೆ ಮೊದಲು ವಿಳಂಬ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ಪುನರಾವರ್ತಿತ ದರ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ಕೀ ಬಿಡುಗಡೆ ಆಗುವವರೆಗೆ ಅದರ ಅಕ್ಷರವನ್ನು ಪುನರಾವರ್ತಿಸಲು ಕೀಯನ್ನು ಹೋಲ್ಡ್ ಮಾಡಿ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> ಲೇಔಟ್"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ಡಿಫಾಲ್ಟ್"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ಆಟೋಮೆಟಿಕ್: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ಪೂರ್ವವೀಕ್ಷಣೆ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ಪ್ರಮಾಣಿತ ಆಯ್ಕೆಗಳು"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ಭಾಷೆ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ಕ್ಯಾಪ್ಶನ್ ಗಾತ್ರ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"ಶೀರ್ಷಿಕೆಯ ಶೈಲಿ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ಕಸ್ಟಮ್‌ ಆಯ್ಕೆಗಳು"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ಹಿನ್ನೆಲೆ ಬಣ್ಣ"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ಈ VPN ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸುವುದೇ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿ"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ಆವೃತ್ತಿ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ಆವೃತ್ತಿ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN ಮರೆತುಬಿಡು"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ VPN ಸ್ಥಾನಾಂತರಿಸುವುದೇ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"VPN ಯಾವಾಗಲೂ ಆನ್ ಆಗಿರುವಂತೆ ಹೊಂದಿಸುವುದೇ?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ಸಾಧನ ಮಾತ್ರ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ಹೊಸ ಸಂಪರ್ಕಗಳನ್ನು ಖಾತೆಯ ಜೊತೆ ಸಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ಸಂಪರ್ಕಗಳನ್ನು ನಿಮ್ಮ ಸಾಧನದಲ್ಲಿ ಸೇವ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಡೀಫಾಲ್ಟ್ ಆಗಿ ನಿಮ್ಮ ಖಾತೆಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತದೆ"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ಡೀಫಾಲ್ಟ್ ಆಗಿ ಯಾವುದನ್ನೂ ಸೆಟ್ ಮಾಡಿಲ್ಲ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ಪ್ರಾರಂಭಿಸಲು ಒಂದು ಖಾತೆಯನ್ನು ಸೇರಿಸಿ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ಹುಡುಕಲು ಒಂದು ಸರ್ಕಲ್ ರಚಿಸಿ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ನಿಮ್ಮ ಸ್ಕ್ರೀನ್ ಮೇಲಿನ ಕಂಟೆಂಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಹುಡುಕಲು ಹೋಮ್ ಬಟನ್ ಅಥವಾ ನ್ಯಾವಿಗೇಶನ್ ಹ್ಯಾಂಡಲ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಒತ್ತಿ ಹಿಡಿಯಿರಿ."</string>
 </resources>
diff --git a/res/values-ko/arrays.xml b/res/values-ko/arrays.xml
index babd76d..0d2685a 100644
--- a/res/values-ko/arrays.xml
+++ b/res/values-ko/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"눈송이"</item>
     <item msgid="7952183800501346803">"비치 파라솔"</item>
     <item msgid="799139025758265891">"워크숍 도구"</item>
-    <item msgid="1330084588359129896">"텐트"</item>
+    <item msgid="8112685757657659269">"피아노"</item>
     <item msgid="3861584909935022342">"필름 릴"</item>
     <item msgid="5827426100157335512">"책"</item>
     <item msgid="8585828346253128384">"연꽃"</item>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 22c7755..1a31ce3 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"네트워크 및 무선 신호를 사용하여 자동으로 설정합니다."</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"시간대 자동 설정"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"주변의 모바일 네트워크를 기반으로 자동으로 설정합니다."</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"가능한 경우, 기기 위치를 사용하여 자동으로 설정합니다. 활성 상태의 Wi-Fi 연결도 필요할 수 있습니다."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"가능한 경우, 기기 위치를 사용하여 자동으로 설정합니다."</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"언어 기본값 사용"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24시간 형식 사용"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"시간"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"접근성"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"물리적 키보드"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"바운스 키"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"동일한 키를 빠르게 반복해서 누를 시 키보드에서 이를 무시합니다."</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"바운스 키 기준점"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"키보드에서 반복 키 입력을 무시하는 시간을 선택하세요"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2초"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4초"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6초"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"맞춤"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"맞춤 값"</string>
     <string name="slow_keys" msgid="2891452895499690837">"느린 키"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"키를 누를 때 활성화하기까지 걸리는 시간을 조정합니다."</string>
     <string name="sticky_keys" msgid="7317317044898161747">"고정키"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"단축키를 사용할 때 키를 함께 누르지 않고 한 번에 하나씩 누릅니다"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"마우스 키"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"키보드를 사용하여 포인터를 제어합니다."</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"마우스 역방향 스크롤"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"위로 스크롤하여 페이지 아래로 이동합니다."</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"왼쪽 및 오른쪽 버튼 바꾸기"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"왼쪽 마우스 버튼을 오른쪽 버튼으로 사용합니다."</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"단축키"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"단축키 목록 표시"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"직장 프로필 키보드 및 도구"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>의 새 키 선택:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"실제 키보드 접근성"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"고정키, 바운스 키, 마우스 키"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"키 반복"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"반복 전 지연"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"반복 속도"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"키를 길게 눌러 문자를 반복해서 입력하고 키에서 손을 뗍니다."</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> 레이아웃"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"기본"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"자동: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"미리보기"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"표준 옵션"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"언어"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"자막 크기"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"자막 스타일"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"맞춤설정 옵션"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"배경색"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"이 VPN을 연결 해제하시겠습니까?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"연결 해제"</string>
     <string name="vpn_version" msgid="6344167191984400976">"버전"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"버전 <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN 삭제"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"기존 VPN을 교체하시겠습니까?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"연결 유지 VPN을 설정하시겠습니까?"</string>
@@ -3823,7 +3821,7 @@
     <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{없음}=1{대화 1개}other{대화 #개}}"</string>
     <string name="zen_mode_from_conversations_settings" msgid="2411930666794576607">"대화 설정"</string>
     <string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"예외 대상"</string>
-    <string name="zen_mode_people_footer" msgid="7710707353004137431">"메시지 또는 전화 앱에서 나에게 알림을 전송할 수 없을 때에도 여기에서 선택한 사용자는 앱을 통해 나에게 연락할 수 있습니다."</string>
+    <string name="zen_mode_people_footer" msgid="7710707353004137431">"메시지 또는 전화 앱에서 나에게 알림을 전송할 수 없을 때에도 여기에서 선택한 사람은 이러한 앱을 통해 나에게 연락할 수 있습니다."</string>
     <string name="zen_mode_calls_title" msgid="2078578043677037740">"전화"</string>
     <string name="zen_mode_calls" msgid="7653245854493631095">"전화"</string>
     <string name="zen_mode_calls_list" msgid="5044730950895749093">"전화"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"설정 검색"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"연락처, 저장소, 계정"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"연락처 저장소"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"기기만"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"새 연락처는 계정과 동기화되지 않습니다."</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"연락처가 기기에 저장되고 기본적으로 계정과 동기화됩니다."</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"기본 설정 없음"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"계정을 추가하여 시작하세요."</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"서클 투 서치"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"화면의 콘텐츠를 사용해 검색하려면 홈 버튼 또는 탐색 핸들을 길게 터치합니다."</string>
 </resources>
diff --git a/res/values-ky/arrays.xml b/res/values-ky/arrays.xml
index ecd3a22..7514614 100644
--- a/res/values-ky/arrays.xml
+++ b/res/values-ky/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Кар бүртүгү"</item>
     <item msgid="7952183800501346803">"Кумдуу жээктеги чатыр"</item>
     <item msgid="799139025758265891">"Устаканадагы аспаптар"</item>
-    <item msgid="1330084588359129896">"Чатыр"</item>
+    <item msgid="8112685757657659269">"Пианино"</item>
     <item msgid="3861584909935022342">"Тасма түрмөгү"</item>
     <item msgid="5827426100157335512">"Аудиокитеп"</item>
     <item msgid="8585828346253128384">"Лотос гүлү"</item>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 877a930..6897b09 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Тармак жана зымсыз сигналдар аркылуу автоматтык түрдө орнотуу"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Убакыт алкагын автоматтык түрдө аныктоо"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Жаныңыздагы мобилдик тармактардын негизинде автоматтык түрдө орнотуу"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Түзмөктүн турган жеринин негизинде автоматтык түрдө орнотуу. Wifi\'га туташуу керектелиши мүмкүн."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Түзмөктүн турган жеринин негизинде автоматтык түрдө орнотуу"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Демейки жергиликтүү форматты колдонуу"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 сааттык форматты колдонуу"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Убакыт"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Бир эле баскычтын удаа басылганы этибарга алынбайт"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Удаа басылган баскычтардын мааниси"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Баскычтын удаа басылганы этибарга алынбаган убакыттын узундугун тандаңыз"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 сек."</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 сек."</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 сек."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 сек."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 сек."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 сек."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Жеке"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"жеке маани"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Жай баскычтар"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Басылган баскыч качан эске алынарын тууралайт"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Жабышма баскычтар"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Ыкчам баскычтарды чогуу басып туруунун ордуна бирден басасыз"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Чычкандын баскычтары"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Курсорду баскычтоптон көзөмөлдөңүз"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Чычкан менен артка сыдыруу"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Баракты ылдый жылдыруу үчүн экранды өйдө сыдырыңыз"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Сол жана оң баскычтарды алмаштырыңыз"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Чычкандын сол баскычын оң баскыч катары колдонуңуз"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Ыкчам баскычтар"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ыкчам баскычтардын тизмеси көрүнөт"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Жумуш профилинин баскычтоптору жана куралдары"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> үчүн жаңы ачкыч тандаңыз:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Аппараттык баскычтоптогу атайын мүмкүнчүлүктөр"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Жабышма баскычтар, Кайтаруу баскычтары, Чычкандын баскычтары"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Баскычтарды кайталоо"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Кайталанганга чейинки кечигүү"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Кайталоо ылдамдыгы"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Символду кайталап терүү үчүн баскычты коё бербей басып туруңуз"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> калыбы"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Демейки"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматтык: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Алдын ала көрүү"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандарттык опциялар"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Тили"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Коштомо жазуунун өлчөмү"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Коштомо жазуунун стили"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Ылайыкташтырылган тууралоолор"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Фондун түсү"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Бул VPN ажыратылсынбы?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Ажыратуу"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Версия"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> версиясы"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN профили унутулсун"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Учурдагы VPN алмаштырылсынбы?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Туруктуу VPN\'ди жөндөйсүзбү?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Түзмөк аркылуу гана"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Жаңы байланыштар аккаунтта шайкештирилбейт"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Байланыштар түзмөгүңүздө сакталып, аккаунтуңузда демейки шартта шайкештирилет"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Демейки параметрлер коюлган жок"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Баштоо үчүн аккаунт кошуңуз"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Тегеректеп издөө"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Экрандагы нерселер боюнча издөө үчүн Башкы бет баскычын же өтүү тилкесин коё бербей басып туруңуз."</string>
 </resources>
diff --git a/res/values-lo/arrays.xml b/res/values-lo/arrays.xml
index 6dcbd8d..d4b312d 100644
--- a/res/values-lo/arrays.xml
+++ b/res/values-lo/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ເກັດຫິມະ"</item>
     <item msgid="7952183800501346803">"ຄັນຮົ່ມຫາດຊາຍ"</item>
     <item msgid="799139025758265891">"ເຄື່ອງມືເວີກຊັອບ"</item>
-    <item msgid="1330084588359129896">"ເຕັ້ນ"</item>
+    <item msgid="8112685757657659269">"ເປຍໂນ"</item>
     <item msgid="3861584909935022342">"ມ້ວນຟີມ"</item>
     <item msgid="5827426100157335512">"ປຶ້ມ"</item>
     <item msgid="8585828346253128384">"ດອກບົວ"</item>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index 2207ee4..6dd47ef 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ຕັ້ງຄ່າອັດຕະໂນມັດໂດຍໃຊ້ເຄືອຂ່າຍ ແລະ ສັນຍານໄຮ້ສາຍຂອງທ່ານ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ເຂດເວລາອັດຕະໂນມັດ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ຕັ້ງຄ່າອັດຕະໂນມັດໂດຍອີງຕາມເຄືອຂ່າຍມືຖືທີ່ຢູ່ໃກ້ກັບທ່ານ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ຕັ້ງຄ່າອັດຕະໂນມັດໂດຍໃຊ້ສະຖານທີ່ອຸປະກອນຂອງທ່ານ (ຫາກມີ). ອາດຕ້ອງມີການເຊື່ອມຕໍ່ Wi-Fi ທີ່ເປີດໃຊ້ຢູ່ນຳ."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ຕັ້ງຄ່າອັດຕະໂນມັດໂດຍໃຊ້ສະຖານທີ່ອຸປະກອນຂອງທ່ານ, ຫາກມີ"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ໃຊ້ຄ່າເລີ່ມຕົ້ນຂອງສະຖານທີ່"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"ໃຊ້ຮູບແບບ 24 ຊົ່ວໂມງ"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ເວລາ"</string>
@@ -1946,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ການຊ່ວຍເຂົ້າເຖິງ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ແປ້ນພິມພາຍນອກ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ປຸ່ມດີດກັບ"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"ແປ້ນພິມຈະບໍ່ສົນໃຈການກົດປຸ່ມຊ້ຳໆໄວໆຂອງປຸ່ມດຽວກັນ"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ເກນການຍົກເລີກການກົດປຸ່ມຊໍ້າໆ"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ເລືອກໄລຍະເວລາທີ່ແປ້ນພິມຂອງທ່ານບໍ່ສົນໃຈການກົດປຸ່ມຊໍ້າໆ"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"ເພີ່ມໄລຍະເວລາໃນການກົດປຸ່ມ"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"ປັບແກ້ເວລາທີ່ມັນໃຊ້ສໍາລັບການກົດປຸ່ມເພື່ອເປີດໃຊ້"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ປຸ່ມກົດຄ້າງ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ກົດເທື່ອລະປຸ່ມເພື່ອໃຊ້ທາງລັດແທນການກົດປຸ່ມຄ້າງໄວ້ຮ່ວມກັນ"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"ແປ້ນເມົ້າ"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ໃຊ້ແປ້ນພິມຂອງທ່ານເພື່ອຄວບຄຸມຕົວຊີ້"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ການເລື່ອນເມົ້າຖອຍຫຼັງ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ເລື່ອນຂຶ້ນເພື່ອຍ້າຍໜ້າລົງ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ສະຫຼັບປຸ່ມຊ້າຍ ແລະ ຂວາ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ໃຊ້ປຸ່ມເມົ້າເບື້ອງຊ້າຍເປັນປຸ່ມເບື້ອງຂວາຂອງທ່ານ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ປຸ່ມລັດແປ້ນພິມ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ສະແດງລາຍຊື່ຂອງທາງລັດ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ແປ້ນພິມໂປຣໄຟລ໌ວຽກ ແລະ ເຄື່ອງມື"</string>
@@ -2034,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"ເລືອກປຸ່ມໃໝ່ສຳລັບ <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ການຊ່ວຍເຂົ້າເຖິງແປ້ນພິມພາຍນອກ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ປຸ່ມກົດຄ້າງ, ປຸ່ມຕີກັບ, ແປ້ນເມົ້າ"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ປຸ່ມຊ້ຳ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ຄວາມຊັກຊ້າກ່ອນການກົດຊ້ຳ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ອັດຕາການກົດຊ້ຳ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ກົດປຸ່ມຄ້າງໄວ້ເພື່ອເຮັດຊ້ຳຕົວອັກສອນຂອງມັນຈົນກວ່າປຸ່ມຈະຖືກປ່ອຍ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"ໂຄງຮ່າງ <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ອັດຕະໂນມັດ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ຕົວຢ່າງ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ໂຕເລືອກມາດຕະຖານ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ພາສາ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ຂະໜາດຄຳບັນຍາຍ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"ຮູບແບບຄຳບັນຍາຍ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ໂຕເລືອກກຳນົດເອງ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ສີພື້ນຫຼັງ"</string>
@@ -2987,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ຕັດການເຊື່ອມຕໍ່ VPN ນີ້ບໍ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ຕັດການເຊື່ອມຕໍ່"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ເວີຊັນ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ເວີຊັນ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"ລືມ VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ຂຽນທັບ VPN ທີ່ມີຢູ່ກ່ອນແລ້ວຂອງທ່ານບໍ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Set always-on VPN?"</string>
@@ -5462,13 +5465,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ຊອກຫາໃນການຕັ້ງຄ່າ"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"ລາຍຊື່ຜູ້ຕິດຕໍ່, ບ່ອນຈັດເກັບຂໍ້ມູນ, ບັນຊີ"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"ບ່ອນຈັດເກັບຂໍ້ມູນລາຍຊື່ຜູ້ຕິດຕໍ່"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ອຸປະກອນເທົ່ານັ້ນ"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ລາຍຊື່ຜູ້ຕິດຕໍ່ໃໝ່ຈະບໍ່ຖືກຊິ້ງຂໍ້ມູນກັບບັນຊີ"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ລາຍຊື່ຜູ້ຕິດຕໍ່ຈະຖືກບັນທຶກໄປໃສ່ອຸປະກອນ ແລະ ຊິ້ງຂໍ້ມູນໄປຫາບັນຊີຂອງທ່ານເປັນຄ່າເລີ່ມຕົ້ນ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ບໍ່ມີການຕັ້ງຄ່າເລີ່ມຕົ້ນ"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ເພີ່ມບັນຊີເພື່ອເລີ່ມຕົ້ນ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ແຕ້ມວົງມົນເພື່ອຊອກຫາ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ແຕະປຸ່ມໜ້າທຳອິດ ຫຼື ດ້າມຈັບນຳທາງຄ້າງໄວ້ເພື່ອຊອກຫາໂດຍໃຊ້ເນື້ອຫາຢູ່ໜ້າຈໍຂອງທ່ານ."</string>
 </resources>
diff --git a/res/values-lt/arrays.xml b/res/values-lt/arrays.xml
index af16799..6566f11 100644
--- a/res/values-lt/arrays.xml
+++ b/res/values-lt/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snaigė"</item>
     <item msgid="7952183800501346803">"Paplūdimio skėtis"</item>
     <item msgid="799139025758265891">"Darbo įrankiai"</item>
-    <item msgid="1330084588359129896">"Palapinė"</item>
+    <item msgid="8112685757657659269">"Pianinas"</item>
     <item msgid="3861584909935022342">"Kino juosta"</item>
     <item msgid="5827426100157335512">"Knyga"</item>
     <item msgid="8585828346253128384">"Lotoso žiedas"</item>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index 73a6572..1c7b5c8 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Nustatykite automatiškai pagal tinklo ir belaidžio ryšio signalus"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatinė laiko juosta"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Nustatykite automatiškai pagal netoliese esančius mobiliojo ryšio tinklus"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Nustatykite automatiškai pagal įrenginio vietovę, jei ji pasiekiama. Taip pat gali būti reikalingas aktyvus „Wi-Fi“ ryšys."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Nustatykite automatiškai pagal įrenginio vietovę, jei ji pasiekiama"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Naudoti numatytuosius lokalės nustatymus"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Naudoti 24 val. formatą"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Laikas"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pritaikomumas"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizinė klaviatūra"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Peradresavimo klavišai"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klaviatūra nepaiso greitai kartojamų to paties klavišo paspaudimų"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Peradresavimo klavišų slenkstis"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Pasirinkite, kiek laiko klaviatūra nepaiso pasikartojančių klavišų paspaudimų"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 sek."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 sek."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 sek."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Tinkinta"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"priskirta vertė"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lėtieji klavišai"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Koreguojamas laikas, per kurį aktyvinamas klavišo paspaudimas"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Atmenieji klavišai"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Norėdami naudoti spartųjį klavišą, vienu metu paspauskite vieną klavišą, užuot laikę nuspaudę kelis klavišus"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Pelės klavišai"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Naudodami klaviatūrą valdykite žymeklį"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Atvirkštinis slinkimas pele"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Slinkite aukštyn, kad pereitumėte puslapiu žemyn"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Sukeisti kairįjį ir dešinįjį mygtukus"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Naudokite kairįjį pelės mygtuką kaip dešinįjį"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Spartieji klavišai"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rodyti sparčiųjų klavišų sąrašą"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Darbo profilio klaviatūros ir įrankiai"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Pasirinkite naują „<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>“ slaptažodį:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fizinės klaviatūros pritaikomumas"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Atmenieji klavišai, pakartotinių paspaudimų kontrolė, pelės klavišai"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Klavišų kartojimas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Atidėti iki pakartojimo"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Kartojimo dažnis"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Laikykite paspaudę klavišą, kad kartotumėte jo simbolį, kol klavišas bus atleistas"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"„<xliff:g id="IME_LABEL">%s</xliff:g>“ išdėstymas"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Numatytasis"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatinis: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Peržiūra"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standartinės parinktys"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Kalba"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Subtitrų dydis"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Subtitrų stilius"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Tinkintos parinktys"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Fono spalva"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Atsijungti nuo šio VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Atsijungti"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versija"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> vers."</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Pamiršti VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Pakeisti esamą VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Nustatyti visada įjungtą VPN?"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Nustatymų paieška"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktai, saugykla, paskyra"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontaktų saugykla"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Tik įrenginys"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nauji kontaktai nebus sinchronizuojami su paskyra"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Pagal numatytuosius nustatymus kontaktai bus išsaugomi įrenginyje ir sinchronizuojami su paskyra"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Numatytoji paskyra nenustatyta"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Jei norite pradėti, pridėkite paskyrą"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Paieška apibrėžiant"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Jei norite ieškoti naudodami turinį ekrane, palieskite ir palaikykite pagrindinio puslapio mygtuką arba naršymo rankenėlę."</string>
 </resources>
diff --git a/res/values-lv/arrays.xml b/res/values-lv/arrays.xml
index 4412a86..5626332 100644
--- a/res/values-lv/arrays.xml
+++ b/res/values-lv/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Sniegpārsliņa"</item>
     <item msgid="7952183800501346803">"Saulessargs"</item>
     <item msgid="799139025758265891">"Darbnīcas rīki"</item>
-    <item msgid="1330084588359129896">"Telts"</item>
+    <item msgid="8112685757657659269">"Klavieres"</item>
     <item msgid="3861584909935022342">"Filmas rullītis"</item>
     <item msgid="5827426100157335512">"Grāmata"</item>
     <item msgid="8585828346253128384">"Lotosa zieds"</item>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index d5fcafd..6333f51 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Iestatīt automātiski, izmantojot tīklu un bezvadu signālus."</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automātiska laika joslu noteikšana"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Iestatīt automātiski, ņemot vērā mobilos tīklus jūsu tuvumā."</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Iestatīt, izmantojot ierīces atrašanās vietu (ja pieejama). Var vajadzēt aktīvu Wi-Fi savienojumu."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Iestatīt automātiski, izmantojot ierīces atrašanās vietu (ja pieejama)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Izmantot lokalizācijas noklusējuma vērtību"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Izmantot 24 stundu formātu"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Laiks"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Pieejamība"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziskā tastatūra"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Atlēcienu taustiņi"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastatūra ignorē ātri atkārtotu viena taustiņa nospiešanu."</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Atlēcienu taustiņu slieksnis"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Izvēlieties, cik ilgi tastatūra ignorēs atkārtotu taustiņu nospiešanu."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Pielāgots"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"pielāgota vērtība"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Lēnie taustiņi"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Tiek pielāgots laiks, kas nepieciešams, lai aktivizētu nospiestu taustiņu."</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Taustiņu ķēde"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Izmantojot īsinājumtaustiņus, vienlaikus nospiediet tikai vienu taustiņu, nevis turiet nospiestus vairākus taustiņus."</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Peles taustiņi"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Izmantojiet tastatūru, lai kontrolētu rādītāju."</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Peles ritināšana atpakaļgaitā"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Ritiniet augšup, lai pārvietotu lapu uz leju"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Apmainīt vietām kreiso un labo pogu"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Izmantojiet peles kreiso pogu kā labo"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Īsinājumtaustiņi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Rādīt īsinājumtaustiņu sarakstu"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatūras un rīki darba profilā"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Izvēlieties jaunu taustiņu — <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fiziskās tastatūras pieejamība"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Taustiņu ķēde, atlēcienu taustiņi, peles taustiņi"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Taustiņu atkārtošana"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Aizkave pirms atkārtošanas"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Atkārtošanas intervāls"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Turot taustiņu nospiestu, tiks atkārtoti ievadīta tā rakstzīme, līdz taustiņš tiks atlaists."</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Izkārtojums: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Noklusējums"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automātiski: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Priekšskatījums"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standarta opcijas"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Valoda"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Parakstu lielums"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Subtitru stils"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Pielāgotas opcijas"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Fona krāsa"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vai pārtraukt šo VPN savienojumu?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Pārtraukt savienojumu"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versija"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versija <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Aizmirst VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Vai aizstāt esošo VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Vai iestatīt vienmēr ieslēgtu VPN?"</string>
@@ -5463,13 +5461,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Meklēšanas iestatījumi"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktpersonas, krātuve, konts"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontaktpersonu krātuve"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Tikai ierīcē"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Jaunas kontaktpersonas netiks sinhronizētas ar kontu."</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Pēc noklusējuma kontaktpersonas tiks saglabātas jūsu ierīcē un sinhronizētas ar jūsu kontu."</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nav iestatīts noklusējuma konts"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Lai sāktu darbu, pievienojiet kontu."</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Apvilkt un meklēt"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Pieskarieties un turiet pogu “Sākums” vai navigācijas turi, lai meklētu, izmantojot ekrāna saturu."</string>
 </resources>
diff --git a/res/values-mk/arrays.xml b/res/values-mk/arrays.xml
index 916f2a3..e4b8599 100644
--- a/res/values-mk/arrays.xml
+++ b/res/values-mk/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Снегулка"</item>
     <item msgid="7952183800501346803">"Чадор за плажа"</item>
     <item msgid="799139025758265891">"Алати во работилница"</item>
-    <item msgid="1330084588359129896">"Шатор"</item>
+    <item msgid="8112685757657659269">"Пијано"</item>
     <item msgid="3861584909935022342">"Филмска лента"</item>
     <item msgid="5827426100157335512">"Книга"</item>
     <item msgid="8585828346253128384">"Цвет на лотос"</item>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 6fa7263..826a44a 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Поставете автоматски со вашата мрежа и безжични сигнали"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Автоматска временска зона"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Поставете автоматски според мобилните мрежи во ваша близина"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Поставете автоматски со локацијата на уредот, ако е достапна. Може да треба и активна Wi-Fi врска."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Постави автоматски со локацијата на уредот, ако е достапна"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Користи локален стандард"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Користи 24-часовен формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Време"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Пристапност"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физичка тастатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Игнорирај повторени притискања"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Тастатурата игнорира брзи притискања на истото копче што се повторуваат"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Праг на игнор. на повт. притискање"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Изберете го времетраењето кога вашата тастатура ги игнорира повторените притискања на копчињата"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 с."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 с."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 с."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Приспособено"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"приспособена вредност"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Бавни копчиња"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Го приспособува времето за да се активира притискање копче"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Лепливи копчиња"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Притискајте ги копчињата за кратенки едно по едно наместо да ги држите копчињата притиснати заедно"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Копчиња на глувчето"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Користете ја тастатурата за да го контролирате покажувачот"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Обратно лизгање на глувчето"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Лизгајте нагоре за да ја преместите страницата надолу"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Заменете ги местата на левото и десното копче"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Користете го левото копче на глувчето како десно"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Кратенки на тастатурата"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Прикажи список со кратенки"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатури и алатки за работниот профил"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Изберете ново копче за <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Пристапност до физичка тастатура"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"лепливи копчиња, копчиња за игнорирање повторени притискања, копчиња на глувчето"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Повторување на копчињата"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Доцнење пред повторување"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Стапка на повторување"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Притиснете и задржете некое копче за да го повторувате неговиот знак додека не го пуштите копчето"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Распоред на <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Стандардно"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматски: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Преглед"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандардни опции"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Јазик"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Големина на титлови"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стил на титловите"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Приспособени опции"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Боја на заднина"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Да се исклучи оваа VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Прекини врска"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Верзија"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Верзија <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Заборави VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Да се замени постојната VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Да се постави „секогаш вклучена“ VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Пребарувајте низ поставките"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"контакти, складирање, сметка"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Складирање контакти"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Само уред"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Новите контакти нема да се синхронизираат со сметка"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Контактите ќе се зачувуваат на вашиот уред и стандардно ќе се синхронизираат со вашата сметка"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Нема поставено стандардна сметка"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Додајте сметка за да започнете"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Пребарување со заокружување"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Допрете и задржете го копчето за почетен екран или лентата за навигација за да пребарувате со содржините на екранот."</string>
 </resources>
diff --git a/res/values-ml/arrays.xml b/res/values-ml/arrays.xml
index bd20789..8d30538 100644
--- a/res/values-ml/arrays.xml
+++ b/res/values-ml/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"മഞ്ഞുകട്ട"</item>
     <item msgid="7952183800501346803">"ബീച്ച് കുട"</item>
     <item msgid="799139025758265891">"വർക്ക്‌ഷോപ്പ് ടൂളുകൾ"</item>
-    <item msgid="1330084588359129896">"ടെന്റ്"</item>
+    <item msgid="8112685757657659269">"പിയാനോ"</item>
     <item msgid="3861584909935022342">"ഫിലിം റീൽ"</item>
     <item msgid="5827426100157335512">"പുസ്‌തകം"</item>
     <item msgid="8585828346253128384">"താമരപ്പൂവ്"</item>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index 07c653a..5dce61f 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"നിങ്ങളുടെ നെറ്റ്‌വർക്കും വയർലെസ് സിഗ്‌നലുകളും ഉപയോഗിച്ച് സ്വയമേവ സജ്ജീകരിക്കുക"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"സ്വയമേവ ഉള്ള സമയമേഖല"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"നിങ്ങളുടെ സമീപമുള്ള മൊബൈൽ നെറ്റ്‌വർക്കുകളുടെ അടിസ്ഥാനത്തിൽ സ്വയമേവ സജ്ജീകരിക്കുക"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ലഭ്യമെങ്കിൽ, ഉപകരണ ലൊക്കേഷൻ ഉപയോഗിച്ച് സ്വയമേവ സജ്ജീകരിക്കുക. സജീവ വൈഫൈ കണക്ഷനും ആവശ്യമായേക്കാം."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ലഭ്യമാണെങ്കിൽ, നിങ്ങളുടെ ഉപകരണ ലൊക്കേഷൻ ഉപയോഗിച്ച് സ്വയമേവ സജ്ജീകരിക്കുക"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ഡിഫോൾട്ട് ഭാഷ ഉപയോഗിക്കുക"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-മണിക്കൂർ ഫോർമാറ്റ് ഉപയോഗിക്കുക"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"സമയം"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"ഒരേ കീ അതിവേഗം ആവർത്തിച്ച് അമർത്തുന്നത് കീബോർഡ് അവഗണിക്കും"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ബൗൺസ് കീ ത്രെഷോൾഡ്"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"നിങ്ങളുടെ കീബോർഡ്, ആവർത്തിച്ചുള്ള കീ അമർത്തലുകൾ അവഗണിക്കേണ്ടതിന്റെ സമയദൈർഘ്യം തിരഞ്ഞെടുക്കുക"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 സെക്കൻഡ്"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 സെക്കൻഡ്"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 സെക്കൻഡ്"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 സെക്കൻഡ്"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 സെക്കൻഡ്"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 സെക്കൻഡ്"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"ഇഷ്‌ടാനുസൃതം"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"ഇഷ്‍ടാനുസൃത മൂല്യം"</string>
     <string name="slow_keys" msgid="2891452895499690837">"സ്ലോ കീകൾ"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"കീ അമർത്തൽ സജീവമാകാൻ എടുക്കുന്ന സമയം ക്രമീകരിക്കുന്നു"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"സ്‌റ്റിക്കി കീകൾ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"കുറുക്കുവഴികൾക്കായി, കീകൾ ഒരുമിച്ച് അമർത്തിപ്പിടിക്കുന്നതിന് പകരം ഒരു സമയം ഒരു കീ അമർത്തുക"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"മൗസ് കീകൾ"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"പോയിന്റർ നിയന്ത്രിക്കാൻ നിങ്ങളുടെ കീബോർഡ് ഉപയോഗിക്കുക"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"മൗസ് വിപരീത ദിശയിൽ സ്‌ക്രോൾ ചെയ്യൽ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"പേജ് താഴേക്ക് നീക്കാൻ മുകളിലേക്ക് സ്ക്രോൾ ചെയ്യുക"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ഇടത്, വലത് ബട്ടണുകൾ സ്വാപ്പ് ചെയ്യുക"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ഇടത് മൗസ് ബട്ടൺ വലത് ബട്ടണായി ഉപയോഗിക്കുക"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"കീബോഡ് കുറുക്കുവഴികൾ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"കുറുക്കുവഴികളുടെ ലിസ്റ്റ് കാണിക്കുക"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ഔദ്യോഗിക പ്രൊഫൈൽ കീബോർഡുകളും ടൂളുകളും"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> എന്നതിനായി പുതിയ കീ തിരഞ്ഞെടുക്കൂ:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ഫിസിക്കൽ കീബോർഡ് ഉപയോഗസഹായി"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"സ്റ്റിക്കി കീകൾ, ബൗൺസ് കീകൾ, മൗസ് കീകൾ"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ആവർത്തിക്കുന്ന കീകൾ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ആവർത്തിക്കുന്നതിന് മുമ്പുള്ള കാലതാമസം"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ആവർത്തന നിരക്ക്"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"കീ വിടുന്നത് വരെ അതിന്റെ പ്രതീകം ആവർത്തിക്കാൻ കീ അമർത്തിപ്പിടിക്കുക"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> ലേഔട്ട്"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ഡിഫോൾട്ട്"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"സ്വയമേവ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"പ്രിവ്യൂ ചെയ്യുക"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"സാധാരണ ഓപ്ഷനുകൾ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ഭാഷ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"സബ്‌ടൈറ്റിലിന്റെ വലുപ്പം"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"അടിക്കുറിപ്പ് സ്റ്റൈൽ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ഇഷ്‌ടാനുസൃത ഓപ്‌ഷനുകൾ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"പശ്ചാത്തല വര്‍ണം"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ഈ VPN വിച്ഛേദിക്കണോ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"വിച്ഛേദിക്കുക"</string>
     <string name="vpn_version" msgid="6344167191984400976">"പതിപ്പ്"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"പതിപ്പ് <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN മറക്കുക"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"നിലവിലുള്ള VPN-ന് പകരം പുതിയതാക്കണോ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"\'എല്ലായ്പ്പോഴും ഓൺ\' VPN സജ്ജമാക്കണോ?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ഉപകരണം മാത്രം"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"പുതിയ കോൺടാക്റ്റുകൾ ഒരു അക്കൗണ്ടുമായി സമന്വയിപ്പിക്കില്ല"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"കോൺടാക്റ്റുകൾ നിങ്ങളുടെ ഉപകരണത്തിൽ സംരക്ഷിക്കുകയും ഡിഫോൾട്ടായി നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് സമന്വയിപ്പിക്കുകയും ചെയ്യും"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ഡിഫോൾട്ട് ഒന്നും സജ്ജമാക്കിയിട്ടില്ല"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ആരംഭിക്കുന്നതിന് ഒരു അക്കൗണ്ട് ചേർക്കുക"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"തിരയാൻ വട്ടം വരയ്ക്കൽ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"നിങ്ങളുടെ സ്ക്രീനിലുള്ള ഉള്ളടക്കം ഉപയോഗിച്ച് തിരയാൻ ഹോം ബട്ടൺ അല്ലെങ്കിൽ നാവിഗേഷൻ ഹാൻഡിൽ സ്‌പർശിച്ചുപിടിക്കുക."</string>
 </resources>
diff --git a/res/values-mn/arrays.xml b/res/values-mn/arrays.xml
index d7083c8..76bd912 100644
--- a/res/values-mn/arrays.xml
+++ b/res/values-mn/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Цасан ширхэг"</item>
     <item msgid="7952183800501346803">"Далайн эргийн шүхэр"</item>
     <item msgid="799139025758265891">"Урлангийн багаж хэрэгсэл"</item>
-    <item msgid="1330084588359129896">"Майхан"</item>
+    <item msgid="8112685757657659269">"Төгөлдөр хуур"</item>
     <item msgid="3861584909935022342">"Зургийн хальс"</item>
     <item msgid="5827426100157335512">"Ном"</item>
     <item msgid="8585828346253128384">"Бадамлянхуа цэцэг"</item>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index a729377..45ed7fb 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Таны сүлжээ болон утасгүй дохиог ашиглан автоматаар тохируулна"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Автомат цагийн бүс"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Таны ойролцоох хөдөлгөөнт холбооны сүлжээнд үндэслэн автоматаар тохируулна"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Таны төхөөрөмжийн байршлыг ашиглан автоматаар тохируулна. Идэвхтэй Wi-Fi холболт мөн шаардаж болно"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Таны төхөөрөмжийн байршил байгаа тохиолдолд тухайн байршлыг ашиглан автоматаар тохируулна"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Бүс нутгийн өгөгдмөлийг ашиглах"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 цагийн формат ашиглах"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Цаг"</string>
@@ -1946,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Хандалт"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Биет гар"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ойх түлхүүрүүд"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Гар нэг товчийн давтагдсан шуурхай даралтыг үл хэрэгсэнэ"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Ойх товчийн босго"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Таны гар давтагдсан товчийн даралтыг үл хэрэгсэх хугацааг сонгоорой"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"Удаан товчнууд"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Товчийн даралт идэвхжихэд зарцуулах хугацааг тохируулна"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Бэхэлсэн түлхүүрүүд"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Товчлолд товчлууруудыг хамтад нь удаан дарахын оронд нэг удаад нэг товчлуур дарна уу"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Хулганын товч"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Заагчийг хянахад гараа ашиглана уу"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Хулганыг урвуу гүйлгэх"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Хуудсыг доош зөөхийн тулд дээш гүйлгэнэ үү"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Зүүн, баруун товчнуудыг солих"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Хулганын зүүн товчийг баруун товчоороо ашиглана уу"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Гарын товчлол"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Товчлолын жагсаалтыг харуулах"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ажлын профайлын гар &amp; хэрэгсэл"</string>
@@ -2034,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>-н шинэ товч сонгоно уу:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Биет гарын хандалт"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Бэхэлсэн товч, буцаах товч, хулганын товч"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Товчийг давтах"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Давтахаас өмнөх саатал"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Давтах хурд"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Товчийг суллах хүртэл тэмдгийг нь давтахын тулд тухайн товчин дээр удаан дарна уу"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> бүдүүвч"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Өгөгдмөл"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автомат: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Урьдчилж харах"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандарт сонголтууд"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Хэл"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Тайлбарын хэмжээ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Тайлбарын загвар"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Тусгай сонголтууд"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Дэвсгэр өнгө"</string>
@@ -2987,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Энэ VPN-г салгах уу?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Салгах"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Хувилбар"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g>-р хувилбар"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN-г мартах"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Энэ VPN-г солих уу?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"VPN-г тогтмол асаалттайгаар тохируулах уу?"</string>
@@ -5462,13 +5465,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Хайлтын тохиргоо"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"харилцагчид, хадгалах сан, бүртгэл"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Харилцагчдын хадгалах сан"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Зөвхөн төхөөрөмж"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Шинэ харилцагчдыг бүртгэлтэй синк хийхгүй"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Харилцагчдыг өгөгдмөлөөр таны төхөөрөмжид хадгалж, бүртгэлд тань синк хийнэ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Өгөгдмөл бүртгэл тохируулаагүй"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Эхлүүлэхийн тулд бүртгэл нэмнэ үү"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Тойруулж зураад хай"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Дэлгэц дээрээ байгаа контентыг ашиглан хайхын тулд Нүүр хуудасны товч, навигацын бариулд хүрээд удаан дарна уу."</string>
 </resources>
diff --git a/res/values-mr/arrays.xml b/res/values-mr/arrays.xml
index a6ff624..08024ff 100644
--- a/res/values-mr/arrays.xml
+++ b/res/values-mr/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"स्नोफ्लेक"</item>
     <item msgid="7952183800501346803">"समुद्रकिनाऱ्यावर वापरली जाणारी छत्री"</item>
     <item msgid="799139025758265891">"कारखान्यातील अवजारे"</item>
-    <item msgid="1330084588359129896">"तंबू"</item>
+    <item msgid="8112685757657659269">"पियानो"</item>
     <item msgid="3861584909935022342">"फिल्म रील"</item>
     <item msgid="5827426100157335512">"पुस्तक"</item>
     <item msgid="8585828346253128384">"कमळाचे फूल"</item>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index b32a4a1..e43b686 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"तुमचे नेटवर्क आणि वायरलेस सिग्नल वापरून आपोआप सेट करा"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ऑटोमॅटिक टाइम झोन"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"तुमच्या जवळपासच्या मोबाइल नेटवर्कच्या आधारे आपोआप सेट करा"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"उपलब्ध असल्यास, तुमचे डिव्हाइस स्थान वापरून आपोआप सेट करा. अ‍ॅक्टिव्ह वायफाय कनेक्शनदेखील आवश्यक असू शकते."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"तुमचे डिव्हाइस स्थान उपलब्ध असल्यास, ते वापरून आपोआप सेट करा"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"लोकॅल डीफॉल्ट वापरा"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"२४ तास फॉरमॅट वापरा"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"वेळ"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"कीबोर्ड एकसारख्या की झटपट वारंवार प्रेस करण्याकडे दुर्लक्ष करतो"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"बाउन्स कीची मर्यादा"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"तुमचा कीबोर्ड वारंवार की प्रेस करण्याकडे दुर्लक्ष करतो तो कालावधी निवडा"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"०.२से"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"०.४से"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"०.६से"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"०.२से"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"०.४से"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"०.६से"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"कस्टम"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"कस्‍टम मूल्य"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"ॲक्टिव्हेट करण्यासाठी की प्रेस करण्याकरिता लागणारा वेळ ॲडजस्ट करतात"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"की एकत्र धरून ठेवण्याऐवजी शॉर्टकटसाठी एकावेळी एक की प्रेस करा"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"माउस की"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"पॉइंटर नियंत्रित करण्यासाठी तुमचा कीबोर्ड वापरा"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"माउस रिव्हर्स स्क्रोलिंग"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"पेज खाली हलवण्यासाठी वरती स्क्रोल करा"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"डावे व उजवे बटण स्वॅप करा"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"माऊसच्या डाव्या बटणाला तुमचे उजवे बटण म्हणून वापरा"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"कीबोर्ड शॉर्टकट"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"शॉर्टकटची सूची दाखवा"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल कीबोर्ड आणि टूल"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> साठी नवीन की निवडा:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"वास्तविक कीबोर्ड अ‍ॅक्सेसिबिलिटी"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"स्टिकी की, बाउन्स की, माउस की"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"की रिपीट करा"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"रिपीट करण्यापूर्वीचा विलंब"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"रिपीट करण्याचा दर"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"एखादी की रिलीझ करेपर्यंत तिचा वर्ण रिपीट करण्यासाठी ती की धरून ठेवा"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> लेआउट"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"डीफॉल्ट"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ऑटोमॅटिक: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"पूर्वावलोकन"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"मानक पर्याय"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"भाषा"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"कॅप्शनचा आकार"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"कॅप्शन शैली"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"कस्टम पर्याय"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"बॅकग्राउंडचा रंग"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"हे VPN डिस्कनेक्ट करायचे?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"‍डिस्कनेक्ट करा"</string>
     <string name="vpn_version" msgid="6344167191984400976">"आवृत्ती"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"आवृत्ती <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN विसरा"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"विद्यमान VPN पुनर्स्थित करायचे?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"नेहमी-सुरू VPN सेट करायचे?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"केवळ डिव्हाइस"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"खात्यासह नवीन संपर्क सिंक केले जाणार नाहीत"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"संपर्क हे तुमच्या डिव्हाइसमध्ये सेव्ह केले जातील आणि बाय डीफॉल्ट तुमच्या खात्यामध्ये सिंक केले जातील"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"कोणतेही डीफॉल्ट अकाउंट सेट केलेले नाही"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"सुरू करण्यासाठी एखादे खाते जोडा"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"शोधण्यासाठी वर्तुळ करा"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"तुमच्या स्क्रीनवरील आशय वापरून शोधण्यासाठी होम बटण किंवा नेव्हिगेशन हँडल स्‍पर्श करून धरून ठेवा."</string>
 </resources>
diff --git a/res/values-ms/arrays.xml b/res/values-ms/arrays.xml
index 11c4761..9065ddb 100644
--- a/res/values-ms/arrays.xml
+++ b/res/values-ms/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Emping salji"</item>
     <item msgid="7952183800501346803">"Payung pantai"</item>
     <item msgid="799139025758265891">"Alatan bengkel"</item>
-    <item msgid="1330084588359129896">"Khemah"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Gelendong filem"</item>
     <item msgid="5827426100157335512">"Buku"</item>
     <item msgid="8585828346253128384">"Bunga teratai"</item>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index f6ef310..911011e 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Tetapkan secara automatik menggunakan isyarat rangkaian dan wayarles anda"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Zon waktu automatik"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Tetapkan secara automatik berdasarkan rangkaian mudah alih berdekatan anda"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Tetapan automatik dengan lokasi peranti, jika tersedia. Sambungan Wi-Fi aktif mungkin diperlukan."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Tetapkan secara automatik menggunakan lokasi peranti anda, jika tersedia"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Gunakan tetapan lalai tempat peristiwa"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Gunakan format 24 jam"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Masa"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Kebolehaksesan"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Papan kekunci fizikal"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Kekunci lantun"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Papan kekunci mengabaikan tekanan kekunci yang sama secara berulang"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Ambang kekunci lantun"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Pilih tempoh masa papan kekunci anda mengabaikan tekanan kekunci yang berulang"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Tersuai"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"nilai tersuai"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Kekunci perlahan"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Laraskan masa yang diambil untuk mengaktifkan tekanan kekunci"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Kekunci Lekit"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Tekan satu kekunci pada satu-satu masa untuk pintasan, bukan menahan beberapa kekunci secara serentak"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Kekunci tetikus"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Gunakan papan kekunci anda untuk mengawal penuding"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Penatalan terbalik tetikus"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Tatal ke atas untuk menggerakkan halaman ke bawah"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Tukar butang kiri ke kanan dan kanan ke kiri"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Gunakan butang tetikus kiri sebagai klik kanan anda"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Pintasan papan kekunci"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tunjukkan senarai pintasan"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Papan kekunci &amp; alatan profil kerja"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Pilih kunci baharu untuk <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Kebolehaksesan papan kekunci fizikal"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Kekunci lekit, Kekunci lantun, Kekunci tetikus"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Kekunci Berulang"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Lengah sebelum ulang"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Kadar Pengulangan"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Tahan kekunci ke bawah untuk mengulangi aksara tersebut sehingga kekunci tersebut dilepaskan"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Reka letak <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Lalai"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2217,7 +2215,7 @@
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"Untuk memulakan dan menghentikan pembesaran, ketik skrin dua kali dengan pantas menggunakan %1$d jari"</string>
     <string name="accessibility_tutorial_dialog_message_quick_setting" msgid="3715446725334547432">"{count,plural, =1{Untuk menggunakan ciri ini, leret ke bawah daripada bahagian atas skrin anda. Kemudian, cari jubin {featureName}.}other{Untuk menggunakan ciri ini, leret ke bawah daripada bahagian atas skrin anda menggunakan # jari. Kemudian, cari jubin {featureName}.}}"</string>
     <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"Pintasan ini akan tersedia selepas anda menyelesaikan persediaan peranti."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Untuk menggunakan ciri ini, leret ke atas dari bahagian bawah skrin dengan menggunakan 2 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 2 jari dan tahan."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Untuk menggunakan ciri ini, leret ke atas dari bawah skrin dengan 2 jari.\n\nUntuk beralih antara ciri, leret ke atas dengan 2 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction" msgid="7349950768250852308">"{count,plural, =1{Untuk menggunakan ciri ini, leret ke atas daripada bahagian bawah skrin anda}other{Untuk menggunakan ciri ini, leret ke atas menggunakan # jari daripada bahagian bawah skrin anda}}"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Untuk menggunakan ciri ini, leret ke atas dari bahagian bawah skrin dengan menggunakan 3 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 3 jari dan tahan."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Untuk menggunakan ciri kebolehcapaian, leret ke atas dari bahagian bawah skrin dengan menggunakan 2 jari.\n\nUntuk menukar antara ciri, leret ke atas dengan menggunakan 2 hari dan tahan."</string>
@@ -2234,7 +2232,7 @@
     <string name="accessibility_shortcut_edit_dialog_summary_floating_button" msgid="6266489864614886247">"Ketik butang terapung"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_by_gesture" msgid="4775049370625630546">"Gerak isyarat kebolehaksesan"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software" msgid="8315934725362849788">"Ketik butang kebolehaksesan <xliff:g id="ACCESSIBILITY_ICON">%s</xliff:g> pada bahagian bawah skrin. Untuk beralih antara ciri, sentuh &amp; tahan butang kebolehaksesan."</string>
-    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Leret ke atas daripada bahagian bawah skrin. Untuk beralih antara ciri, leret ke atas dan tahan.}other{Leret ke atas menggunakan # jari daripada bahagian bawah skrin. Untuk beralih antara ciri, leret ke atas menggunakan # jari dan tahan.}}"</string>
+    <string name="accessibility_shortcut_edit_dialog_summary_gesture" msgid="2081123009255579884">"{count,plural, =1{Leret ke atas dari bawah skrin. Untuk beralih antara ciri, leret ke atas dan tahan.}other{Leret ke atas menggunakan # jari dari bawah skrin. Untuk beralih antara ciri, leret ke atas menggunakan # jari dan tahan.}}"</string>
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating" msgid="4459254227203203324"><annotation id="link">"Lagi pilihan"</annotation></string>
     <string name="footer_learn_more_content_description" msgid="8843798273152131341">"Ketahui lebih lanjut tentang <xliff:g id="SERVICE">%1$s</xliff:g>"</string>
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings" msgid="140959604014177304">"Tetapan Pantas"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pratonton"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Pilihan standard"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Bahasa"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Saiz sari kata"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Gaya sari kata"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Pilihan tersuai"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Warna latar belakang"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Putuskan sambungan VPN ini?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Putuskan sambungan"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versi"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versi <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Lupakan VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Gantikan VPN yang sedia ada?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Tetapkan VPN sentiasa hidup?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Carian Tetapan"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kenalan, storan, akaun"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Storan kenalan"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Peranti sahaja"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Kenalan baharu tidak akan disegerakkan dengan akaun"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kenalan akan disimpan pada peranti anda dan disegerakkan kepada akaun anda secara lalai"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Tiada akaun lalai ditetapkan"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Tambahkan akaun untuk bermula"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Bulatkan untuk Membuat Carian"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Sentuh dan tahan butang Skrin Utama atau pemegang navigasi untuk membuat carian menggunakan kandungan pada skrin anda."</string>
 </resources>
diff --git a/res/values-my/arrays.xml b/res/values-my/arrays.xml
index e7aeef7..2e18956 100644
--- a/res/values-my/arrays.xml
+++ b/res/values-my/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"နှင်းပွင့်"</item>
     <item msgid="7952183800501346803">"ကမ်းခြေထီး"</item>
     <item msgid="799139025758265891">"အလုပ်ရုံတူးလ်များ"</item>
-    <item msgid="1330084588359129896">"တဲ"</item>
+    <item msgid="8112685757657659269">"စန္ဒရား"</item>
     <item msgid="3861584909935022342">"ဖလင်လိပ်"</item>
     <item msgid="5827426100157335512">"စာအုပ်"</item>
     <item msgid="8585828346253128384">"ကြာပန်း"</item>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 5a0a6d1..9c5288f 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"သင့်ကွန်ရက်နှင့် ကြိုးမဲ့အချက်ပြမှုများသုံး၍ အလိုအလျောက်သတ်မှတ်သည်"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"အလိုအလျောက် ဒေသစံတော်ချိန်"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"သင့်အနီးရှိ မိုဘိုင်းကွန်ရက်များပေါ် အခြေခံ၍ အလိုအလျောက်သတ်မှတ်သည်"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ရနိုင်ပါက သင့်စက်တည်နေရာသုံး၍ အလိုအလျောက်သတ်မှတ်သည်။ ပွင့်နေသော Wifi ချိတ်ဆက်မှုလည်း လိုအပ်နိုင်သည်။"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ရနိုင်ပါက သင့်စက်တည်နေရာသုံး၍ အလိုအလျောက်သတ်မှတ်သည်"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ဒေသ၏ ဘာသာစကားစနစ်ကို သုံးရန်"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"၂၄-နာရီပုံစံကို အသုံးပြုရန်"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"အချိန်"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"အများသုံးနိုင်မှု"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"စက်၏ ကီးဘုတ်"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ပြန်ကန်ကီးများ"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"ကီးဘုတ်သည် ကီးတစ်ခုတည်း အကြိမ်ကြိမ် အမြန်နှိပ်ခြင်းကို လျစ်လျူရှုသည်"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ကြိမ်ထပ်နှိပ်ခြင်းများ သတ်မှတ်ချက်"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ကီးအကြိမ်ကြိမ်နှိပ်ခြင်းကို ကီးဘုတ်က လျစ်လျူရှုမည့်ကြာချိန် ရွေးပါ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"၀.၂ စက္ကန့်"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"၀.၄ စက္ကန့်"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"၀.၆ စက္ကန့်"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"စိတ်ကြိုက်"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"စိတ်ကြိုက်တန်ဖိုး"</string>
     <string name="slow_keys" msgid="2891452895499690837">"အနှေးကီးများ"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"ဖွင့်ရန် ကီးနှိပ်ခြင်းအတွက် ကြာချိန်ကို ပြင်ပေးသည်"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ကပ်ခွာကီးများ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ဖြတ်လမ်းလင့်ခ်များအတွက် ခလုတ်များကို တစ်ပြိုင်တည်းဖိထားမည့်အစား တစ်ကြိမ်လျှင် ခလုတ်တစ်ခု နှိပ်နိုင်သည်"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"မောက်စ်ကီးများ"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ညွှန်မှတ် ထိန်းချုပ်ရန် သင့်ကီးဘုတ်ကို သုံးပါ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"မောက်စ်ပြောင်းပြန်လှိမ့်ခြင်း"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"စာမျက်နှာအောက်သို့ ရွှေ့ရန်အတွက် အပေါ်သို့လှိမ့်ပါ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ဘယ်နှင့်ညာခလုတ်များ ပြောင်းရန်"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ဘယ်ဘက်မောက်စ်ခလုတ်ကို ညာဘက်ခလုတ်အဖြစ် သုံးနိုင်သည်"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"လက်ကွက်ဖြတ်လမ်းများ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ဖြတ်လမ်းလင့်ခ်များစာရင်း ပြပါ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"အလုပ်ပရိုဖိုင် လက်ကွက်နှင့် တူးလ်များ"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> အတွက် ကီးအသစ်ရွေးပါ-"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ပကတိကီးဘုတ် အများသုံးနိုင်မှု"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ကပ်ခွာကီး၊ တစ်ကြိမ်နှိပ်ကီး၊ မောက်စ်ကီး"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ပြန်ကျော့ကီးများ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ပြန်မကျော့မီ ကြန့်ကြာချိန်"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ပြန်ကျော့နှုန်း"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ကီး၏အက္ခရာကို ပြန်ကျော့ရန် ဖိထားပြီးမှ လွှတ်လိုက်ပါ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> အပြင်အဆင်"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"မူရင်း"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"အလိုအလျောက်- <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"အစမ်းကြည့်ရှုရန်"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ပုံမှန်ရွေးချယ်စရာများ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ဘာသာစကား"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"စာတန်းအရွယ်အစား"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"စာတန်းပုံစံ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"စိတ်ကြိုက်ရွေးချယ်စရာများ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"နောက်ခံအရောင်"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ဤ VPN အား ချိတ်ဆက်မှု ဖြုတ်လိုပါသလား။"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ဆက်သွယ်မှု ဖြတ်ရန်"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ဗားရှင်း"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ဗားရှင်း <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN ကိုမေ့လိုက်ပါ"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ရှိပြီးသား VPN ကိုအစားထိုးမလား။"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"VPN ကို အမြဲတမ်းဖွင့်ထားရန် သတ်မှတ်မလား။"</string>
@@ -4435,7 +4433,7 @@
     <string name="keywords_system_navigation" msgid="3131782378486554934">"စနစ် လမ်းညွှန်ခြင်း၊ ခလုတ် ၂ ခု ဖြင့် လမ်းညွှန်ခြင်း၊ ခလုတ် ၃ ခု ဖြင့် လမ်းညွှန်ခြင်း၊ လက်ဟန်ဖြင့် လမ်းညွှန်ခြင်း၊ ပွတ်ဆွဲခြင်း"</string>
     <string name="assistant_gesture_category_title" msgid="2478251256585807920">"ဒစ်ဂျစ်တယ်အထောက်အကူ"</string>
     <string name="assistant_corner_gesture_title" msgid="1895061522687002106">"Assistant ကို ညွှန်ကြားရန် ပွတ်ဆွဲခြင်း"</string>
-    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ဒစ်ဂျစ်တယ် Assistant အက်ပ်ကို ညွှန်ကြားရန် အောက်ခြေထောင့်မှ အပေါ်သို့ ပွတ်ဆွဲပါ"</string>
+    <string name="assistant_corner_gesture_summary" msgid="5012534700233017955">"ဒစ်ဂျစ်တယ် အထောက်အကူ အက်ပ်ကို ညွှန်ကြားရန် အောက်ခြေထောင့်မှ အပေါ်သို့ ပွတ်ဆွဲပါ"</string>
     <string name="assistant_long_press_home_gesture_title" msgid="4865972278738178753">"Assistant အတွက် ပင်မခလုတ် နှိပ်ထားခြင်း"</string>
     <string name="assistant_long_press_home_gesture_summary" msgid="592882226105081447">"ဒစ်ဂျစ်တယ်အထောက်အကူ အက်ပ်ကို ညွှန်ကြားရန် ပင်မခလုတ် နှိပ်ထားပါ။"</string>
     <string name="low_label" msgid="6525629096999711220">"နိမ့်"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ဆက်တင်များတွင် ရှာရန်"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"အဆက်အသွယ်များ၊ သိုလှောင်ခန်း၊ အကောင့်"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"အဆက်အသွယ်များ သိုလှောင်ခန်း"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"စက်ပစ္စည်းသီးသန့်"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"အဆက်အသွယ်အသစ်များကို အကောင့်နှင့် စင့်ခ်လုပ်မည်မဟုတ်ပါ"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"မူရင်းသတ်မှတ်ချက်အရ အဆက်အသွယ်များကို သင့်စက်တွင်သိမ်းပြီး အကောင့်နှင့် စင့်ခ်လုပ်ပါမည်"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ပုံသေ သတ်မှတ်မထားပါ"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"စတင်ရန် အကောင့်ထည့်ပါ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ရှာရန် ကွက်၍ဝိုင်းလိုက်ပါ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"သင့်စခရင်ပေါ်ရှိ အကြောင်းအရာသုံး၍ ရှာရန်အတွက် ပင်မခလုတ် (သို့) လမ်းညွှန်ဘားကို တို့ထိ၍ ဖိထားပါ။"</string>
 </resources>
diff --git a/res/values-nb/arrays.xml b/res/values-nb/arrays.xml
index 3f45262..d217ad1 100644
--- a/res/values-nb/arrays.xml
+++ b/res/values-nb/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snøflak"</item>
     <item msgid="7952183800501346803">"Strandparasoll"</item>
     <item msgid="799139025758265891">"Verktøy på verksted"</item>
-    <item msgid="1330084588359129896">"Telt"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Filmspole"</item>
     <item msgid="5827426100157335512">"Bok"</item>
     <item msgid="8585828346253128384">"Lotusblomst"</item>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index d501ad2..d4680c6 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Angi automatisk med nettverket og trådløse signaler"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatisk tidssone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Angi automatisk basert på mobilnettverk i nærheten"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Angi automatisk med enhetsposisjonen, hvis tilgjengelig. Aktiv wifi er kanskje også nødvendig."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Angi automatisk med enhetsposisjonen, hvis tilgjengelig"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Bruk lokal standard"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Bruk 24-timers format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Tid"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Tilgjengelighet"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fysisk tastatur"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Filtertaster"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastaturet ignorerer raskt gjentatte trykk på samme tast"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Grense for filtertaster"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Velg hvor lenge tastaturet skal ignorere gjentatte tastetrykk"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Egendefinert"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"egendefinert verdi"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Hengende taster"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Justerer tiden det tar før tastetrykk aktiveres"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Trege taster"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Aktiver hurtigtaster ved å trykke på én tast av gangen i stedet for å holde flere taster inne samtidig"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Museknapper"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Bruk tastaturet til å kontrollere pekeren"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Omvendt rulling med musen"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Rull opp for å flytte siden ned"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Bytt om på venstre og høyre knapp"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Bruk venstre museknapp som høyre"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Hurtigtaster"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Vis listen over hurtigtaster"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastatur og verktøy i jobbprofilen"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Velg en ny tast for <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Tilgjengelighet med fysisk tastatur"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Trege taster, filtertaster, musetaster"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Gjenta taster"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Forsinkelse før gjentakelse"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Gjentakelseshastighet"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Hold en tast inne for å gjenta tegnet til du slipper opp tasten"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g>-oppsett"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standard"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatisk: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Forhåndsvisning"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardvalg"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Språk"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tekststørrelse"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Tekststil"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Tilpassede alternativer"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Bakgrunnsfarge"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vil du koble fra dette VPN-et?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Koble fra"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versjon"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versjon <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Glem VPN-profilen"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Vil du erstatte det nåværende VPN-et?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Vil du angi alltid på-VPN?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Søk i innstillingene"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakter, lagring, konto"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontaktlager"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Bare enheten"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nye kontakter synkroniseres ikke med kontoer"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakter lagres på enheten og synkroniseres med kontoen din som standard"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ingen standard er valgt"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Legg til en konto for å komme i gang"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Trykk og hold på hjemknappen eller navigasjonshåndtaket for å søke med innholdet på skjermen."</string>
 </resources>
diff --git a/res/values-ne/arrays.xml b/res/values-ne/arrays.xml
index 2249545..2f88846 100644
--- a/res/values-ne/arrays.xml
+++ b/res/values-ne/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"हिमकण"</item>
     <item msgid="7952183800501346803">"समुद्री तटमा प्रयोग गरिने छाता"</item>
     <item msgid="799139025758265891">"वर्कसप प्रयोग गरिने औजारहरू"</item>
-    <item msgid="1330084588359129896">"पाल"</item>
+    <item msgid="8112685757657659269">"पियानो"</item>
     <item msgid="3861584909935022342">"फिल्म रिल"</item>
     <item msgid="5827426100157335512">"पुस्तक"</item>
     <item msgid="8585828346253128384">"कमल फूल"</item>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 37ac582..3b522bb 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"तपाईंको नेटवर्क र वायरलेस सिग्नल प्रयोग गरेर मिति र समय स्वतः सेट गर्नुहोस्"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"स्वचालित प्रामाणिक समय"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"तपाईंको नजिकै भएका मोबाइल नेटवर्कका आधारमा मिति र समय स्वतः सेट गर्नुहोस्"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"उपलब्ध भएमा आफ्नो डिभाइसको लोकेसन प्रयोग गरेर मिति र समय स्वतः सेट गर्नुहोस्। सक्रिय Wi-Fi कनेक्सन पनि चाहिन सक्छ।"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"उपलब्ध भएमा आफ्नो डिभाइसको लोकेसन प्रयोग गरेर मिति र समय स्वतः सेट गर्नुहोस्"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"लोकेलको डिफल्ट सेटिङ प्रयोग गर्नुहोस्"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"२४-घण्टे ढाँचा प्रयोग गर्नुहोस्"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"समय"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"एक्सेसिबिलिटी सुविधा"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"फिजिकल किबोर्ड"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"बाउन्स की"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"एउटै की बारम्बार थिच्दा किबोर्डले तुरुन्तै बेवास्ता गर्छ"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"बाउन्स कीको सीमा"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"कति समयसम्म बारम्बार की थिच्दा किबोर्डले बेवास्ता गर्छ भन्ने कुरा छनौट गर्नुहोस्"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"०.२ सेकेन्ड"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"०.४ सेकेन्ड"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"०.६ सेकेन्ड"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"कस्टम"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"कस्टम मान"</string>
     <string name="slow_keys" msgid="2891452895499690837">"स्लो की"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"कुनै की कति समयसम्म थिच्दा एक्टिभेट हुन्छ भन्ने कुरा मिलाउँछ"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"स्टिकी की"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"सर्टकट प्राप्त गर्नका लागि कीहरू सँगै थिचिराख्नुको साटो एक पटकमा एउटा की थिच्नुहोस्"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"माउस की"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"पोइन्टर नियन्त्रण गर्न किबोर्ड प्रयोग गर्नुहोस्"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"माउसको विपरीत दिशामा स्क्रोल गर्ने विकल्प"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"पेज सारेर तल लैजान माथितिर स्क्रोल गर्नुहोस्"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"दायाँ र बायाँ बटन अदलबदल गर्नुहोस्"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"माउसको बायाँपट्टिको बटनलाई दायाँ बटनका रूपमा प्रयोग गर्नुहोस्"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"किबोर्डका सर्टकटहरू"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"सर्टकटहरूको सूची देखाउनुहोस्"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"कार्य प्रोफाइल किबोर्ड र उपकरणहरू"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> को नयाँ की छनौट गर्नुहोस्:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"भौतिक किबोर्डको सर्वसुलभता"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"स्टिकी कीहरू, बाउन्स कीहरू, माउस कीहरू"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"कीहरू दोहोर्‍याउनुहोस्"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"वर्ण दोहोरिनुअघि सम्बन्धित कि कति बेरसम्म थिच्न सकिन्छ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"दोहोरिने दर"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"की नछाड्नुन्जेल कीको वर्ण दोहोर्‍याउन की थिचिराख्नुहोस्"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> लेआउट"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"डिफल्ट"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"स्वचालित: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"पूर्वावलोकन"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"डिफल्ट विकल्पहरू"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"भाषा"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"क्याप्सनको आकार"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"क्याप्सनको शैली"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">" कस्टम विकल्प"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"पृष्ठभूमि रङ्ग"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"यो VPN को जडान विच्छेद गर्ने हो?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"डिस्कनेक्ट गर्नुहोस्"</string>
     <string name="vpn_version" msgid="6344167191984400976">"संस्करण"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"संस्करण <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN लाई बिर्सनुहोस्"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"विद्यमान VPN लाई बदल्ने हो?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"सधैँ-सक्रिय VPN लाई सेट गर्ने हो?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"सेटिङ खोज्नुहोस्"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"कन्ट्याक्ट, भण्डारण, खाता"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"कन्ट्याक्टहरूको भण्डारण"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"डिभाइस मात्र"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"नयाँ कन्ट्याक्टहरू खातासँग सिंक गरिने छैनन्"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"डिफल्ट सेटिङअनुसार कन्ट्याक्टहरू तपाईंको डिभाइसमा सेभ गरिने छन् र तपाईंको खातामा सिंक गरिने छन्"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"कुनै डिफल्ट खाता सेट गरिएको छैन"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"सुरु गर्न खाता हाल्नुहोस्"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"खोज्न सर्कल बनाउनुहोस्"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"आफ्नो स्क्रिनमा सामग्री प्रयोग गरेर खोज्न होम बटन वा नेभिगेसन ह्यान्डल टच एण्ड होल्ड गर्नुहोस्।"</string>
 </resources>
diff --git a/res/values-nl/arrays.xml b/res/values-nl/arrays.xml
index b8e9c78..3f280ff 100644
--- a/res/values-nl/arrays.xml
+++ b/res/values-nl/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Sneeuwvlok"</item>
     <item msgid="7952183800501346803">"Parasol"</item>
     <item msgid="799139025758265891">"Werkplaatsgereedschap"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Filmrol"</item>
     <item msgid="5827426100157335512">"Boek"</item>
     <item msgid="8585828346253128384">"Lotusbloem"</item>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index c70d0ca..c939241 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Automatisch instellen met je netwerk- en draadloze signalen"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatische tijdzone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Automatisch instellen op basis van mobiele netwerken bij jou in de buurt"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Automatisch instellen met apparaatlocatie, indien beschikbaar. Soms is ook een actieve wifi-verbinding vereist."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Automatisch instellen met apparaatlocatie, indien beschikbaar"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Standaardinstelling voor land gebruiken"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-uurs klok gebruiken"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Tijd"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Het toetsenbord negeert snel herhaald indrukken van dezelfde toets"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Drempelwaarde voor stuitertoetsen"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Kies hoelang je toetsenbord herhaald indrukken van toetsen negeert"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Aangepast"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"aangepaste waarde"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Langzame toetsen"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Past de tijd voordat een toetsaanslag wordt geactiveerd aan"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Plaktoetsen"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Druk toetsen één voor één in voor snelkoppelingen in plaats van meerdere toetsen tegelijkertijd"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Muisknoppen"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Gebruik je toetsenbord om de cursor te bedienen"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Omgekeerd scrollen met muis"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scroll omhoog om de pagina omlaag te verplaatsen"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Knoppen links en rechts omwisselen"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Gebruik de linkermuisknop als je rechtermuisknop"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Sneltoetsen"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Toon lijst met sneltoetsen"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Toetsenborden en tools van werkprofiel"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Kies een nieuwe toets voor <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Toegankelijkheid met fysiek toetsenbord"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Plaktoetsen, bouncetoetsen, muisknoppen"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Toetsen herhalen"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Vertraging vóór herhaling"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Herhalingssnelheid"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Houd een toets ingedrukt om het bijbehorende teken te herhalen totdat de toets wordt losgelaten"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Indeling: <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standaard"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatisch: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Voorbeeld"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standaardopties"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Taal"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Grootte van ondertiteling"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Ondertitelstijl"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Aangepaste opties"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Achtergrondkleur"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Verbinding met dit VPN verbreken?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Verbinding verbreken"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versie"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versie <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN vergeten"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Bestaande VPN vervangen?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Always-on VPN instellen?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Alleen apparaat"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nieuwe contacten worden niet gesynchroniseerd met een account"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Contacten worden standaard opgeslagen op je apparaat en gesynchroniseerd met je account"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Geen standaard ingesteld"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Voeg een account toe om aan de slag te gaan"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Houd je vinger op de startknop of de navigatiehandgreep om te zoeken op basis van de content op je scherm."</string>
 </resources>
diff --git a/res/values-or/arrays.xml b/res/values-or/arrays.xml
index 133c6cf..c003c2d 100644
--- a/res/values-or/arrays.xml
+++ b/res/values-or/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ସ୍ନୋଫ୍ଲେକ"</item>
     <item msgid="7952183800501346803">"ବେଳାଭୂମିରେ ଛତା"</item>
     <item msgid="799139025758265891">"ୱାର୍କସପ ଟୁଲ"</item>
-    <item msgid="1330084588359129896">"ଟେଣ୍ଟ"</item>
+    <item msgid="8112685757657659269">"ପିଆନୋ"</item>
     <item msgid="3861584909935022342">"ଫିଲ୍ମ ରିଲ"</item>
     <item msgid="5827426100157335512">"ବହି"</item>
     <item msgid="8585828346253128384">"ପଦ୍ମ ଫୁଲ"</item>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 679d9d0..623d5d2 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ଆପଣଙ୍କ ନେଟୱାର୍କ ଏବଂ ୱାୟାରଲେସ ସିଗନାଲକୁ ବ୍ୟବହାର କରି ସ୍ୱତଃ ସେଟ କରନ୍ତୁ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ସ୍ୱତଃ ଟାଇମ ଜୋନ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ଆପଣଙ୍କ ନିକଟରେ ଥିବା ମୋବାଇଲ ନେଟୱାର୍କ ଆଧାରରେ ସ୍ୱତଃ ସେଟ କରନ୍ତୁ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ଯଦି ଉପଲବ୍ଧ ଥାଏ, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନକୁ ବ୍ୟବହାର କରି ସ୍ୱତଃ ସେଟ ହୋଇଥାଏ। ଏକ ସକ୍ରିୟ ୱାଇଫାଇ କନେକ୍ସନ ମଧ୍ୟ ଆବଶ୍ୟକ ହୋଇପାରେ।"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ଯଦି ଉପଲବ୍ଧ ଥାଏ, ତେବେ ଆପଣଙ୍କ ଡିଭାଇସର ଲୋକେସନକୁ ବ୍ୟବହାର କରି ସ୍ୱତଃ ସେଟ ହୋଇଥାଏ"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ଡିଫଲ୍ଟ ସ୍ଥାନର ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-ଘଣ୍ଟିଆ ଫର୍ମାଟ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ସମୟ"</string>
@@ -711,7 +711,7 @@
     <string name="face_unlock_set_unlock_pin" msgid="9034912683791069602">"PIN • ଫେସ"</string>
     <string name="face_unlock_set_unlock_password" msgid="5874950853246424756">"ପାସୱାର୍ଡ • ଫେସ"</string>
     <string name="face_unlock_skip_face" msgid="189695556498300008">"ଫେସ୍ ଅନଲକ୍ ବିନା ଜାରି ରଖନ୍ତୁ"</string>
-    <string name="biometrics_unlock_skip_biometrics" msgid="7399882488272450182">"ଟିପଚିହ୍ନ କିମ୍ବା ଫେସ ବିନା ଜାରି ରଖନ୍ତୁ"</string>
+    <string name="biometrics_unlock_skip_biometrics" msgid="7399882488272450182">"ଫିଙ୍ଗରପ୍ରିଣ୍ଟ କିମ୍ବା ଫେସ ବିନା ଜାରି ରଖନ୍ତୁ"</string>
     <string name="unlock_set_unlock_mode_off" msgid="4632139864722236359">"କିଛି ନାହିଁ"</string>
     <string name="unlock_set_unlock_mode_none" msgid="5596049938457028214">"ସ୍ୱାଇପ"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="1926480143883094896">"ପାଟର୍ନ"</string>
@@ -1946,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"ଫିଜିକାଲ୍ କୀବୋର୍ଡ"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"ବାଉନ୍ସ କୀଗୁଡ଼ିକ"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"କୀବୋର୍ଡ ସମାନ କୀ ଶୀଘ୍ର ବାରମ୍ବାର ଦବାଇବାକୁ ଅଣଦେଖା କରେ"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ବାଉନ୍ସ କୀ ଥ୍ରେସହୋଲ୍ଡ"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ଆପଣଙ୍କ କୀବୋର୍ଡ ବାରମ୍ବାର କୀ ଦବାଇବାକୁ ଅଣଦେଖା କରୁଥିବା ସମୟ ଅବଧି ବାଛନ୍ତୁ"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"ଶ୍ଲୋ କୀଗୁଡ଼ିକ"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"ସକ୍ରିୟ କରିବାକୁ ଏକ କୀ ଦବାଇବା ପାଇଁ ଲାଗୁଥିବା ସମୟକୁ ଏହା ଆଡଜଷ୍ଟ କରେ"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ଷ୍ଟିକି କୀଗୁଡ଼ିକ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ଏକାଠି କୀଗୁଡ଼ିକୁ ଦବାଇ ଧରିବା ପରିବର୍ତ୍ତେ ସର୍ଟକର୍ଟଗୁଡ଼ିକ ପାଇଁ ଥରକେ ଗୋଟିଏ କୀ ଦବାନ୍ତୁ"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"ମାଉସ କୀଗୁଡ଼ିକ"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ପଏଣ୍ଟରକୁ ନିୟନ୍ତ୍ରଣ କରିବା ପାଇଁ ଆପଣଙ୍କ କୀବୋର୍ଡକୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ମାଉସ ରିଭର୍ସ ସ୍କ୍ରୋଲିଂ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ପୃଷ୍ଠାକୁ ତଳକୁ ମୁଭ କରିବା ପାଇଁ ଉପରକୁ ସ୍କ୍ରୋଲ କରନ୍ତୁ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ବାମ ଏବଂ ଡାହାଣ ବଟନକୁ ସ୍ୱାପ କରନ୍ତୁ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ମାଉସର ବାମ ବଟନକୁ ଆପଣଙ୍କ ଡାହାଣ ବଟନ ଭାବେ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"କୀବୋର୍ଡ଼ ସର୍ଟକଟଗୁଡ଼ିକ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ସର୍ଟକଟଗୁଡ଼ିକର ତାଲିକା ଦେଖାନ୍ତୁ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ୱର୍କ ପ୍ରୋଫାଇଲ୍ କୀବୋର୍ଡ &amp; ଟୁଲ୍‌ଗୁଡ଼ିକ"</string>
@@ -2034,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> ପାଇଁ ଏକ ନୂଆ କୀ ବାଛନ୍ତୁ:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ଫିଜିକାଲ କୀବୋର୍ଡ ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ଷ୍ଟିକି କୀ, ବାଉନ୍ସ କୀ, ମାଉସ କୀ"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"କୀଗୁଡ଼ିକୁ ରିପିଟ କରନ୍ତୁ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ରିପିଟ ପୂର୍ବରୁ ହେବା ବିଳମ୍ବ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ରିପିଟ ରେଟ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"କୀ ରିଲିଜ ନହେବା ପର୍ଯ୍ୟନ୍ତ ଏହାର କେରେକ୍ଟରକୁ ରିପିଟ କରିବା ପାଇଁ ଗୋଟିଏ କୀ\'କୁ ଦବାଇ ଧରନ୍ତୁ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> ଲେଆଉଟ"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ସ୍ୱତଃ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2225,7 +2228,7 @@
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ବୁଝିଗଲି"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="13364319079385020">"ବଟନକୁ କଷ୍ଟମାଇଜ କରନ୍ତୁ"</string>
     <string name="accessibility_tutorial_dialog_configure_software_shortcut_type" msgid="8041105223988170653">"ଅଧିକ ବିକଳ୍ପ"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ସର୍ଟକଟ୍"</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"<xliff:g id="SERVICE">%1$s</xliff:g> ସର୍ଟକଟ"</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="48978719406821294">"ଆକ୍ସେସିବିଲିଟୀ ବଟନ"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="7346399253904683940">"ଆକ୍ସେସିବିଲିଟୀ ଜେଶ୍ଚର୍"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"2 ଆଙ୍ଗୁଠି ସାହାଯ୍ୟରେ ଉପରକୁ ସ୍ୱାଇପ୍ କରନ୍ତୁ"</string>
@@ -2442,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ପ୍ରିଭ୍ୟୁ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ଷ୍ଟାଣ୍ଡାର୍ଡ ବିକଳ୍ପଗୁଡ଼ିକ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ଭାଷା"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"କେପ୍ସନ ସାଇଜ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"କ୍ୟାପସନ୍‌ ଷ୍ଟାଇଲ୍‌"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"କଷ୍ଟମ୍‌ ବିକଳ୍ପଗୁଡିକ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ପୃଷ୍ଠପଟ ରଙ୍ଗ"</string>
@@ -2987,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ଏହି VPNକୁ ବିଚ୍ଛିନ୍ନ କରିବେ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ଡିସକନେକ୍ଟ କରନ୍ତୁ"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ସଂସ୍କରଣ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ଭର୍ସନ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPNକୁ ଭୁଲିଯାଅ"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ପୂର୍ବରୁ ଥିବା VPNକୁ ବଦଳାଇବେ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ସର୍ବଦା-ଅନ୍‌ ଥିବା VPN ସେଟ୍‌ କରିବେ?"</string>
@@ -5463,13 +5466,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ସର୍ଚ୍ଚ ସେଟିଂସ"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"କଣ୍ଟାକ୍ଟ, ଷ୍ଟୋରେଜ, ଆକାଉଣ୍ଟ"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"କଣ୍ଟାକ୍ଟ ଷ୍ଟୋରେଜ"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"କେବଳ ଡିଭାଇସ"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ଏକ ଆକାଉଣ୍ଟ ସହ ନୂଆ କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ସିଙ୍କ ହେବ ନାହିଁ"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"କଣ୍ଟାକ୍ଟଗୁଡ଼ିକ ଆପଣଙ୍କ ଡିଭାଇସରେ ସେଭ ହେବ ଏବଂ ଡିଫଲ୍ଟ ଭାବେ ଆପଣଙ୍କ ଆକାଉଣ୍ଟରେ ସିଙ୍କ ହେବ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"କୌଣସି ଡିଫଲ୍ଟ ଆକାଉଣ୍ଟ ସେଟ କରାଯାଇନାହିଁ"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ଆରମ୍ଭ କରିବାକୁ ଏକ ଆକାଉଣ୍ଟ ଯୋଗ କରନ୍ତୁ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ସର୍ଚ୍ଚ କରିବାକୁ ସର୍କଲ କରନ୍ତୁ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ଆପଣଙ୍କ ସ୍କ୍ରିନରେ ଥିବା ବିଷୟବସ୍ତୁକୁ ବ୍ୟବହାର କରି ସର୍ଚ୍ଚ କରିବା ପାଇଁ ହୋମ ବଟନ କିମ୍ବା ନାଭିଗେସନ ହେଣ୍ଡେଲକୁ ସ୍ପର୍ଶ କରି ଧରି ରଖନ୍ତୁ।"</string>
 </resources>
diff --git a/res/values-pa/arrays.xml b/res/values-pa/arrays.xml
index 3b40ab4..26664a4 100644
--- a/res/values-pa/arrays.xml
+++ b/res/values-pa/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ਸਨੋਫਲੇਕ"</item>
     <item msgid="7952183800501346803">"ਬੀਚ ਵਾਲੀ ਛੱਤਰੀ"</item>
     <item msgid="799139025758265891">"ਵਰਕਸ਼ਾਪ ਦੇ ਔਜ਼ਾਰ"</item>
-    <item msgid="1330084588359129896">"ਤੰਬੂ"</item>
+    <item msgid="8112685757657659269">"ਪਿਆਨੋ"</item>
     <item msgid="3861584909935022342">"ਫ਼ਿਲਮ ਰੀਲ"</item>
     <item msgid="5827426100157335512">"ਬੁੱਕ ਕਰੋ"</item>
     <item msgid="8585828346253128384">"ਕਮਲ ਦਾ ਫੁੱਲ"</item>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 21cfb97..94b2c5f 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ਨੈੱਟਵਰਕ ਅਤੇ ਵਾਇਰਲੈੱਸ ਸਿਗਨਲਾਂ ਵਰਤ ਕੇ ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸੈੱਟ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪਾਓ"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ਸਮਾਂ ਖੇਤਰ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸੈੱਟ ਹੋਣ ਦੀ ਸੁਵਿਧਾ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ਆਪਣੇ ਨੇੜੇ-ਤੇੜੇ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕਾਂ ਦੇ ਆਧਾਰ \'ਤੇ ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਸੈੱਟ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪਾਓ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ਡੀਵਾਈਸ ਟਿਕਾਣੇ ਦੇ ਮੁਤਾਬਕ ਸਮਾਂ ਅਤੇ ਤਾਰੀਖ ਖੁਦ ਸੈੱਟ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪਾਓ। ਵਾਈ-ਫਾਈ ਕਨੈਕਸ਼ਨ ਦੀ ਲੋੜ ਪੈ ਸਕਦੀ ਹੈ।"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ਡੀਵਾਈਸ ਟਿਕਾਣੇ ਦੇ ਮੁਤਾਬਕ ਸਮਾਂ ਅਤੇ ਤਾਰੀਖ ਖੁਦ ਸੈੱਟ ਹੋਣ ਦੀ ਸੁਵਿਧਾ ਪਾਓ"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਸਥਾਨਕ ਸਮਾਂ ਵਰਤੋ"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-ਘੰਟੇ ਵਾਲਾ ਫਾਰਮੈਟ ਵਰਤੋ"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"ਸਮਾਂ"</string>
@@ -711,7 +711,7 @@
     <string name="face_unlock_set_unlock_pin" msgid="9034912683791069602">"ਪਿੰਨ • ਚਿਹਰਾ"</string>
     <string name="face_unlock_set_unlock_password" msgid="5874950853246424756">"ਪਾਸਵਰਡ • ਚਿਹਰਾ"</string>
     <string name="face_unlock_skip_face" msgid="189695556498300008">"ਫ਼ੇਸ ਅਣਲਾਕ ਤੋਂ ਬਿਨਾਂ ਜਾਰੀ ਰੱਖੋ"</string>
-    <string name="biometrics_unlock_skip_biometrics" msgid="7399882488272450182">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਜਾਂ ਚਿਹਰਾ ਅਣਲਾਕ ਦੇ ਬਿਨਾਂ ਜਾਰੀ ਰੱਖੋ"</string>
+    <string name="biometrics_unlock_skip_biometrics" msgid="7399882488272450182">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਜਾਂ ਫ਼ੇਸ ਅਣਲਾਕ ਦੇ ਬਿਨਾਂ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="unlock_set_unlock_mode_off" msgid="4632139864722236359">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="unlock_set_unlock_mode_none" msgid="5596049938457028214">"ਸਵਾਈਪ ਕਰੋ"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="1926480143883094896">"ਪੈਟਰਨ"</string>
@@ -1949,15 +1949,26 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"ਵਾਰ-ਵਾਰ ਇੱਕੋ ਕੁੰਜੀ ਨੂੰ ਦਬਾਉਂਦੇ ਰਹਿਣ \'ਤੇ ਕੀ-ਬੋਰਡ ਉਸਨੂੰ ਅਣਡਿੱਠ ਕਰ ਦਿੰਦਾ ਹੈ"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"ਬਾਊਂਸ-ਕੀ ਦੀ ਨਿਊਨਤਮ ਸੀਮਾ"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ਚੁਣੋ ਕਿ ਕਿਸੇ ਕੁੰਜੀ ਨੂੰ ਕਿੰਨੀ ਦੇਰ ਤੱਕ ਵਾਰ-ਵਾਰ ਦਬਾਉਣ \'ਤੇ ਕੀ-ਬੋਰਡ ਕੋਈ ਕਾਰਵਾਈ ਨਹੀਂ ਕਰੇਗਾ"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 ਸਕਿੰਟ"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 ਸਕਿੰਟ"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 ਸਕਿੰਟ"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
+    <skip />
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
+    <skip />
     <string name="slow_keys" msgid="2891452895499690837">"ਸਲੋ ਕੁੰਜੀਆਂ"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"ਕਿਸੇ ਕੁੰਜੀ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਵਿੱਚ ਲੱਗਣ ਵਾਲੇ ਸਮੇਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਦਾ ਹੈ"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ਸਥਿਰ ਕੁੰਜੀਆਂ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ਸ਼ਾਰਟਕੱਟਾਂ ਲਈ ਕੁੰਜੀਆਂ ਨੂੰ ਇਕੱਠੇ ਦਬਾਈ ਰੱਖਣ ਦੀ ਬਜਾਏ ਇੱਕ ਵਾਰ ਵਿੱਚ ਇੱਕ ਕੁੰਜੀ ਦਬਾਓ"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"ਮਾਊਸ ਕੁੰਜੀਆਂ"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"ਪੁਆਇੰਟਰ ਨੂੰ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਆਪਣਾ ਕੀ-ਬੋਰਡ ਵਰਤੋ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ਮਾਊਸ ਦੀ ਉਲਟ ਸਕ੍ਰੋਲਿੰਗ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"ਪੰਨੇ ਨੂੰ ਹੇਠਾਂ ਲਿਜਾਉਣ ਲਈ ਉੱਪਰ ਵੱਲ ਸਕ੍ਰੋਲ ਕਰੋ"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ਖੱਬੇ ਅਤੇ ਸੱਜੇ ਬਟਨਾਂ ਨੂੰ ਸਵੈਪ ਕਰੋ"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ਮਾਊਸ ਦੇ ਖੱਬੇ ਬਟਨ ਨੂੰ ਆਪਣੇ ਸੱਜੇ ਬਟਨ ਵਜੋਂ ਵਰਤੋ"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟ"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ਸ਼ਾਰਟਕੱਟਾਂ ਦੀ ਸੂਚੀ ਦਿਖਾਓ"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਕੀ-ਬੋਰਡ ਅਤੇ ਟੂਲ"</string>
@@ -2026,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> ਲਈ ਨਵੀਂ ਕੁੰਜੀ ਚੁਣੋ:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ਭੌਤਿਕ ਕੀ-ਬੋਰਡ ਪਹੁੰਚਯੋਗਤਾ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ਸਥਿਰ ਕੁੰਜੀਆਂ, ਬਾਊਂਸ ਕੁੰਜੀਆਂ, ਮਾਊਸ ਕੁੰਜੀਆਂ"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ਕੁੰਜੀਆਂ ਨੂੰ ਦੁਹਰਾਓ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"ਦੁਹਰਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਦੇਰੀ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ਦੁਹਰਾਉਣ ਦੀ ਦਰ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ਕਿਸੇ ਕੁੰਜੀ ਨੂੰ ਦਬਾ ਕੇ ਰੱਖਣ \'ਤੇ, ਉਸ ਕੁੰਜੀ ਦਾ ਅੱਖਰ-ਚਿੰਨ੍ਹ ਉਦੋਂ ਤੱਕ ਦੁਹਰਾਇਆ ਜਾਵੇਗਾ, ਜਦੋਂ ਤੱਕ ਕੁੰਜੀ ਨੂੰ ਛੱਡਿਆ ਨਹੀਂ ਜਾਂਦਾ"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> ਖਾਕਾ"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ਪੂਰਵ-ਨਿਰਧਾਰਿਤ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ਸਵੈਚਲਿਤ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ਪੂਰਵ-ਝਲਕ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ਮਿਆਰੀ ਚੋਣਾਂ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ਭਾਸ਼ਾ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ਸੁਰਖੀ ਦਾ ਆਕਾਰ"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"ਸੁਰਖੀ ਦੀ ਸ਼ੈਲੀ"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ਵਿਉਂਂਤੀ ਵਿਕਲਪ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"ਬੈਕਗ੍ਰਾਉਂਡ ਦਾ ਰੰਗ"</string>
@@ -2979,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ਇਹ VPN ਡਿਸਕਨੈਕਟ ਕਰੀਏ?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ਵਰਜਨ"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ਵਰਜਨ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN ਨੂੰ ਭੁੱਲ ਜਾਓ"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ਕੀ ਮੌਜੂਦਾ VPN ਨੂੰ ਤਬਦੀਲ ਕਰਨਾ ਹੈ?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ਕੀ ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN ਨੂੰ ਸੈੱਟ ਕਰਨਾ ਹੈ?"</string>
@@ -3886,7 +3897,7 @@
     <string name="zen_mode_other_sounds_summary" msgid="8784400697494837032">"{count,plural,offset:2 =0{ਕੋਈ ਵੀ ਚੀਜ਼ ਵਿਘਨ ਨਹੀਂ ਪਾ ਸਕਦੀ}=1{{sound_category_1} ਕਰਕੇ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ}=2{{sound_category_1} ਅਤੇ {sound_category_2} ਕਰਕੇ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ}=3{{sound_category_1}, {sound_category_2}, ਅਤੇ{sound_category_3} ਕਰਕੇ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ}other{{sound_category_1}, {sound_category_2}, ਅਤੇ # ਹੋਰ ਚੀਜ਼ਾਂ ਕਰਕੇ ਵਿਘਨ ਪੈ ਸਕਦਾ ਹੈ}}"</string>
     <string name="zen_mode_sounds_none" msgid="6557474361948269420">"ਕੋਈ ਵੀ ਚੀਜ਼ ਵਿਘਨ ਨਹੀਂ ਪਾ ਸਕਦੀ"</string>
     <string name="zen_mode_people_none" msgid="4613147461974255046">"ਕੋਈ ਵੀ ਵਿਘਨ ਨਹੀਂ ਪਾ ਸਕਦਾ"</string>
-    <string name="zen_mode_people_some" msgid="9101872681298810281">"ਕੁਝ ਲੋਕ ਵਿਘਨ ਪਾ ਸਕਦੇ ਹਨ"</string>
+    <string name="zen_mode_people_some" msgid="9101872681298810281">"ਕੁਝ ਲੋਕ ਰੁਕਾਵਟ ਪੈਦਾ ਕਰ ਸਕਦੇ ਹਨ"</string>
     <string name="zen_mode_people_repeat_callers" msgid="4499084111069828761">"ਵਾਰ-ਵਾਰ ਕਾਲ ਕਰਨ ਵਾਲਿਆਂ ਕਰਕੇ ਰੁਕਾਵਟ ਪੈ ਸਕਦੀ ਹੈ"</string>
     <string name="zen_mode_people_all" msgid="311036110283015205">"ਸਾਰੇ ਲੋਕ ਵਿਘਨ ਪਾ ਸਕਦੇ ਹਨ"</string>
     <string name="zen_mode_repeat_callers" msgid="2270356100287792138">"ਦੁਬਾਰਾ ਕਾਲ ਕਰਨ ਵਾਲੇ"</string>
@@ -5457,6 +5468,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"ਸਿਰਫ਼ ਡੀਵਾਈਸ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"ਨਵੇਂ ਸੰਪਰਕਾਂ ਨੂੰ ਕਿਸੇ ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ਸੰਪਰਕਾਂ ਨੂੰ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਤੌਰ \'ਤੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ \'ਤੇ ਰੱਖਿਅਤ ਕੀਤਾ ਜਾਵੇਗਾ ਅਤੇ ਤੁਹਾਡੇ ਖਾਤੇ ਨਾਲ ਸਿੰਕ ਕੀਤਾ ਜਾਵੇਗਾ"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ਕੁਝ ਵੀ ਪੂਰਵ-ਨਿਰਧਾਰਿਤ ਵਜੋਂ ਸੈੱਟ ਨਹੀਂ ਹੈ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਕੋਈ ਖਾਤਾ ਸ਼ਾਮਲ ਕਰੋ"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"ਖੋਜਣ ਲਈ ਚੱਕਰ ਬਣਾਓ"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਮੌਜੂਦ ਸਮੱਗਰੀ ਦੀ ਵਰਤੋਂ ਕਰ ਕੇ ਖੋਜਣ ਲਈ ਹੋਮ ਬਟਨ ਨੈਵੀਗੇਸ਼ਨ ਹੈਂਡਲ ਨੂੰ ਸਪਰਸ਼ ਕਰ ਕੇ ਰੱਖੋ।"</string>
 </resources>
diff --git a/res/values-pl/arrays.xml b/res/values-pl/arrays.xml
index b2634cd..cdb1ce5 100644
--- a/res/values-pl/arrays.xml
+++ b/res/values-pl/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Płatek śniegu"</item>
     <item msgid="7952183800501346803">"Parasol plażowy"</item>
     <item msgid="799139025758265891">"Narzędzia warsztatowe"</item>
-    <item msgid="1330084588359129896">"Namiot"</item>
+    <item msgid="8112685757657659269">"Fortepian"</item>
     <item msgid="3861584909935022342">"Klatka filmowa"</item>
     <item msgid="5827426100157335512">"Książka"</item>
     <item msgid="8585828346253128384">"Kwiat lotosu"</item>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 92057eb..1c9cc5a 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Ustaw automatycznie za pomocą sygnałów bezprzewodowych i sieci"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatyczna strefa czasowa"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Ustaw automatycznie na podstawie pobliskich sieci komórkowych"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Ustaw automatycznie według lokalizacji, jeśli jest dostępna. Może być też wymagane aktywne Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Ustaw automatycznie według lokalizacji, jeśli jest dostępna"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Używaj ustawień domyślnych dla regionu"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Format 24-godzinny"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Godzina"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ułatwienia dostępu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Klawiatura fizyczna"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Klawisze z filtrem powtórzeń"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klawiatura ignoruje szybko powtarzane naciśnięcia tego samego klawisza"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Próg klawisza z filtrem powtórzeń"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Wybierz czas, przez który klawiatura ma ignorować powtarzane naciśnięcia klawiszy"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Niestandardowa"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"wartość niestandardowa"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Klawisze powolne"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Dostosowuje czas wymagany do aktywacji naciśnięcia klawisza"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Klawisze trwałe"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Naciśnij 1 klawisz, aby zyskać dostęp do skrótów, zamiast przytrzymywać kilka jednocześnie"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Klawisze sterowania myszą"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Używaj klawiatury do sterowania wskaźnikiem"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Odwrotne przewijanie myszą"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Przewiń w górę, aby przesunąć stronę w dół"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Zamień lewy i prawy przycisk"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Używaj lewego przycisku myszy jako prawego"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Skróty klawiszowe"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Lista skrótów"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klawiatura i narzędzia w profilu służbowym"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Wybierz nowy klawisz jako <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Ułatwienia dostępu z klawiatury fizycznej"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Klawisze trwałe, Klawisze z filtrem powtórzeń, klawisze sterowania myszą"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Powtarzaj znaki klawiszy"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Opóźnienie przed powtórzeniem"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Szybkość powtarzania"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Przytrzymaj klawisz, aby powtarzać dany znak"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Układ <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Domyślny"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatyczny: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Podgląd"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opcje standardowe"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Język"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Rozmiar napisów"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Styl napisów"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opcje niestandardowe"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Kolor tła"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Odłączyć tę sieć VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Odłącz"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Wersja"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Wersja <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zapomnij VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Zastąpić obecną sieć VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Ustawić stały VPN?"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Ustawienia wyszukiwania"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakty, spis, konto"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Spis kontaktów"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Tylko urządzenie"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nowe kontakty nie będą synchronizowane z kontem"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakty będą domyślnie zapisywane na urządzeniu i synchronizowane z kontem"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nie ustawiono konta domyślnego"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Na początek dodaj konto"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Zaznacz, aby wyszukać"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Aby wyszukać to, co jest widoczne na ekranie, naciśnij i przytrzymaj przycisk ekranu głównego lub uchwyt nawigacyjny."</string>
 </resources>
diff --git a/res/values-pt-rBR/arrays.xml b/res/values-pt-rBR/arrays.xml
index 6822b22..35df470 100644
--- a/res/values-pt-rBR/arrays.xml
+++ b/res/values-pt-rBR/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Floco de neve"</item>
     <item msgid="7952183800501346803">"Guarda-sol"</item>
     <item msgid="799139025758265891">"Ferramentas"</item>
-    <item msgid="1330084588359129896">"Barraca"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rolo de filme"</item>
     <item msgid="5827426100157335512">"Livro"</item>
     <item msgid="8585828346253128384">"Flor de lótus"</item>
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 7700159..61760a7 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Definir automaticamente usando sua rede e sinais sem fio"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuso horário automático"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Definir automaticamente com base nas redes móveis perto de você"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Definir automaticamente usando o local do dispositivo, se disponível. Também pode ser necessário ter uma conexão Wi-Fi ativa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Definir automaticamente usando o local do dispositivo, se disponível"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar o padrão do local"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usar formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Horário"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtragem"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Limite da tecla de filtragem"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Escolha por quanto tempo o teclado ignora pressionamentos repetidos"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Pressione uma tecla por vez para usar atalhos em vez de manter as teclas pressionadas juntas"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas do mouse"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Use o teclado para controlar o ponteiro"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Rolagem reversa do mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Deslize para cima para descer na página"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Trocar os botões esquerdo e direito"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use o botão esquerdo do mouse como o direito"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Escolha uma nova tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Acessibilidade do teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas de aderência, teclas de filtragem, teclas do mouse"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetir teclas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Atraso antes da repetição"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Taxa de repetição"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pressione e segure uma tecla para repetir o caractere dela até que seja liberada"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layout do <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Padrão"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automático: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2217,7 +2215,7 @@
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"Para iniciar ou interromper a ampliação, toque duas vezes rapidamente com %1$d dedos na tela"</string>
     <string name="accessibility_tutorial_dialog_message_quick_setting" msgid="3715446725334547432">"{count,plural, =1{Para usar esse recurso, deslize de cima para baixo na tela. Depois, encontre o bloco {featureName}.}one{Para usar esse recurso, deslize com # dedo de cima para baixo na tela. Depois, encontre o bloco {featureName}.}other{Para usar esse recurso, deslize com # dedos de cima para baixo na tela. Depois, encontre o bloco {featureName}.}}"</string>
     <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"Esse atalho vai estar disponível depois que você concluir a configuração do dispositivo."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize dois dedos na rela, de baixo para cima.\n\nPara mudar de recurso, deslize dois dedos de baixo para cima da tela e segure."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize dois dedos na tela, de baixo para cima.\n\nPara mudar de recurso, deslize dois dedos de baixo para cima da tela e segure."</string>
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction" msgid="7349950768250852308">"{count,plural, =1{Para usar esse recurso, deslize de baixo para cima na tela}one{Para usar esse recurso, deslize com # dedo de baixo para cima na tela}other{Para usar esse recurso, deslize com # dedos de baixo para cima na tela}}"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esse recurso, deslize de baixo para cima na tela com três dedos.\n\nPara mudar de recurso, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Visualização"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opções padrão"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamanho da legenda"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo da legenda"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opções de personalização"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Cor do plano de fundo"</string>
@@ -2625,7 +2622,7 @@
     <string name="power_wifi" msgid="4614007837288250325">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="5085900180846238196">"Bluetooth"</string>
     <string name="power_cell" msgid="7793805106954398186">"Rede móvel"</string>
-    <string name="power_phone" msgid="2768396619208561670">"Chamadas de voz"</string>
+    <string name="power_phone" msgid="2768396619208561670">"Ligações"</string>
     <string name="battery_screen_usage" msgid="90008745183187461">"Uso da tela: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_used_by" msgid="6457305178016189330">"<xliff:g id="PERCENT">%1$s</xliff:g> de uso por <xliff:g id="APP">%2$s</xliff:g>"</string>
     <string name="battery_overall_usage" msgid="8940140259734182014">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconectar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versão"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versão <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Esquecer VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Substituir VPN já existente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Configurar VPN sempre ativa?"</string>
@@ -4941,7 +4939,7 @@
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
     <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
-    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Permitir janelas de forma livre na tela secundária"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ativar janelas de forma livre na tela secundária"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar recursos não redimensionáveis em várias janelas"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permitir que apps não redimensionáveis sejam usados em várias janelas"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Manter o recurso Forçar modo escuro ativado"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contatos, armazenamento, conta"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Armazenamento de contatos"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Somente dispositivo"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Os novos contatos não serão sincronizados com uma conta"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Os contatos serão salvos no seu dispositivo e sincronizados com sua conta por padrão"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nenhuma conta padrão configurada"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Adicione uma conta para começar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circule para pesquisar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Toque no botão home ou na alça de navegação e pressione para pesquisar usando o conteúdo na tela."</string>
 </resources>
diff --git a/res/values-pt-rPT/arrays.xml b/res/values-pt-rPT/arrays.xml
index 15a519e..2b2b596 100644
--- a/res/values-pt-rPT/arrays.xml
+++ b/res/values-pt-rPT/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Floco de neve"</item>
     <item msgid="7952183800501346803">"Guarda-sol"</item>
     <item msgid="799139025758265891">"Ferramentas de oficina"</item>
-    <item msgid="1330084588359129896">"Tenda"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Bobina de filme"</item>
     <item msgid="5827426100157335512">"Livro"</item>
     <item msgid="8585828346253128384">"Flor de lótus"</item>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index d3ec13e..6718b7d 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Definir automaticamente com base na sua rede e sinais sem fios"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuso horário automático"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Definir automaticamente com base nas redes móveis perto de si"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Definir autom. c/ localização do disp., se disponível. Também pode ser necessária uma ligação Wi-Fi ativa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Definir automaticamente com base na localização do dispositivo, se disponível"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar local predefinido"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usar formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Hora"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"O teclado ignora as pressões rápidas repetidas da mesma tecla"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Limiar para evitar pressão repetida"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Escolha o tempo durante o qual o teclado ignora as pressões repetidas das teclas"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta o tempo que demora a ativação de uma tecla pressionada"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas aderentes"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Prima uma tecla de cada vez para os atalhos em vez de manter as teclas premidas em simultâneo"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas do rato"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Use o teclado para controlar o ponteiro"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Deslocamento inverso do rato"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Desloque para cima para mover a página para baixo"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Trocar botões esquerdo e direito"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use o botão esquerdo do rato como o botão direito"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos de teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostre a lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas do perfil de trabalho"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Escolha uma nova tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Acessibilidade do teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas aderentes, teclas sem repetição, teclas do rato"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetir teclas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Atraso antes da repetição"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Taxa de repetição"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mantenha uma tecla premida para repetir o respetivo caráter até a tecla ser libertada"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Esquema do <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predefinição"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automático: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Pré-visualizar"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opções padrão"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamanho das legendas"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo das legendas"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opções personalizadas"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Cor de fundo"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Quer desligar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desligar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versão"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versão <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Esquecer VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Quer substituir a VPN existente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Quer definir a VPN como sempre ativa?"</string>
@@ -5214,7 +5220,7 @@
     <string name="reboot_dialog_reboot_later" msgid="4261717094186904568">"Reiniciar mais tarde"</string>
     <string name="bluetooth_details_spatial_audio_title" msgid="1368071116994002707">"Áudio espacial"</string>
     <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_title" msgid="5416972521040337799">"Posição 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_permissions_sync_title" msgid="7277580382321003521">"Sincronizar autorizações do telemóvel"</string>
     <string name="bluetooth_details_permissions_sync_summary" msgid="8125037984381432059">"Conceda ao seu relógio as mesmas autorizações da app que concedeu a este telemóvel"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Apenas no dispositivo"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Os novos contactos não vão ser sincronizados com uma conta"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Os contactos vão ser guardados no dispositivo e sincronizados com a sua conta por predefinição"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nenhuma conta predefinida"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Adicione uma conta para começar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circundar para Pesquisar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Toque sem soltar no botão do ecrã principal ou no indicador de navegação para pesquisar usando o conteúdo no ecrã."</string>
 </resources>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index 6822b22..35df470 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Floco de neve"</item>
     <item msgid="7952183800501346803">"Guarda-sol"</item>
     <item msgid="799139025758265891">"Ferramentas"</item>
-    <item msgid="1330084588359129896">"Barraca"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Rolo de filme"</item>
     <item msgid="5827426100157335512">"Livro"</item>
     <item msgid="8585828346253128384">"Flor de lótus"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 7700159..61760a7 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Definir automaticamente usando sua rede e sinais sem fio"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fuso horário automático"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Definir automaticamente com base nas redes móveis perto de você"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Definir automaticamente usando o local do dispositivo, se disponível. Também pode ser necessário ter uma conexão Wi-Fi ativa."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Definir automaticamente usando o local do dispositivo, se disponível"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Usar o padrão do local"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Usar formato de 24 horas"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Horário"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Acessibilidade"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Teclado físico"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Teclas de filtragem"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"O teclado ignora pressionamentos rápidos e repetidos da mesma tecla"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Limite da tecla de filtragem"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Escolha por quanto tempo o teclado ignora pressionamentos repetidos"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizado"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valor personalizado"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Teclas lentas"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ajusta o tempo que leva para um pressionamento de tecla ser ativado"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Teclas de aderência"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Pressione uma tecla por vez para usar atalhos em vez de manter as teclas pressionadas juntas"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Teclas do mouse"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Use o teclado para controlar o ponteiro"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Rolagem reversa do mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Deslize para cima para descer na página"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Trocar os botões esquerdo e direito"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Use o botão esquerdo do mouse como o direito"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Atalhos do teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Mostrar lista de atalhos"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Teclados e ferramentas de perfil de trabalho"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Escolha uma nova tecla para <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Acessibilidade do teclado físico"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Teclas de aderência, teclas de filtragem, teclas do mouse"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetir teclas"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Atraso antes da repetição"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Taxa de repetição"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pressione e segure uma tecla para repetir o caractere dela até que seja liberada"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layout do <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Padrão"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automático: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2217,7 +2215,7 @@
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction" msgid="1007756360115974649">"Para iniciar ou interromper a ampliação, toque duas vezes rapidamente com %1$d dedos na tela"</string>
     <string name="accessibility_tutorial_dialog_message_quick_setting" msgid="3715446725334547432">"{count,plural, =1{Para usar esse recurso, deslize de cima para baixo na tela. Depois, encontre o bloco {featureName}.}one{Para usar esse recurso, deslize com # dedo de cima para baixo na tela. Depois, encontre o bloco {featureName}.}other{Para usar esse recurso, deslize com # dedos de cima para baixo na tela. Depois, encontre o bloco {featureName}.}}"</string>
     <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw" msgid="3847728530771929959">"Esse atalho vai estar disponível depois que você concluir a configuração do dispositivo."</string>
-    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize dois dedos na rela, de baixo para cima.\n\nPara mudar de recurso, deslize dois dedos de baixo para cima da tela e segure."</string>
+    <string name="accessibility_tutorial_dialog_message_gesture" msgid="4148062210755434854">"Para usar esse recurso, deslize dois dedos na tela, de baixo para cima.\n\nPara mudar de recurso, deslize dois dedos de baixo para cima da tela e segure."</string>
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction" msgid="7349950768250852308">"{count,plural, =1{Para usar esse recurso, deslize de baixo para cima na tela}one{Para usar esse recurso, deslize com # dedo de baixo para cima na tela}other{Para usar esse recurso, deslize com # dedos de baixo para cima na tela}}"</string>
     <string name="accessibility_tutorial_dialog_message_gesture_talkback" msgid="8142847782708562793">"Para usar esse recurso, deslize de baixo para cima na tela com três dedos.\n\nPara mudar de recurso, deslize de baixo para cima com três dedos, sem soltar."</string>
     <string name="accessibility_tutorial_dialog_message_gesture_settings" msgid="40769674586981429">"Para usar um recurso de acessibilidade, deslize de baixo para cima na tela com dois dedos.\n\nPara alternar entre recursos, deslize de baixo para cima com dois dedos, sem soltar."</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Visualização"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opções padrão"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Idioma"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tamanho da legenda"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Estilo da legenda"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opções de personalização"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Cor do plano de fundo"</string>
@@ -2625,7 +2622,7 @@
     <string name="power_wifi" msgid="4614007837288250325">"Wi-Fi"</string>
     <string name="power_bluetooth" msgid="5085900180846238196">"Bluetooth"</string>
     <string name="power_cell" msgid="7793805106954398186">"Rede móvel"</string>
-    <string name="power_phone" msgid="2768396619208561670">"Chamadas de voz"</string>
+    <string name="power_phone" msgid="2768396619208561670">"Ligações"</string>
     <string name="battery_screen_usage" msgid="90008745183187461">"Uso da tela: <xliff:g id="TIME">^1</xliff:g>"</string>
     <string name="battery_used_by" msgid="6457305178016189330">"<xliff:g id="PERCENT">%1$s</xliff:g> de uso por <xliff:g id="APP">%2$s</xliff:g>"</string>
     <string name="battery_overall_usage" msgid="8940140259734182014">"<xliff:g id="PERCENT">%1$s</xliff:g> da bateria total"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Desconectar"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versão"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versão <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Esquecer VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Substituir VPN já existente?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Configurar VPN sempre ativa?"</string>
@@ -4941,7 +4939,7 @@
     <string name="bluetooth_header_battery_content_description" msgid="3804237436331504879">"Bateria"</string>
     <string name="settings_panel_title" msgid="346363079938069215">"Painel de configurações"</string>
     <string name="enable_desktop_mode" msgid="5644818402534562302">"Ativar janelas de forma livre"</string>
-    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Permitir janelas de forma livre na tela secundária"</string>
+    <string name="enable_desktop_mode_on_secondary_display" msgid="2609567824593768780">"Ativar janelas de forma livre na tela secundária"</string>
     <string name="enable_non_resizable_multi_window" msgid="6832903754625404477">"Ativar recursos não redimensionáveis em várias janelas"</string>
     <string name="enable_non_resizable_multi_window_summary" msgid="3275763753261901999">"Permitir que apps não redimensionáveis sejam usados em várias janelas"</string>
     <string name="hwui_force_dark_title" msgid="4256904905631994219">"Manter o recurso Forçar modo escuro ativado"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Pesquisar configurações"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"contatos, armazenamento, conta"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Armazenamento de contatos"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Somente dispositivo"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Os novos contatos não serão sincronizados com uma conta"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Os contatos serão salvos no seu dispositivo e sincronizados com sua conta por padrão"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nenhuma conta padrão configurada"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Adicione uma conta para começar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circule para pesquisar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Toque no botão home ou na alça de navegação e pressione para pesquisar usando o conteúdo na tela."</string>
 </resources>
diff --git a/res/values-ro/arrays.xml b/res/values-ro/arrays.xml
index b7d382c..1872920 100644
--- a/res/values-ro/arrays.xml
+++ b/res/values-ro/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Fulg de nea"</item>
     <item msgid="7952183800501346803">"Umbrelă de plajă"</item>
     <item msgid="799139025758265891">"Instrumente din atelier"</item>
-    <item msgid="1330084588359129896">"Cort"</item>
+    <item msgid="8112685757657659269">"Pian"</item>
     <item msgid="3861584909935022342">"Bobină de film"</item>
     <item msgid="5827426100157335512">"Carte"</item>
     <item msgid="8585828346253128384">"Floare de lotus"</item>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 44e38ba..1f6e065 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Setează automat folosind semnalele de rețea și wireless"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Fus orar automat"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Setează automat în funcție de rețelele mobile din apropiere"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Setează automat folosind locația, dacă este disponibilă. Poate fi necesară o conexiune Wi-Fi activă."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Setează automat folosind locația, dacă este disponibilă"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Folosește codul local prestabilit"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Folosește formatul de 24 de ore"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Oră"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Accesibilitate"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastatură fizică"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Taste nerepetate"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastatura ignoră apăsările repetate rapid ale aceleiași taste"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Pragul pentru evitarea apăsării repetate"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Alege durata de timp în care tastatura ignoră apăsările repetate ale tastelor"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 sec."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 sec."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 sec."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Personalizată"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"valoare personalizată"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Taste lente"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ajustează timpul necesar pentru activarea unei apăsări de tastă"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Taste adezive"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Apasă câte o tastă pentru comenzile rapide în loc să ții apăsate tastele împreună"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Butoanele mouse-ului"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Folosește tastatura pentru a controla indicatorul"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Derularea inversă cu mouse-ul"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Derulează în sus pentru a muta pagina în jos"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Schimbă butoanele stâng și drept"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Folosește butonul stâng al mouse-ului ca pe cel drept"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Comenzi rapide de la tastatură"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Afișează lista de comenzi rapide"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastaturi și instrumente pt. profilul de serviciu"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Alege o nouă tastă pentru <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accesibilitatea tastaturii fizice"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Taste adezive, Taste nerepetate, Butoanele mouse-ului"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Repetă tastele"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Durata până la repetare"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Frecvența de repetare"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Apasă lung o tastă pentru a repeta caracterul respectiv până când o eliberezi"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Aspectul <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Prestabilit"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automat: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Previzualizare"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opțiuni standard"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Limbă"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Dimensiunea subtitrării"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stilul subtitrării"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Opțiuni personalizate"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Culoare de fundal"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vrei să te deconectezi de la această rețea VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Deconectează-te"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versiune"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versiunea <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Elimină profilul VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Înlocuiești rețeaua VPN existentă?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Setezi rețeaua VPN ca activată permanent?"</string>
@@ -5463,13 +5461,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Caută în setări"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"agendă, spațiu de stocare, cont"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Stocarea datelor din Agendă"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Numai pe dispozitiv"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Contactele noi nu se vor sincroniza cu un cont"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Persoanele de contact vor fi salvate pe dispozitiv și sincronizate cu contul în mod prestabilit"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nicio setare prestabilită"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Adaugă un cont pentru a începe"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Încercuiește și caută"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Atinge lung butonul Ecran de pornire sau ghidajul de navigare ca să cauți folosind conținutul de pe ecran."</string>
 </resources>
diff --git a/res/values-ru/arrays.xml b/res/values-ru/arrays.xml
index 8dd023f..7a989eb 100644
--- a/res/values-ru/arrays.xml
+++ b/res/values-ru/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Снежинка"</item>
     <item msgid="7952183800501346803">"Пляжный зонт"</item>
     <item msgid="799139025758265891">"Инструменты в мастерской"</item>
-    <item msgid="1330084588359129896">"Палатка"</item>
+    <item msgid="8112685757657659269">"Пианино"</item>
     <item msgid="3861584909935022342">"Кинопленка"</item>
     <item msgid="5827426100157335512">"Книга"</item>
     <item msgid="8585828346253128384">"Цветок лотоса"</item>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 1492f90..66404db 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Устанавливать автоматически, используя сеть устройства и беспроводные сигналы"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Автоматическое определение часового пояса"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Устанавливать автоматически, используя мобильные сети поблизости"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Устанавливать автоматически, используя геолокацию. Может требоваться подключение к Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Устанавливать автоматически, используя геолокацию"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Региональные настройки по умолчанию"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-часовой формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Время"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Специальные возможности"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Физическая клавиатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Контроль повторного нажатия"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Быстро повторяющиеся нажатия одной клавиши на клавиатуре будут игнорироваться"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Интервал между повторными нажатиями"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Выберите, в течение какого времени будут игнорироваться повторные нажатия клавиши на клавиатуре."</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 сек."</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 сек."</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 сек."</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Свой вариант"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"пользовательское значение"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Медленные клавиши"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Настроить длительность интервала между нажатием клавиши и назначенным на нее действием"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Залипание клавиш"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Вместо того чтобы удерживать вместе все клавиши из сочетания, нажимайте их по одной"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Клавиши управления мышью"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Управлять указателем с помощью клавиатуры"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Прокручивать мышью в обратном направлении"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Если прокрутить вверх, страница прокрутится вниз"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Поменять местами левую и правую кнопки"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Использовать левую кнопку мыши в качестве правой"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Быстрые клавиши"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показывать список сочетаний клавиш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавиатуры и инструменты рабочего профиля"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Выберите новую клавишу для <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Специальные возможности для физической клавиатуры"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Залипание клавиш, контроль повторного нажатия, клавиши управления мышью"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Повторный ввод символа"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Задержка перед повторным нажатием"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Скорость повторного ввода"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Повторять ввод символа, пока удерживается клавиша"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Раскладка \"<xliff:g id="IME_LABEL">%s</xliff:g>\""</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"По умолчанию"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматически: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2225,7 +2223,7 @@
     <string name="accessibility_tutorial_dialog_button" msgid="2031773187678948436">"ОК"</string>
     <string name="accessibility_tutorial_dialog_link_button" msgid="13364319079385020">"Настроить кнопку"</string>
     <string name="accessibility_tutorial_dialog_configure_software_shortcut_type" msgid="8041105223988170653">"Ещё"</string>
-    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Быстрый запуск функции \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
+    <string name="accessibility_shortcut_title" msgid="8125867833704517463">"Быстрый запуск \"<xliff:g id="SERVICE">%1$s</xliff:g>\""</string>
     <string name="accessibility_shortcut_edit_summary_software" msgid="48978719406821294">"Кнопка специальных возможностей"</string>
     <string name="accessibility_shortcut_edit_summary_software_gesture" msgid="7346399253904683940">"Жест специальных возможностей"</string>
     <string name="accessibility_shortcut_edit_dialog_title_software_gesture" msgid="8078659880723370597">"Движение вверх по экрану двумя пальцами"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Предпросмотр"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандартные настройки"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Язык"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Размер субтитров"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стиль субтитров"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Собственные настройки"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Цвет фона"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Отключиться от VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Да"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Версия"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Версия <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Удалить VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Сменить текущую VPN-сеть?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Настроить постоянную VPN-сеть?"</string>
@@ -4119,7 +4117,7 @@
     <string name="usb_summary_UVC_power" msgid="226810354412154061">"Режим веб-камеры и зарядка"</string>
     <string name="background_check_pref" msgid="5304564658578987535">"Фоновая проверка"</string>
     <string name="assist_access_context_title" msgid="5201495523514096201">"Использовать текст с экрана"</string>
-    <string name="assist_access_context_summary" msgid="6951814413185646275">"Разрешить просматривать содержимое экрана в виде текста"</string>
+    <string name="assist_access_context_summary" msgid="6951814413185646275">"Разрешить приложению-помощнику доступ к содержимому экрана в виде текста"</string>
     <string name="assist_access_screenshot_title" msgid="4395902231753643633">"Использовать скриншот"</string>
     <string name="assist_access_screenshot_summary" msgid="5276593070956201863">"Разрешить приложению-помощнику доступ к изображению экрана"</string>
     <string name="assist_flash_title" msgid="5449512572885550108">"Подсвечивать экран"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Поиск по настройкам"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"контакты, хранилище, аккаунт"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Контакты"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Только на устройстве"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Новые контакты не будут синхронизироваться с аккаунтом"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Контакты будут по умолчанию сохраняться на устройстве и синхронизироваться с аккаунтом"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Аккаунт по умолчанию не задан"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Сначала добавьте аккаунт"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Обвести и найти"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Чтобы запустить поиск по экрану, нажмите и удерживайте кнопку главного экрана или маркер навигации"</string>
 </resources>
diff --git a/res/values-si/arrays.xml b/res/values-si/arrays.xml
index 907185d..f2278b7 100644
--- a/res/values-si/arrays.xml
+++ b/res/values-si/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"හිම මල්"</item>
     <item msgid="7952183800501346803">"වෙරළ කුඩය"</item>
     <item msgid="799139025758265891">"වැඩමුළු මෙවලම්"</item>
-    <item msgid="1330084588359129896">"කූඩාරම"</item>
+    <item msgid="8112685757657659269">"පියානෝව"</item>
     <item msgid="3861584909935022342">"සිනමා පටය"</item>
     <item msgid="5827426100157335512">"පොත"</item>
     <item msgid="8585828346253128384">"නෙළුම් මල"</item>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 0ff08b9..7e47d8b 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ඔබේ ජාලය සහ රැහැන් රහිත සංඥා භාවිතයෙන් ස්වයංක්‍රීයව සකසන්න"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ස්වයංක්‍රීය වේලා කලාපය"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ඔබ අසල ඇති ජංගම ජාල මත පදනම්ව ස්වයංක්‍රීයව සකසන්න"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"තිබේ නම්, ඔබේ උපාංග ස්ථානය භාවිතයෙන් ස්වයංක්‍රීයව සකසන්න. සක්‍රිය Wifi සම්බන්ධතාවයක් ද අවශ්‍ය විය හැක."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"තිබේ නම්, ඔබේ උපාංග ස්ථානය භාවිතයෙන් ස්වයංක්‍රීයව සකසන්න"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"පෙදෙසි පෙරනිමි භාවිත කරන්න"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"පැය 24 ආකාරය භාවිත කරන්න"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"වේලාව"</string>
@@ -1946,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"ප්‍රවේශ්‍යතාව"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"භෞතික යතුරු පුවරුව"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"පනින යතුරු"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"යතුරු පුවරුව එකම යතුර ඉක්මනින් නැවත නැවතත් එබීම නොසලකා හරියි"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"උඩ පනින යතුරු සීමාව"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ඔබේ යතුරු පුවරුව නැවත නැවතත් යතුරු එබීම නොසලකා හරින කාල සීමාව තෝරා ගන්න"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"මන්දගාමී යතුරු"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"යතුරු එබීම සක්‍රිය වීම සඳහා එයට ගතවන කාලය සකසයි"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ඇලෙන යතුරු"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"කෙටිමං සඳහා යතුරු එකට තබා ගැනීම වෙනුවට වරකට යතුරක් ඔබන්න"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"මූසික යතුරු"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"දර්ශකය පාලනය කිරීමට ඔබේ යතුරු පුවරුව භාවිතා කරන්න"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"මූසික ආපස්සට අනුචලනය"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"පිටුව පහළට ගෙන යාමට ඉහළට අනුචලන කරන්න"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"වම් සහ දකුණු බොත්තම් මාරු කරන්න"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"වම් මූසික බොත්තම ඔබේ දකුණ ලෙස භාවිතා කරන්න"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"යතුරු පුවරු කෙටිමං"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"කෙටිමං ලැයිස්තුව පෙන්වන්න"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"කාර්යාල පැතිකඩ යතුරු පුවරු සහ මෙවලම්"</string>
@@ -2034,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> සඳහා නව යතුරක් තෝරා ගන්න:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"භෞතික යතුරුපුවරු ප්‍රවේශ්‍යතාව"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ඇලෙන යතුරු, පනින යතුරු, මූසික යතුරු"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"පුනරාවර්තන යතුරු"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"පුනරාවර්තනයට පෙර ප්‍රමාදය"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"පුනරාවර්තන අනුපාතය"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"යතුර මුදා හරින තෙක් එහි අනුලකුණ පුනරාවර්තනය කිරීමට යතුරක් ඔබාගෙන සිටින්න"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> පිරිසැලසුම"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"පෙරනිමි"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ස්වයංක්‍රීය: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"පෙරදසුන"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"සාමාන්‍ය විකල්ප"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"භාෂාව"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"සිරස්තල ප්‍රමාණය"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"සිරස්තල මෝස්තරය"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"අභිරුචි විකල්ප"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"පසුබිම් වර්ණය"</string>
@@ -2987,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"මෙම VPN එක විසන්ධි කරන්නද?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"විසන්ධි කරන්න"</string>
     <string name="vpn_version" msgid="6344167191984400976">"අනුවාදය"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"අනුවාදය <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN අමතක කරන්න"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"පවතින VPN ප්‍රතිස්ථාපනය කරන්නද?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"සැම විට ක්‍රියාත්මක VPN සකසන්නද?"</string>
@@ -5462,13 +5465,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"සෙවීමේ සැකසීම්"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"සම්බන්ධතා, ආචයනය, ගිණුම"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"සම්බන්ධතා ආචයනය"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"උපාංගය පමණි"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"නව සම්බන්ධතා ගිණුමක් සමග සමමුහුර්ත නොවනු ඇත"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"සම්බන්ධතා ඔබේ උපාංගයට සුරකිනු ඇති අතර පෙරනිමියෙන් ඔබේ ගිණුමට සමමුහුර්ත කරනු ලැබේ"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"පෙරනිමි සැකසීමක් නැත"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"පටන් ගැනීමට ගිණුමක් එක් කරන්න"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"සෙවීමට කවයසෙවීමට කවය අදින්න"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"ඔබේ තිරයේ ඇති අන්තර්ගතය භාවිතයෙන් සෙවීමට මුල් පිටුව බොත්තම හෝ සංචලන හසුරුව ස්පර්ශ කර අල්ලාගෙන සිටින්න."</string>
 </resources>
diff --git a/res/values-sk/arrays.xml b/res/values-sk/arrays.xml
index be2683c..35ca54c 100644
--- a/res/values-sk/arrays.xml
+++ b/res/values-sk/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snehová vločka"</item>
     <item msgid="7952183800501346803">"Plážový slnečník"</item>
     <item msgid="799139025758265891">"Nástroje v dielni"</item>
-    <item msgid="1330084588359129896">"Stan"</item>
+    <item msgid="8112685757657659269">"Klavír"</item>
     <item msgid="3861584909935022342">"Filmový pásik"</item>
     <item msgid="5827426100157335512">"Kniha"</item>
     <item msgid="8585828346253128384">"Lotosový kvet"</item>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 443c944..f7483ad 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Nastavujte automaticky pomocou sieťových a bezdrôtových signálov"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatické časové pásmo"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Nastavujte automaticky na základe mobilných sietí v okolí"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Nastavujte automaticky pomocou polohy zariadenia, ak je k dispozícii. Môže sa vyžadovať aj aktívne pripojenie Wi‑Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Nastavujte automaticky pomocou polohy zariadenia, ak je k dispozícii"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Používať miestny predvolený formát"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Používať 24-hodinový formát"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Čas"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Dostupnosť"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fyzická klávesnica"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Klávesy jedného stlačenia"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klávesnica ignoruje rýchle opakované stlačenia rovnakého klávesa"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prah opakovaného stlačenia"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Vyberte, ako dlho má klávesnica ignorovať opakované stláčanie klávesov"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Vlastné"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"vlastná hodnota"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Pomalé klávesy"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Upravuje čas aktivácie po stlačení klávesa"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Režim uzamknutia klávesa"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Používať skratky stlačením jedného klávesa namiesto viacerých"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Klávesy myši"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Ovládajte kurzor pomocou klávesnice"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Obrátené posúvanie myšou"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Prechádzajte po stránke nadol posúvaním myši nahor"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Vymeniť ľavé a pravé tlačidlo"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Používajte ľavé tlačidlo myši ako pravé"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klávesové skratky"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Zobraziť zoznam skratiek"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Klávesnice a nástroje pracovného profilu"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Vyberte pre <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> nový kláves:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Dostupnosť fyzickej klávesnice"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Režim uzamknutia klávesa, klávesy jedného stlačenia, klávesy myši"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Opakovať klávesy"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Oneskorenie pred opakovaním"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Miera opakovaní"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pri podržaní klávesa sa bude znak opakovane zadávať, dokým ho neuvoľníte"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Rozloženie <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Predvolené"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automaticky: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Ukážka"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Štandardné možnosti"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jazyk"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Veľkosť titulkov"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Štýl titulkov"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Vlastné možnosti"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Farba pozadia"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Odpojiť tento profil VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Odpojiť"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Verzia"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Verzia <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Zabudnúť profil VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Nahradiť existujúcu sieť VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Nastaviť sieť VPN, ktorá je vždy zapnutá?"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Vyhľadávať v nastaveniach"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontakty, priestor, účet"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Úložisko kontaktov"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Len senzory zariadenia"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nové kontakty sa s účtom nebudú synchronizovať"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakty sa budú predvolene ukladať do zariadenia a synchronizovať s účtom"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nie je nastavená žiadna predvolená hodnota"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Začnite pridaním účtu"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Vyhľadávanie krúžením"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Ak chcete vyhľadávať pomocou obsahu na obrazovke, pridržte tlačidlo plochy alebo navigačnú rukoväť."</string>
 </resources>
diff --git a/res/values-sl/arrays.xml b/res/values-sl/arrays.xml
index c368aef..b4438f6 100644
--- a/res/values-sl/arrays.xml
+++ b/res/values-sl/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snežinka"</item>
     <item msgid="7952183800501346803">"Senčnik"</item>
     <item msgid="799139025758265891">"Orodja v delavnici"</item>
-    <item msgid="1330084588359129896">"Šotor"</item>
+    <item msgid="8112685757657659269">"Klavir"</item>
     <item msgid="3861584909935022342">"Filmski trak"</item>
     <item msgid="5827426100157335512">"Knjiga"</item>
     <item msgid="8585828346253128384">"Lotosov cvet"</item>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index f56f457..aa6b2dd 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Samodejna nastavitev na podlagi omrežja in brezžičnih signalov"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Samodejni časovni pas"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Samodejna nastavitev na podlagi mobilnih omrežij v bližini"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Samodejna nastavitev na podlagi lokacije naprave, če je na voljo. Morda bo potrebna tudi aktivna povezava Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Samodejna nastavitev na podlagi lokacije naprave, če je na voljo"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Uporabi privzete območne nastavitve"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Uporabi 24-urni zapis časa"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ura"</string>
@@ -1947,17 +1947,23 @@
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fizična tipkovnica"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Zaznava večkratnih pritiskov tipk"</string>
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Tipkovnica prezre hitro ponovljene pritiske iste tipke"</string>
-    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prag za prezrtje hitrih zaporednih pritiskov tipk"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Prag za prezrtje pritiskov tipk"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Izberite, kako dolgo tipkovnica prezre ponovljene pritiske tipk"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Po meri"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"vrednost po meri"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Daljši pritisk tipk"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Prilagoditev časa, potrebnega za aktiviranje pritiska tipke"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Zaklepanje tipk"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Za bližnjice pritisnite eno tipko hkrati namesto več tipk hkrati"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Tipke za miško"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Upravljanje kazalke s tipkovnico"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Obratno pomikanje z miško"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Pomaknite se navzgor, če želite premakniti stran navzdol"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Zamenjava levega in desnega gumba"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Uporabljajte levi gumb na miški kot desnega"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Bližnjične tipke"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Prikaz seznama bližnjic"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tipkovnice in orodja delovnega profila"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Izberite novo tipko za »<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>«:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Dostopnost fizične tipkovnice"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Zaklepanje tipk, zaznava večkratnih pritiskov tipk, tipke za miško"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Ponavljanje vnosa s tipko"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Zakasnitev pred ponovitvijo"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Hitrost ponavljanja"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pridržite poljubno tipko, da se njen znak ponavlja, dokler je ne spustite"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Postavitev <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Privzeto"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Samodejno: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Predogled"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardne možnosti"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Jezik"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Velikost podnapisov"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Slog podnapisov"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Možnosti po meri"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Barva ozadja"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Prekinitev povezave s tem omrežjem VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Prekini povezavo"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Različica"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Različica <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Pozabi omrežje VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Želite zamenjati obstoječe omrežje VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Ali želite, da je omrežje VPN stalno vklopljeno?"</string>
@@ -5459,6 +5465,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Samo v napravi"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Novi stiki ne bodo sinhronizirani z računom"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Stiki bodo privzeto shranjeni v napravi in sinhronizirani z računom"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nastavljen ni noben privzeti račun"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Za začetek dodajte račun"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Iskanje z obkroževanjem"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Za iskanje po vsebini zaslona pridržite gumb za začetni zaslon ali ročico za pomikanje."</string>
 </resources>
diff --git a/res/values-sq/arrays.xml b/res/values-sq/arrays.xml
index 2450b85..14009c5 100644
--- a/res/values-sq/arrays.xml
+++ b/res/values-sq/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Flok dëbore"</item>
     <item msgid="7952183800501346803">"Çadër plazhi"</item>
     <item msgid="799139025758265891">"Vegla punishteje"</item>
-    <item msgid="1330084588359129896">"Tendë"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Bobina e filmit"</item>
     <item msgid="5827426100157335512">"Libër"</item>
     <item msgid="8585828346253128384">"Zambak uji"</item>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index f736eb1..6a99726 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Cakto automatikisht duke përdorur sinjalet e rrjetit dhe ato wireless"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Brezi orar automatik"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Cakto automatikisht bazuar në rrjetet celulare pranë teje"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Cakto automatikisht duke përdorur vendndodhjen e pajisjes sate, nëse ofrohet. Mund të kërkohet gjithashtu një lidhje aktive Wifi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Cakto automatikisht duke përdorur vendndodhjen e pajisjes sate, nëse ofrohet"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Përdor parazgjedhjen e lokalitetit"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Përdor formatin 24-orësh"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Ora"</string>
@@ -659,12 +659,9 @@
     <string name="private_space_choose_your_pattern_header" msgid="2165607102459936724">"Cakto motiv për hapësirën private"</string>
     <string name="private_space_category_lock" msgid="1917657024358778169">"Kyç"</string>
     <string name="private_space_category_hide" msgid="3236587591523126649">"Fshih"</string>
-    <!-- no translation found for private_space_confirm_your_pattern_header (449382220134788771) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_pin_header (4543332157470087796) -->
-    <skip />
-    <!-- no translation found for private_space_confirm_your_password_header (9202308075814307169) -->
-    <skip />
+    <string name="private_space_confirm_your_pattern_header" msgid="449382220134788771">"Konfirmo motivin e hapësirës sate private"</string>
+    <string name="private_space_confirm_your_pin_header" msgid="4543332157470087796">"Fut përsëri kodin PIN të hapësirës sate private"</string>
+    <string name="private_space_confirm_your_password_header" msgid="9202308075814307169">"Fut përsëri fjalëkalimin e hapësirës sate private"</string>
     <string name="fingerprint_add_max" msgid="8639321019299347447">"Mund të shtosh deri në <xliff:g id="COUNT">%d</xliff:g> gjurmë gishtash"</string>
     <string name="fingerprint_intro_error_max" msgid="4431784409732135610">"Ke shtuar numrin maksimal të gjurmëve të gishtave"</string>
     <string name="fingerprint_intro_error_unknown" msgid="877005321503793963">"Nuk mund të shtohen gjurmë të tjera të gishtave"</string>
@@ -1032,10 +1029,8 @@
     <string name="wifi_dpp_failure_enrollee_authentication" msgid="7008840843663520852">"Kontrollo fjalëkalimin dhe provo përsëri"</string>
     <string name="wifi_dpp_failure_enrollee_rejected_configuration" msgid="982310033782652478">"Kontakto me prodhuesin e pajisjes"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="6118892932595974823">"Kontrollo lidhjen dhe provo përsëri"</string>
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_ssid (3608318690698685427) -->
-    <skip />
-    <!-- no translation found for wifi_dpp_check_connection_no_matched_security (1462706753123341376) -->
-    <skip />
+    <string name="wifi_dpp_check_connection_no_matched_ssid" msgid="3608318690698685427">"Ky rrjet Wi‑Fi nuk ofrohet për momentin"</string>
+    <string name="wifi_dpp_check_connection_no_matched_security" msgid="1462706753123341376">"Ka një problem me këtë kod QR. Provo të lidhesh në një mënyrë tjetër."</string>
     <string name="wifi_dpp_choose_network" msgid="3987007684129341427">"Zgjidh rrjetin"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="4321618376432197593">"Për të lidhur pajisjen, zgjidh një rrjet"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="5170095438763569255">"Të shtohet kjo pajisje te “<xliff:g id="SSID">%1$s</xliff:g>”?"</string>
@@ -1951,26 +1946,29 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qasshmëria"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tastiera fizike"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Tastet e përsëritura"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Tastiera i shpërfill shtypjet e shpejta të përsëritura të të njëjtit tast"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Pragu për tastet e përsëritura"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Zgjidh kohëzgjatjen e shpërfilljes së shtypjeve të përsëritura të tasteve nga tastiera jote"</string>
+    <!-- no translation found for input_setting_keys_dialog_option_200 (3121006986226247560) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
+    <!-- no translation found for input_setting_keys_dialog_option_400 (2634500629396699440) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
+    <!-- no translation found for input_setting_keys_dialog_option_600 (3828362866751805146) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
+    <!-- no translation found for input_setting_keys_custom_title (670425691119253202) -->
     <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
+    <!-- no translation found for input_setting_keys_custom_value (4455905650507193648) -->
     <skip />
     <string name="slow_keys" msgid="2891452895499690837">"Tastet e ngadalta"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Rregullon kohën që duhet për aktivizimin e një shtypjeje tasti"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Tastet e përhershme"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Shtyp vetëm një tast në një moment për shkurtoret në vend që t\'i mbash shtypur bashkë tastet"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Butonat e miut"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Përdor tastierën për të kontrolluar treguesin"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Lëvizja e miut në të kundërt"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Lëviz lart për ta zhvendosur faqen poshtë"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Ndërro butonin e majtë dhe të djathtë"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Përdor butonin e majtë të miut si buton të djathtë"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Shkurtoret e tastierës"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Shfaq listën e shkurtoreve"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tastierat dhe veglat e profilit të punës"</string>
@@ -2039,10 +2037,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Zgjidh një çelës të ri për <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Qasshmëria për tastierën fizike"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Tastet e përhershme, tastet e përsëritura, tastet e miut"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Përsërit tastet"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Vonesa përpara përsëritjes"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Shpejtësia e përsëritjes"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Mbaj shtypur një tast për të përsëritur karakterin e tij derisa të lëshohet tasti"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Struktura e <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"E parazgjedhur"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2447,8 +2445,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Shikim paraprak"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Opsionet standarde"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Gjuha"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Madhësia e titrave"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Stili i titrave"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Personalizo opsionet"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Ngjyra e sfondit"</string>
@@ -2992,6 +2989,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Shkëpute këtë rrjet VPN"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Shkëpute"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versioni"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versioni <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Harroje rrjetin VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Të zëvendësohet rrjeti ekzistues VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Të caktohet rrjeti VPN gjithmonë aktiv?"</string>
@@ -3924,8 +3922,7 @@
     <string name="zen_mode_new_custom_title" msgid="7513785385574267851">"Krijo një modalitet"</string>
     <string name="zen_mode_new_custom_default_name" msgid="2778307946775085105">"Modaliteti i personalizuar"</string>
     <string name="zen_mode_edit_name_hint" msgid="4584652062167540536">"Emri i modalitetit"</string>
-    <!-- no translation found for zen_mode_edit_name_empty_error (5788063278827188275) -->
-    <skip />
+    <string name="zen_mode_edit_name_empty_error" msgid="5788063278827188275">"Emri i modalitetit nuk mund të jetë bosh"</string>
     <string name="zen_mode_edit_choose_icon_title" msgid="6452801577128788362">"Zgjidh një ikonë"</string>
     <string name="zen_mode_trigger_title_schedule_calendar" msgid="9206609438617550331">"Ngjarjet e kalendarit"</string>
     <string name="zen_mode_trigger_title_bedtime" msgid="3287241454965736913">"Rutina e orarit të gjumit"</string>
@@ -5468,13 +5465,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Kërko te cilësimet"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktet, ruajtja, llogaria"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Ruajtja e kontakteve"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Vetëm pajisja"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Kontaktet e reja nuk do të sinkronizohen me një llogari"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontaktet do të ruhen në pajisjen tënde dhe do të sinkronizohen në llogarinë tënde si parazgjedhje"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Nuk është caktuar asnjë e parazgjedhur"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Shto një llogari për të filluar"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Qarko për të kërkuar"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Prek dhe mbaj shtypur butonin \"Kreu\" ose emërtimin e navigimit për të kërkuar duke përdorur përmbajtjen në ekranin tënd."</string>
 </resources>
diff --git a/res/values-sr/arrays.xml b/res/values-sr/arrays.xml
index 2484fbf..c629fee 100644
--- a/res/values-sr/arrays.xml
+++ b/res/values-sr/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Пахуља"</item>
     <item msgid="7952183800501346803">"Сунцобран"</item>
     <item msgid="799139025758265891">"Алат из радионице"</item>
-    <item msgid="1330084588359129896">"Шатор"</item>
+    <item msgid="8112685757657659269">"Клавир"</item>
     <item msgid="3861584909935022342">"Ролна филма"</item>
     <item msgid="5827426100157335512">"Књига"</item>
     <item msgid="8585828346253128384">"Цвет лотоса"</item>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 63bda44..a87dcec 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Аутоматско подешавање помоћу мреже и бежичних сигнала"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Аутоматска временска зона"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Аутоматско подешавање на основу мобилних мрежа у близини"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Аутоматско подешавање помоћу локације уређаја, ако је доступна. Можда је потребна и активна WiFi веза."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Аутоматско подешавање помоћу локације уређаја, ако је доступна"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Користи подразумевану вредност за локалитет"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Користи 24-часовни формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Време"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Тастатура занемарује брзе притиске истог тастера који се понављају"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Праг за дужи одзив тастера"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Одаберите колико дуго тастатура занемарује понављане притиске тастера"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 сек"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 сек"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 сек"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 сек"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 сек"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 сек"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Прилагођено"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"прилагођена вредност"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Спори тастери"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Прилагодите време за активирање тастера после притиска"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Лепљиви тастери"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Притискајте један по један тастер да бисте користили пречице уместо да истовремено држите тастере"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Тастери миша"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Контролишите показивач помоћу тастатуре"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Обрнуто скроловање мишем"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Скролујте нагоре да бисте померили страницу надоле"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Замените дугмад налево и надесно"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Користите леви тастер миша као десни"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Тастерске пречице"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Приказује листу пречица"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Тастатуре и алатке за пословни профил"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Одаберите нови тастер за <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Приступачност физичке тастатуре"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Лепљиви тастери, дужи одзив тастера, тастери миша"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Понављање тастера"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Одлагање пре понављања"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Брзина понављања"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Притисните и задржите тастер да бисте понављали унос знака све док не пустите тастер"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Распоред <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Подразумевано"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Аутоматски: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Преглед"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандардне опције"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Језик"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Величина титла"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стил титла"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Прилагођене опције"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Боја позадине"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Желите ли да прекинете везу са овим VPN-ом?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Прекини везу"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Верзија"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Верзија <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Заборави VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Желите ли да замените постојећи VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Желите ли да подесите увек укључени VPN?"</string>
@@ -5458,6 +5464,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Само уређај"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Нови контакти се неће синхронизовати са налогом"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Контакти се подразумевано чувају на уређају и синхронизују са налогом"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Није подешен подразумевани налог"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Додајте налог да бисте започели"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Претрага заокруживањем"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Додирните и задржите дугме Почетак или маркер за кретање да бисте претраживали помоћу садржаја на екрану."</string>
 </resources>
diff --git a/res/values-sv/arrays.xml b/res/values-sv/arrays.xml
index 84665cb..48b1fa6 100644
--- a/res/values-sv/arrays.xml
+++ b/res/values-sv/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snöflinga"</item>
     <item msgid="7952183800501346803">"Strandparasoll"</item>
     <item msgid="799139025758265891">"Verktyg"</item>
-    <item msgid="1330084588359129896">"Tält"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Filmrulle"</item>
     <item msgid="5827426100157335512">"Bok"</item>
     <item msgid="8585828346253128384">"Lotusblomma"</item>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 811bed8..cf8da59 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Ställ in automatiskt med nätverk och trådlösa signaler"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Automatisk tidszon"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Ställ in automatiskt utifrån mobilnätverk i närheten"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Ställ in automatiskt med enhetens plats, om tillgängligt. En aktiv wifi-anslutning kan också krävas."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Ställ in automatiskt med enhetens plats, om tillgängligt"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Använd lokal standard"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Använd 24-timmarsformat"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Tid"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Tangentbordet ignorerar snabbt upprepade tryck på samma tangent"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Gräns för studsande tangent"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Välj hur länge tangentbordet ska ignorera upprepade tangenttryckningar"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0,2 s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0,4 s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0,6 s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Anpassat"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"anpassat värde"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Långsamma tangenter"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"Justerar tiden det tar innan ett tryck på en tangent aktiveras"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Låstangentsläge"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Tryck ned en tangent i taget för kortkommandon i stället för att hålla ned flera tangenter samtidigt"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Musknappar"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Använd tangentbordet för att styra pekaren"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Omvänd scrollning på musen"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Scrolla uppåt för att flytta sidan nedåt"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Byt plats på vänster och höger knapp"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Använd vänster musknapp som höger"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Kortkommandon"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Visa en lista över genvägar"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Tangentbord och verktyg för jobbprofilen"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Välj en ny tangent för <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Tillgänglighet för fysiskt tangentbord"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Låstangentsläge, studsande tangenter, musknappar"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Upprepa tangenter"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Fördröjning före upprepning"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Upprepningsfrekvens"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Håll ned en tangent för att upprepa tecknet tills du släpper tangenten"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layouten <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standard"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Automatiskt: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Förhandsgranskning"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standardalternativ"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Språk"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Teckenstorlek för textning"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Textstil"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Anpassade alternativ"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Bakgrundsfärg"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Vill du koppla från VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Koppla från"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Version"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Version <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Glöm VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Vill du byta ut befintligt VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Vill du ställa in Alltid på-VPN?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Endast enheten"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Nya kontakter synkroniseras inte med ett konto"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kontakter sparas på enheten och synkroniseras med kontot som standard"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ingen standardinställning har angetts"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Lägg till ett konto för att komma igång"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Tryck länge på hemknappen eller navigeringshandtaget för att söka med innehållet på skärmen."</string>
 </resources>
diff --git a/res/values-sw/arrays.xml b/res/values-sw/arrays.xml
index 94e3abc..ee7cb1e 100644
--- a/res/values-sw/arrays.xml
+++ b/res/values-sw/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Kipande kidogo sana cha theluji"</item>
     <item msgid="7952183800501346803">"Mwamvuli wa ufukweni"</item>
     <item msgid="799139025758265891">"Zana za karakana"</item>
-    <item msgid="1330084588359129896">"Hema"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Ukanda wa filamu"</item>
     <item msgid="5827426100157335512">"Kitabu"</item>
     <item msgid="8585828346253128384">"Ua la yungiyungi"</item>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 16042ee..d381dab 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Weka mipangilio otomatiki ukitumia mtandao wako na mawimbi ya simu za mkononi"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Mipangilio otomatiki ya saa za eneo"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Weka mipangilio otomatiki kulingana na mitandao ya simu iliyo karibu nawe"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Weka mipangilio otomatiki ukitumia data ya mahali kilipo kifaa chako, ikiwa inapatikana. Huenda pia ukahitaji muunganisho wa Wi-Fi unaotumika."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Weka mipangilio kiotomatiki ukitumia data ya mahali kilipo kifaa chako, ikiwa inapatikana"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Tumia chaguomsingi la eneo"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Tumia mpangilio wa saa 24"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Saa"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ufikivu"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Kibodi halisi"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Vitufe vinavyoduta"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Kibodi hupuuza vitendo vya kurudia kubonyeza kitufe kimoja haraka mara nyingi"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Upeo wa mibofyo inayopuuzwa"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Chagua kipindi cha muda ambao kibodi yako itapuuza vitendo vya kurudia kubonyeza kitufe kimoja"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"sek 0.2"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"sek 0.4"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"sek 0.6"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Maalum"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"thamani maalum"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Vitufe vya polepole"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Hurekebisha muda unaochukua kitendo cha kubonyeza kitufe kuwasha"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Vitufe vinavyonata"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Bonyeza kitufe kimoja baada ya kingine ili upate njia za mkato badala ya kubonyeza na kushikilia vitufe kwa pamoja"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Vitufe vya kipanya"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Tumia kibodi yako kudhibiti kielekezi"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Kubadilisha mwelekeo wa kipanya"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Sogeza juu ili usogeze ukurasa chini"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Kubadilisha utendaji wa vitufe vya kulia na kushoto"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Tumia kitufe cha kushoto cha kipanya kutekeleza majukumu ya kitufe cha kulia"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mikato ya kibodi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Onyesha orodha ya njia za mkato"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Zana na kibodi za wasifu wa kazini"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Chagua kitufe kipya cha kurekebisha cha <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Zana za ufikivu kwenye kibodi halisi"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Vitufe vinavyonata, Vitufe vinavyodunda, Vitufe vya kipanya"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Vitufe vya Kurudia Herufi"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Kawia kabla ya kurudia"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Kasi ya Kurudia Herufi"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Bonyeza na ushikilie kitufe ili herufi ijirudie hadi utakapoachilia kitufe hicho"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Muundo wa <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Chaguomsingi"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Otomatiki: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Chungulia kwanza"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Chaguo za kawaida"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Lugha"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Ukubwa wa manukuu"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Mtindo wa manukuu"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Chaguo maalum"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Rangi ya mandharinyuma"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Ungependa kuondoa VPN hii?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Kata muungnisho"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Toleo"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Toleo la <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Ondoa VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Ungependa kubadilisha VPN iliyopo?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Ungependa kuweka VPN iliyowashwa kila mara?"</string>
@@ -3712,7 +3710,7 @@
     <string name="notification_polite_main_control_title" msgid="5812529809151927149">"Tumia mipangilio ya kutuliza arifa"</string>
     <string name="notification_polite_description" msgid="5497748284893832854">"Unapopokea arifa nyingi ndani ya muda mfupi, kifaa chako kitapunguza sauti na arifa kwa hadi dakika 2. Hali hii haitaathiri simu, kengele na mazungumzo ya kipaumbele. \n\nUnaweza kupata arifa ulizopokea wakati wa kutulizwa kwa arifa kwa kutelezesha kidole chini kutoka sehemu ya juu ya skrini."</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"Tumia kwenye wasifu wa kazini"</string>
-    <string name="notification_polite_work_summary" msgid="5014189280132951378">"Inatumika kwa programu zenye wasifu wa kazini"</string>
+    <string name="notification_polite_work_summary" msgid="5014189280132951378">"Tumia kwenye programu za wasifu wa kazini"</string>
     <string name="vr_listeners_title" msgid="4960357292472540964">"Huduma za kisaidizi cha Uhalisia Pepe"</string>
     <string name="no_vr_listeners" msgid="8442646085375949755">"Hakuna programu zilizosakinishwa ambazo zinaweza kutekeleza huduma za kisaidizi cha Uhalisia Pepe."</string>
     <string name="vr_listener_security_warning_title" msgid="7026351795627615177">"Ungependa kuruhusu huduma za Uhalisia Pepe katika <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Mipangilio ya Utafutaji"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"anwani, nafasi ya hifadhi, akaunti"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Nafasi ya kuhifadhi ya anwani"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Kifaa tu"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Anwani mpya hazitasawazishwa kwenye akaunti"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Anwani zitahifadhiwa kwenye kifaa chako na kusawazishwa kwenye akaunti yako kwa chaguomsingi"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Hujaweka akaunti chaguomsingi"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Weka akaunti ili uanze"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Chora Mviringo ili Kutafuta"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Gusa na ushikilie Kitufe cha ukurasa wa mwanzo au ncha ya kusogezea ili utafute ukitumia maudhui yaliyo kwenye skrini yako."</string>
 </resources>
diff --git a/res/values-ta/arrays.xml b/res/values-ta/arrays.xml
index ae9eb40..e04eb88 100644
--- a/res/values-ta/arrays.xml
+++ b/res/values-ta/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"பனித்துகள்"</item>
     <item msgid="7952183800501346803">"கடற்கரைக் குடை"</item>
     <item msgid="799139025758265891">"பணிமனைக் கருவிகள்"</item>
-    <item msgid="1330084588359129896">"கூடாரம்"</item>
+    <item msgid="8112685757657659269">"பியானோ"</item>
     <item msgid="3861584909935022342">"திரைப்பட ரீல்"</item>
     <item msgid="5827426100157335512">"புத்தகம்"</item>
     <item msgid="8585828346253128384">"தாமரைப் பூ"</item>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 8de8680..c7e5e14 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"உங்கள் நெட்வொர்க்கையும் வயர்லெஸ் சிக்னல்களையும் பயன்படுத்தி தானாகவே அமைக்கும்"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"நேர மண்டலத்தைத் தானாகவே கண்டறிதல்"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"உங்களுக்கு அருகிலுள்ள மொபைல் நெட்வொர்க்குகளின் அடிப்படையில் தானாகவே அமைக்கும்"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"கிடைத்தால், சாதன இருப்பிடம் மூலம் தானாகவே அமைக்கும். செயலிலுள்ள வைஃபை இணைப்பும் தேவைப்படலாம்."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"உங்கள் சாதன இருப்பிடம் கிடைத்தால், அதைப் பயன்படுத்தி தானாகவே அமைக்கும்"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"உள்ளூர் நேர வடிவத்தைப் பயன்படுத்து"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-மணிநேர வடிவமைப்பு"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"நேரம்"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"ஒரே பட்டனைத் தொடர்ச்சியாக அழுத்துவதைக் கீபோர்டு விரைவாகப் புறக்கணிக்கிறது"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"பவுன்ஸ் பட்டன் வரம்பு"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"தொடர்ச்சியாகப் பட்டன் அழுத்தப்படுவதைக் கீபோர்டு புறக்கணிப்பதற்கான கால அளவைத் தேர்வுசெய்யுங்கள்"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 வினாடி"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 வினாடி"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 வினாடி"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 வினாடி"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 வினாடி"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 வினாடி"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"பிரத்தியேகம்"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"பிரத்தியேகமான மதிப்பு"</string>
     <string name="slow_keys" msgid="2891452895499690837">"ஸ்லோ கீஸ்"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"ஒரு பட்டனை அழுத்துவதற்கு எடுக்கும் நேரத்தை மாற்றலாம்"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"ஸ்டிக்கி கீஸ்"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"ஷார்ட்கட்களுக்கு பட்டன்களை ஒன்றாகப் பிடிப்பதற்குப் பதிலாக ஒரு நேரத்தில் ஒரு பட்டனை அழுத்தலாம்"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"மவுஸ் பட்டன்கள்"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"பாயிண்ட்டரைக் கட்டுப்படுத்த உங்கள் கீபோர்டைப் பயன்படுத்தலாம்"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"மவுஸ் ரிவர்ஸ் ஸ்க்ரோலிங்"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"பக்கத்தை மேலிருந்து கீழே நகர்த்த மவுஸை முன்னோக்கி ஸ்க்ரோல் செய்யலாம்"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"இடதுபுற மற்றும் வலதுபுற பட்டன்களை மாற்றுதல்"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"இடதுபுற மவுஸ் பட்டனை வலதுபுற பட்டனாகப் பயன்படுத்தலாம்"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"கீபோர்டு ஷார்ட்கட்கள்"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"ஷார்ட்கட்களின் பட்டியலைக் காட்டும்"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"பணிக் கணக்கிற்கான கீபோர்டுகள் &amp; கருவிகள்"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>க்கு புதிய விசையை தேர்வுசெய்யலாம்:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"கீபோர்டுக்கான மாற்றுத்திறன் வசதி"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"ஸ்டிக்கி கீஸ், பவுன்ஸ் கீஸ், மவுஸ் கீஸ்"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"ரிப்பீட் பட்டன்கள்"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"தொடர்ச்சியான எழுத்துகளுக்கு இடையிலான நேர இடைவெளி"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"ரிப்பீட் விகிதம்"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"ஒரு பட்டனை அழுத்திப் பிடித்திருந்து அதை விடுவிக்கும்வரை அதிலுள்ள எழுத்து தொடர்ச்சியாக டைப் செய்யப்படும்"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> தளவமைப்பு"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"இயல்பு"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"தானியங்கு: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"முன்னோட்டம்"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"நிலையான விருப்பங்கள்"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"மொழி"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"வ்சன எழுத்து வடிவ அளவு"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"வசனத்தின் நடை"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"பிரத்தியேக விருப்பங்கள்"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"பின்புல வண்ணம்"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"VPNஐத் துண்டிக்கவா?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"தொடர்பைத் துண்டி"</string>
     <string name="vpn_version" msgid="6344167191984400976">"பதிப்பு"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"பதிப்பு <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPNஐ நீக்கு"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"தற்போதுள்ள VPNஐ மாற்றியமைக்கவா?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"எப்போதும் இயங்கும் VPNஐ அமைக்கவா?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"சாதனம் மட்டும்"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"புதிய தொடர்புகளை ஒரு கணக்குடன் ஒத்திசைக்க முடியாது"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"இயல்பாகவே தொடர்புகள் உங்கள் சாதனத்தில் சேமிக்கப்படும், உங்கள் கணக்குடன் ஒத்திசைக்கப்படும்"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"இயல்புநிலையாக எதுவும் அமைக்கப்படவில்லை"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"தொடங்குவதற்கு ஒரு கணக்கைச் சேருங்கள்"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"வட்டமிட்டுத் தேடல்"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"முகப்பு பட்டனைத் தொட்டுப் பிடித்திருக்கவும் அல்லது திரையில் உள்ள உள்ளடக்கத்தைப் பயன்படுத்தித் தேடுவதற்கு ஹேண்டிலுக்குச் செல்லவும்."</string>
 </resources>
diff --git a/res/values-te/arrays.xml b/res/values-te/arrays.xml
index 6bc7266..55b418e 100644
--- a/res/values-te/arrays.xml
+++ b/res/values-te/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"స్నోఫ్లేక్"</item>
     <item msgid="7952183800501346803">"బీచ్ గొడుగు"</item>
     <item msgid="799139025758265891">"వర్క్‌షాప్ టూల్స్"</item>
-    <item msgid="1330084588359129896">"టెంట్"</item>
+    <item msgid="8112685757657659269">"పియానో"</item>
     <item msgid="3861584909935022342">"ఫిల్మ్ రీల్"</item>
     <item msgid="5827426100157335512">"పుస్తకం"</item>
     <item msgid="8585828346253128384">"తామర పువ్వు"</item>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 83a4e86..86b198c 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"మీ నెట్‌వర్క్, వైర్‌లెస్ సిగ్నల్స్‌ను ఉపయోగించి ఆటోమేటిక్‌గా సెట్ చేయండి"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"ఆటోమేటిక్ టైమ్ జోన్"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"మీకు దగ్గరలో ఉన్న మొబైల్ నెట్‌వర్క్‌ల ఆధారంగా ఆటోమేటిక్‌గా సెట్ చేయబడింది"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"అందుబాటులో ఉంటే, మీ పరికర లొకేషన్‌తో ఆటోమేటిక్‌గా సెట్ చేయండి. యాక్టివ్ Wi-Fi కనెక్షన్ కూడా అవసరం."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"అందుబాటులో ఉంటే, మీ పరికర లొకేషన్‌తో ఆటోమేటిక్‌గా సెట్ చేయండి"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ఈ భాష‌లో వాడే ఫార్మాట్‌ను ఆటోమేటిక్‌ సెట్టింగ్‌గా ఉప‌యోగించండి"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-గంటల ఫార్మాట్‌ను ఉప‌యోగించండి"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"సమయం"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"ఏదైనా ఒక కీని వేగంగా మళ్లీ మళ్లీ నొక్కుతుంటే, కీబోర్డ్ దాన్ని విస్మరిస్తుంది"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"బౌన్స్ కీ పరిమితి"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"ఏదైనా ఒక కీని మళ్లీ మళ్లీ నొక్కుతుంటే మీ కీబోర్డ్ దాన్ని ఎంత సమయం పాటు విస్మరించాలో ఎంచుకోండి"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2 సెకన్లు"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4 సెకన్లు"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6 సెకన్లు"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 సెకన్లు"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 సెకన్లు"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 సెకన్లు"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"అనుకూలంగా మార్చుకోండి"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"అనుకూల విలువ"</string>
     <string name="slow_keys" msgid="2891452895499690837">"నిదానంగా పనిచేసే కీలు"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"ఒక కీని నొక్కితే, అది యాక్టివేట్ అయ్యేందుకు పట్టే సమయాన్ని సర్దుబాటు చేస్తుంది"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"స్టిక్కీ కీలు"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"షార్ట్‌కట్‌ల కోసం కీలను కలిపి హోల్డ్ చేయడానికి బదులు ఒకసారి ఒక కీని నొక్కండి"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"మౌస్ కీలు"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"మీ కీబోర్డ్‌ను ఉపయోగించి పాయింటర్‌ను కంట్రోల్ చేయండి"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"మౌస్ రివర్స్ స్క్రోలింగ్"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"పేజీని కిందికి కదిలించడానికి పైకి స్క్రోల్ చేయండి"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"ఎడమ, కుడి బటన్‌లను మార్చండి"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ఎడమ మౌస్ బటన్‌ను, కుడి బటన్‌గా ఉపయోగించండి"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"కీబోర్డ్ షార్ట్‌కట్‌లు"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"షార్ట్‌కట్‌ల లిస్ట్‌ను చూడండి"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"కార్యాలయ ప్రొఫైల్ కీబోర్డ్‌లు &amp; సాధనాలు"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> కొసం కొత్త కీని ఎంచుకోండి:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"ఫిజికల్ కీబోర్డ్ యాక్సెసిబిలిటీ"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"స్టిక్కీ కీలు, బౌన్స్ కీలు, మౌస్ కీలు"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"కీలను రిపీట్ చేయండి"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"రిపీట్ చేయడానికి ముందు జరిగిన ఆలస్యం"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"రిపీట్ రేటు"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"కీని వదిలేంత వరకు దాని క్యారెక్టర్‌ను రిపీట్ చేయడానికి ఆ కీని నొక్కి పట్టుకోండి"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> లేఅవుట్"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ఆటోమేటిక్"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"ఆటోమేటిక్: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ప్రివ్యూ"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"స్టాండర్డ్ ఆప్షన్‌లు"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"భాష"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"క్యాప్షన్ సైజ్"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"క్యాప్షన్ స్టయిల్"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"అనుకూల ఎంపికలు"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"నేపథ్య రంగు"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ఈ VPNను డిస్‌కనెక్ట్ చేయాలా?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"డిస్‌కనెక్ట్ చేయండి"</string>
     <string name="vpn_version" msgid="6344167191984400976">"వెర్షన్"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"వెర్షన్ <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPNని విస్మరించు"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"ఇప్పటికే ఉన్న VPNని భర్తీ చేయాలా?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ఎల్లప్పుడూ ఆన్‌లో ఉండే VPNని సెట్ చేయాలా?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"పరికరం మాత్రమే"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"కొత్త కాంటాక్ట్‌లు ఖాతాతో సింక్ అవ్వవు"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"కాంటాక్ట్‌లు మీ పరికరంలో సేవ్ అయ్యి, ఆటోమేటిక్‌గా మీ ఖాతాకు సింక్ అవుతాయి"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ఆటోమేటిక్ సెట్టింగ్ సెట్ చేయబడలేదు"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"ప్రారంభించడానికి ఒక ఖాతాను జోడించండి"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"సెర్చ్ చేయడానికి సర్కిల్ గీయండి"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"మీ స్క్రీన్‌పై ఉన్న కంటెంట్‌ను ఉపయోగించి సెర్చ్ చేయడానికి హోమ్ బటన్ లేదా నావిగేషన్ హ్యాండిల్‌ను నొక్కి, పట్టుకోండి."</string>
 </resources>
diff --git a/res/values-th/arrays.xml b/res/values-th/arrays.xml
index 3d5a22f..665a87a 100644
--- a/res/values-th/arrays.xml
+++ b/res/values-th/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"เกล็ดหิมะ"</item>
     <item msgid="7952183800501346803">"ร่มชายหาด"</item>
     <item msgid="799139025758265891">"เครื่องมือเวิร์กช็อป"</item>
-    <item msgid="1330084588359129896">"เต็นท์"</item>
+    <item msgid="8112685757657659269">"เปียโน"</item>
     <item msgid="3861584909935022342">"ม้วนฟิล์ม"</item>
     <item msgid="5827426100157335512">"หนังสือ"</item>
     <item msgid="8585828346253128384">"ดอกบัว"</item>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index ec628f8..e468897 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"ตั้งค่าอัตโนมัติโดยใช้เครือข่ายและสัญญาณไร้สาย"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"เขตเวลาอัตโนมัติ"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"ตั้งค่าโดยอัตโนมัติตามเครือข่ายมือถือที่อยู่ใกล้คุณ"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"ตั้งค่าโดยอัตโนมัติโดยใช้ตำแหน่งของอุปกรณ์ หากมี และอาจต้องเชื่อมต่อ Wi-Fi อยู่"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"ตั้งค่าโดยอัตโนมัติโดยใช้ตำแหน่งของอุปกรณ์ หากมี"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"ใช้รูปแบบเริ่มต้นในท้องถิ่น"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"ใช้รูปแบบ 24 ชั่วโมง"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"เวลา"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"การช่วยเหลือพิเศษ"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"แป้นพิมพ์จริง"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"คีย์ตีกลับ"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"แป้นพิมพ์จะละเว้นการกดปุ่มเดียวกันซ้ำๆ อย่างรวดเร็ว"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"เกณฑ์คีย์ตีกลับ"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"เลือกระยะเวลาที่แป้นพิมพ์จะละเว้นการกดปุ่มซ้ำ"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 วินาที"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 วินาที"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 วินาที"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"กำหนดเอง"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"ค่าที่กำหนดเอง"</string>
     <string name="slow_keys" msgid="2891452895499690837">"เพิ่มระยะเวลาในการกดปุ่ม"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"ปรับเวลาที่ใช้ในการกดปุ่มเพื่อเปิดใช้งาน"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"คีย์ติดหนึบ"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"กดทีละปุ่มเพื่อใช้แป้นพิมพ์ลัดแทนการกดปุ่มค้างไว้พร้อมกัน"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"แป้นเมาส์"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"ใช้แป้นพิมพ์เพื่อควบคุมตัวชี้"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"การเลื่อนเมาส์แบบกลับด้าน"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"เลื่อนขึ้นเพื่อเลื่อนหน้าลง"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"สลับปุ่มซ้ายและขวา"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"ใช้ปุ่มเมาส์ด้านซ้ายเป็นปุ่มขวา"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"แป้นพิมพ์ลัด"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"แสดงรายการแป้นพิมพ์ลัด"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"แป้นพิมพ์และเครื่องมือของโปรไฟล์งาน"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"เลือกคีย์ใหม่สำหรับ <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"การช่วยเหลือพิเศษด้วยแป้นพิมพ์จริง"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"คีย์ติดหนึบ คีย์ตีกลับ แป้นเมาส์"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"แป้นพิมพ์ซ้ำ"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"หน่วงเวลาก่อนพิมพ์ซ้ำ"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"อัตราการพิมพ์ซ้ำ"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"กดแป้นค้างไว้เพื่อพิมพ์อักขระซ้ำจนกว่าจะปล่อยแป้น"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"เลย์เอาต์ <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ค่าเริ่มต้น"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"อัตโนมัติ: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"ดูตัวอย่าง"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"ตัวเลือกมาตรฐาน"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"ภาษา"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"ขนาดคำบรรยายแทนเสียง"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"รูปแบบคำบรรยาย"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"ตัวเลือกที่กำหนดเอง"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"สีพื้นหลัง"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"ยกเลิกการเชื่อมต่อ VPN นี้ไหม"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"ยกเลิกการเชื่อมต่อ"</string>
     <string name="vpn_version" msgid="6344167191984400976">"รุ่น"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"เวอร์ชัน <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"ลืม VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"แทนที่ VPN ที่มีอยู่หรือไม่"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"ตั้งค่า VPN แบบเปิดตลอดเวลาหรือไม่"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"ค้นหาในการตั้งค่า"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"รายชื่อติดต่อ พื้นที่เก็บข้อมูล บัญชี"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"พื้นที่เก็บข้อมูลรายชื่อติดต่อ"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"อุปกรณ์เท่านั้น"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"รายชื่อติดต่อใหม่จะไม่ซิงค์กับบัญชี"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"ระบบจะบันทึกรายชื่อติดต่อไว้ในอุปกรณ์และซิงค์กับบัญชีของคุณโดยค่าเริ่มต้น"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"ไม่ได้ตั้งค่าบัญชีเริ่มต้น"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"เพิ่มบัญชีเพื่อเริ่มต้นใช้งาน"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"วงเพื่อค้นหา"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"แตะปุ่มหน้าแรกหรือแฮนเดิลนำทางค้างไว้เพื่อค้นหาโดยใช้เนื้อหาบนหน้าจอ"</string>
 </resources>
diff --git a/res/values-tl/arrays.xml b/res/values-tl/arrays.xml
index 2a13662..6d1a881 100644
--- a/res/values-tl/arrays.xml
+++ b/res/values-tl/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Snowflake"</item>
     <item msgid="7952183800501346803">"Beach umbrella"</item>
     <item msgid="799139025758265891">"Mga tool sa workshop"</item>
-    <item msgid="1330084588359129896">"Tent"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Film reel"</item>
     <item msgid="5827426100157335512">"Libro"</item>
     <item msgid="8585828346253128384">"Bulaklak na lotus"</item>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index 0557ad3..4a231e2 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Awtomatikong itakda gamit ang iyong network at mga wireless na signal"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Awtomatikong time zone"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Awtomatikong itakda batay sa mga mobile network na malapit sa iyo"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Awtomatikong itakda gamit ang lokasyon ng device kung available Baka kailangan ng koneksyon sa Wifi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Awtomatikong itakda gamit ang lokasyon ng iyong device, kung available"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Gamitin ang lokal na default"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Gamitin ang format na 24-oras"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Oras"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"Binabalewala ng keyboard ang mabilis na paulit-ulit na pagpindot sa iisang key"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Limitasyon ng bounce key"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Piliin kung gaano katagal babalewalain ng iyong keyboard ang paulit-ulit na pagpindot sa key"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Custom"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"custom na bilang"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Mga slow key"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"I-adjust kung gaano katagal bago ma-activate ang pagpindot ng key"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Mga sticky key"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Paisa-isang pumindot ng key para sa mga shortcut sa halip na sabay-sabay na pindutin ang mga key"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Mga mouse key"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"Gamitin ang iyong keyboard para kontrolin ang pointer"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Reverse na pag-scroll ng mouse"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Mag-scroll pataas para ibaba ang page"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Pagpalitin ang kaliwa at kanang button"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Gamitin ang kaliwang button ng mouse bilang iyong kanan"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Mga keyboard shortcut"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Ipakita ang listahan ng mga shortcut"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Mga keyboard at tool ng profile sa trabaho"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Pumili ng bagong key para sa <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Accessibility ng pisikal na keyboard"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Mga sticky key, Mga bounce key, Mga mouse key"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Mga Umuulit na Key"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Pagkaantala bago umulit"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Rate ng Pag-uulit"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Pindutin nang matagal ang isang key para ulitin ang character nito hanggang sa bitawan ang key"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Layout na <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Default"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Awtomatiko: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"I-preview"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Mga karaniwang pagpipilian"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Wika"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Laki ng caption"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Istilo ng caption"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Mga custom na pagpipilian"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Kulay ng background"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Putulin ang koneksyon ng VPN na ito?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Putulin ang koneksyon"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Bersyon"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Bersyon <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Kalimutan ang VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Gusto mo bang palitan ang dati nang VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Gusto mo bang itakda ang VPN na palaging naka-on?"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Device lang"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Hindi masi-sync sa account ang mga bagong contact"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Ise-save sa iyong device at isi-sync sa iyong account bilang default ang mga contact"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Walang itinakdang default"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Magdagdag ng account para magsimula"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Circle to Search"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Pindutin nang matagal ang button ng Home o handle ng navigation para maghanap gamit ang content sa iyong screen."</string>
 </resources>
diff --git a/res/values-tr/arrays.xml b/res/values-tr/arrays.xml
index b7e2f64..0a50c87 100644
--- a/res/values-tr/arrays.xml
+++ b/res/values-tr/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Kar tanesi"</item>
     <item msgid="7952183800501346803">"Plaj şemsiyesi"</item>
     <item msgid="799139025758265891">"Atölye araçları"</item>
-    <item msgid="1330084588359129896">"Çadır"</item>
+    <item msgid="8112685757657659269">"Piyano"</item>
     <item msgid="3861584909935022342">"Film rulosu"</item>
     <item msgid="5827426100157335512">"Kitap"</item>
     <item msgid="8585828346253128384">"Nilüfer çiçeği"</item>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 7cfc243..950d172 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Ağınızı ve kablosuz sinyallerinizi kullanarak otomatik olarak ayarlayın"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Otomatik saat dilimi"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Yakınınızdaki mobil ağlara göre otomatik olarak ayarlayın"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Varsa cihazınızın konumu ile otomatik olarak ayarlanır. Etkin bir kablosuz bağlantı da gerekebilir."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Varsa cihazınızın konumu ile otomatik olarak ayarlanır"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Yerel ayar varsayılan değerini kullan"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 saat biçimini kullan"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Saat"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Erişilebilirlik"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Fiziksel klavye"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Geri sekme tuşları"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klavye, aynı tuşa hızlı bir şekilde tekrarlanan basma işlemlerini yoksayar"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Tekrarlı basmayı yoksayma tuş eşiği"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Klavyenizin, tuşlara ne kadar süre içinde tekrarlanan basma işlemlerini yoksayacağını seçin"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 saniye"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 saniye"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 saniye"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Özel"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"özel değer"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Yavaş tuşlar"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Bir tuşa basma işleminin etkinleştirileceği süreyi ayarlar"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Yapışkan tuşlar"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Tuşları aynı anda basılı tutmak yerine kısayollar için tek seferde bir tuşa basın"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Fare tuşları"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"İşaretçiyi kontrol etmek için klavyenizi kullanın"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Fare ters kaydırma"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Sayfayı aşağı taşımak için yukarı kaydırın"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Sol ve sağ düğmeleri değiştir"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Sol fare düğmesini sağ fare düğmesi olarak kullanın"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Klavye kısayolları"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Kısayol listesini göster"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"İş profili klavyeleri ve araçları"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> için yeni bir tuş seçin:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Fiziksel klavye erişilebilirliği"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Yapışkan tuşlar, geri sekme tuşları, fare tuşları"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Tuşları tekrarla"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Tekrardan önce geciktir"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Tekrarlama oranı"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Aynı karakteri tekrarlamak için ilgili tuşu basılı tutun. Tuş basılı tutulduğu sürece karakter tekrarlanır"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> düzeni"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Varsayılan"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Otomatik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Önizle"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standart seçenekler"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Dil"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Altyazı boyutu"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Altyazı stili"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Özel seçenekler"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Arka plan rengi"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Bu VPN\'nin bağlantısı kesilsin mi?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Bağlantıyı kes"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Sürüm"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Sürüm <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPN\'yi unut"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Mevcut VPN değiştirilsin mi?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Her zaman açık VPN ayarlansın mı?"</string>
@@ -3822,7 +3820,7 @@
     <string name="zen_mode_from_no_conversations" msgid="3924593219855567165">"Yok"</string>
     <string name="zen_mode_conversations_count" msgid="3199310723073707153">"{count,plural, =0{Yok}=1{1 görüşme}other{# görüşme}}"</string>
     <string name="zen_mode_from_conversations_settings" msgid="2411930666794576607">"Görüşme ayarları"</string>
-    <string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"Kimler kesintiye neden olabilir?"</string>
+    <string name="zen_mode_people_calls_messages_section_title" msgid="6815202112413762206">"Kimler rahatsız edebilir?"</string>
     <string name="zen_mode_people_footer" msgid="7710707353004137431">"Mesajlaşma veya arama uygulamaları size bildirim gönderemese bile burada seçtiğiniz kişiler bu uygulamalar üzerinden size erişebilirler"</string>
     <string name="zen_mode_calls_title" msgid="2078578043677037740">"Aramalar"</string>
     <string name="zen_mode_calls" msgid="7653245854493631095">"Aramalar"</string>
@@ -3837,7 +3835,7 @@
     <string name="zen_mode_messages_list" msgid="5431014101342361882">"mesajlar"</string>
     <string name="zen_mode_messages_title" msgid="1777598523485334405">"Mesajlar"</string>
     <string name="zen_mode_messages_header" msgid="253721635061451577">"Kesintiye neden olabilecek mesajlar"</string>
-    <string name="zen_mode_messages_footer" msgid="6002468050854126331">"İzin verilen mesajların ses çıkardığından emin olmak için cihazınızın çalmaya ayarlı olduğundan emin olun"</string>
+    <string name="zen_mode_messages_footer" msgid="6002468050854126331">"İzin verilen mesajlardan sesli uyarı alabilmek için için cihazınızın zil sesi çıkaracak şekilde ayarlı olduğundan emin olun"</string>
     <string name="zen_mode_custom_messages_footer" msgid="7545180036949550830">"\"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>\" için gelen mesajlar engelleniyor. Arkadaşlarınız, aileniz veya diğer kişilerin size ulaşmasına izin vermek için ayarları düzenleyebilirsiniz."</string>
     <string name="zen_mode_all_messages_summary" msgid="3756267858343104554">"Tüm mesajlar size ulaşabilir"</string>
     <string name="zen_mode_all_calls_summary" msgid="7337907849083824698">"Tüm aramalar size ulaşabilir"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Ayarlar\'da ara"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kişiler, depolama alanı, hesap"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kişi deposu"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Yalnızca cihaz"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Yeni kişiler bir hesapla senkronize edilmez"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Kişiler varsayılan olarak cihazınıza kaydedilir ve hesabınızla senkronize edilir"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Varsayılan ayar yok"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Başlamak için hesap ekleyin"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Seçerek Arat"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Ekranınızdaki içerikleri kullanarak arama yapmak için ana sayfa düğmesine veya gezinme tutma yerine dokunup basılı tutun."</string>
 </resources>
diff --git a/res/values-uk/arrays.xml b/res/values-uk/arrays.xml
index 45639e5..47028b9 100644
--- a/res/values-uk/arrays.xml
+++ b/res/values-uk/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Сніжинка"</item>
     <item msgid="7952183800501346803">"Пляжна парасоля"</item>
     <item msgid="799139025758265891">"Інструменти для майстерні"</item>
-    <item msgid="1330084588359129896">"Намет"</item>
+    <item msgid="8112685757657659269">"Піаніно"</item>
     <item msgid="3861584909935022342">"Кіноплівка"</item>
     <item msgid="5827426100157335512">"Книга"</item>
     <item msgid="8585828346253128384">"Квітка лотоса"</item>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index ad50504..93566b1 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Визначати автоматично за допомогою мережі й бездротових сигналів"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Автоматичний часовий пояс"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Визначати автоматично на основі мобільних мереж поблизу"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Визначати автоматично на основі геоданих пристрою (якщо доступно). Також може знадобитися активне з’єднання Wi-Fi."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Визначати автоматично на основі геоданих пристрою (якщо доступно)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Використовувати місцеві налаштування за умовчанням"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24-годинний формат"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Час"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Доступність"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Фізична клавіатура"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Ігнорувати повторне натискання"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Клавіатура ігнорує кілька натискань однієї клавіші поспіль"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Поріг ігнорування повт. натискання"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Виберіть, протягом якого часу клавіатура ігноруватиме кілька натискань однієї клавіші"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 с"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 с"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 с"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Спеціальне"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"Спеціальне значення"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Повільні клавіші"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Установлює проміжок часу, через який клавіша реагує на натискання"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Залипання клавіш"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Натискайте клавіші по одній, замість того щоб утримувати їх одночасно"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Клавіші для керування мишею"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Щоб керувати курсором, використовуйте клавіатуру"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Зворотне прокручування мишею"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Прокручувати вгору, щоб переміщатися сторінкою вниз"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Поміняти місцями ліву й праву кнопки"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Використовувати ліву кнопку миші як праву"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Комбінації клавіш"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Показати список комбінацій клавіш"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Клавіатури та інструменти робочого профілю"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Виберіть нову клавішу для <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Функції доступності фізичної клавіатури"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Залипання клавіш, ігнорування повторного натискання клавіш, клавіші для керування мишею"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Повторювати введення символів клавіш"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Затримка перед повторенням"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Швидкість повторення"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Якщо ви втримуватимете клавішу, введення відповідного символу повторюватиметься, доки ви її не відпустите"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Розкладка <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"За умовчанням"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Автоматична розкладка: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Переглянути"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Стандартні параметри"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Мова"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Розмір субтитрів"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Стиль субтитрів"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Спеціальні параметри"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Колір фону"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Відключити цю мережу VPN?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Відключити"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Версія"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Версія <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Забути мережу VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Замінити наявну мережу VPN?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Увімкнути постійну мережу VPN?"</string>
@@ -5434,7 +5432,7 @@
     <string name="audio_streams_dialog_retry" msgid="4456843891970998556">"Повторити спробу"</string>
     <string name="audio_streams_dialog_listen_to_audio_stream" msgid="8585253007762261528">"Слухайте потокове аудіо"</string>
     <string name="audio_streams_dialog_control_volume" msgid="7615062686016713544">"Потокове аудіо відтворюватиметься на пристрої <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. Керуйте гучністю за допомогою цього пристрою."</string>
-    <string name="audio_streams_dialog_cannot_listen" msgid="4432257183698209966">"Не чути потокове аудіо"</string>
+    <string name="audio_streams_dialog_cannot_listen" msgid="4432257183698209966">"Помилка відтворення"</string>
     <string name="audio_streams_dialog_default_device" msgid="6159800303379303266">"підключені сумісні навушники"</string>
     <string name="audio_streams_activity_title" msgid="6766869545769831935">"Аудіопотоки"</string>
     <string name="audio_streams_no_password_summary" msgid="8976357323034830144">"Без пароля"</string>
@@ -5464,13 +5462,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Шукати в налаштуваннях"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"контакти, пам’ять, обліковий запис"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Пам’ять контактів"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Лише на пристрої"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Нові контакти не синхронізуватимуться з обліковим записом"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Контакти будуть зберігатися на пристрої і за умовчанням синхронізуватися з обліковим записом"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Немає параметра за умовчанням"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Щоб почати, додайте обліковий запис"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Обвести й знайти"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Натисніть і втримуйте кнопку головного екрана або маркер навігації, щоб здійснити пошук за вмістом на екрані."</string>
 </resources>
diff --git a/res/values-ur/arrays.xml b/res/values-ur/arrays.xml
index 4563275..4fe0dfe 100644
--- a/res/values-ur/arrays.xml
+++ b/res/values-ur/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"برف کا گولا"</item>
     <item msgid="7952183800501346803">"ساحل کی چھتری"</item>
     <item msgid="799139025758265891">"ورکشاپ ٹولز"</item>
-    <item msgid="1330084588359129896">"خیمہ"</item>
+    <item msgid="8112685757657659269">"پیانو"</item>
     <item msgid="3861584909935022342">"فلم ریل"</item>
     <item msgid="5827426100157335512">"کتاب"</item>
     <item msgid="8585828346253128384">"کنول کا پھول"</item>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 504284e..67d3341 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"اپنے نیٹ ورک اور وائرلیس سگنلز کا استعمال کرتے ہوئے خود بخود سیٹ کریں"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"خودکار ٹائم زون"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"اپنے قریب کے موبائل نیٹ ورکس کی بنیاد پر خود بخود سیٹ کریں"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"‏دستیاب ہونے پر اپنے آلہ کا مقام استعمال کرتے ہوئے خود بخود سیٹ کریں۔ ایک فعال WiFi کنکشن بھی درکار ہو سکتا ہے۔"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"دستیاب ہونے پر اپنے آلہ کا مقام استعمال کر کے خودکار طور پر سیٹ کریں"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"مقامی ڈیفالٹ کا استعمال کریں"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 گھنٹے کا فارمیٹ استعمال کریں"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"وقت"</string>
@@ -1949,15 +1949,21 @@
     <string name="bounce_keys_summary" msgid="7418024428905737729">"کی بورڈ ایک ہی کلید کے بار بار فوری طور پر دبانے کو نظر انداز کرتا ہے"</string>
     <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"باؤنس کلید کی حد"</string>
     <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"کی بورڈ کے بار بار کلید کو دبانے کو نظر انداز کرنے کے وقت کا انتخاب کریں"</string>
-    <string name="bounce_keys_dialog_option_200" msgid="7876774697200082558">"0.2s"</string>
-    <string name="bounce_keys_dialog_option_400" msgid="8146580138675322657">"0.4s"</string>
-    <string name="bounce_keys_dialog_option_600" msgid="6166166103942612488">"0.6s"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 سیکنڈ"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 سیکنڈ"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 سیکنڈ"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"حسب ضرورت"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"مخصوص قدر"</string>
     <string name="slow_keys" msgid="2891452895499690837">"سلو کلیدیں"</string>
     <string name="slow_keys_summary" msgid="2914214326648535377">"کلید دبانے کو فعال کرنے میں لگنے والے وقت کو ایڈجسٹ کرتا ہے"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"دبی رہنے والی کلیدیں"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"کلیدوں کو ایک ساتھ نیچے کی طرف پکڑے رکھنے کے بجائے، شارٹ کٹس کیلئے ایک وقت میں ایک کلید دبائیں"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"ماؤس کیز"</string>
     <string name="mouse_keys_summary" msgid="7030731235143286467">"پوائنٹر کو کنٹرول کرنے کے لیے اپنا کی بورڈ استعمال کریں"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"ماؤس کی معکوس اسکرولنگ"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"صفحہ کو نیچے منتقل کرنے کے لیے اوپر اسکرول کریں"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"بائیں اور دائیں بٹنز کو سویپ کریں"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"بائیں ماؤس کے بٹن کو اپنے دائیں کے طور پر استعمال کریں"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"کی بورڈ شارٹ کٹس"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"شارٹ کٹس کی فہرست دکھائیں"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"دفتری پروفائل کے کی بورڈز اور ٹولز"</string>
@@ -2026,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"‫<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> کے لیے نئی کلید منتخب کریں:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"فزیکل کی بورڈ ایکسیسبیلٹی"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"دبی رہنے والی کلیدیں، باؤنس کلیدیں، ماؤس کلیدیں"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"تکرار کی کلیدیں"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"دہرانے سے پہلے تاخیر"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"تکرار کی شرح"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"اس کے کردار کو دہرانے کے لیے کلید کے ریلیز ہونے تک کلید کو دبائے رکھیں"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> لے آؤٹ"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"ڈیفالٹ"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"خودکار: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2434,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"پیش منظر دیکھیں"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"معیاری اختیارات"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"زبان"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"کیپشن کا سائز"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"کیپشن کا طرز"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"حسب ضرورت اختیارات"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"پس منظر کا رنگ"</string>
@@ -2979,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"‏اس VPN سے غیر منسلک کریں؟"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"غیر منسلک کریں"</string>
     <string name="vpn_version" msgid="6344167191984400976">"ورژن"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"ورژن <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"‏VPN بھول جائیں"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"‏موجودہ VPN بدلیں؟"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"‏ہمیشہ آن VPN سیٹ کریں؟"</string>
@@ -5457,6 +5463,13 @@
     <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"صرف آلہ"</string>
     <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"نئے رابطے کسی اکاؤنٹ کے ساتھ مطابقت پذیر نہیں ہوں گے"</string>
     <string name="contacts_storage_selection_message" msgid="8082077300632059003">"رابطے آپ کے آلے میں محفوظ کیے جائیں گے اور آپ کے اکاؤنٹ میں بطور ڈیفالٹ مطابقت پذیر ہوں گے"</string>
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"کوئی ڈیفالٹ سیٹ نہیں ہے"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
+    <skip />
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
+    <skip />
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
+    <skip />
     <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"شروع کرنے کیلئے ایک اکاؤنٹ شامل کریں"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"تلاش کرنے کیلئے دائرہ بنائیں"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"اپنی اسکرین پر موجود مواد کو استعمال کر کے تلاش کرنے کے لیے ہوم بٹن یا نیویگیشن ہینڈل کو ٹچ کریں اور دبائے رکھیں۔"</string>
 </resources>
diff --git a/res/values-uz/arrays.xml b/res/values-uz/arrays.xml
index 8764027..60c7df9 100644
--- a/res/values-uz/arrays.xml
+++ b/res/values-uz/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Qor parchasi"</item>
     <item msgid="7952183800501346803">"Sohil soyaboni"</item>
     <item msgid="799139025758265891">"Asbob-uskunalar"</item>
-    <item msgid="1330084588359129896">"Chodir"</item>
+    <item msgid="8112685757657659269">"Pianino"</item>
     <item msgid="3861584909935022342">"Plyonka ruloni"</item>
     <item msgid="5827426100157335512">"Kitob"</item>
     <item msgid="8585828346253128384">"Lotus guli"</item>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 79e0452..4f27263 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Qurilmadagi tarmoq va simsiz signallar orqali avtomatik sozlash"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Avtomatik vaqt mintaqasi"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Atrofdagi mobil tarmoq asosida avtomatik sozlash"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Geo-joylashuv asosida avtomatik sozlash. Wi-Fi aloqasi talab etilishi mumkin."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Geo-joylashuv asosida avtomatik sozlash"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Birlamchi hududiy sozlamalar"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"24 soatlik format"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Vaqt"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Qulayliklar"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Tashqi klaviatura"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Qayta bosishni nazorat qilish"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Klaviaturada bir tugmaning tez takroriy bosilishi inkor etiladi"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Takroriy bosishlar intervali"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Klaviaturada tugmaning takroriy bosilishi qancha vaqt inkor etilishini tanlang"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Boshqa"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"boshqa qiymat"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Sekin tugmalar"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Tugmani bosish intervali hamda uning amalini sozlash"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Yopishqoq tugmalar"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Barcha tugmalar kombinatsiyasini bosib turish oʻrniga ularni birma-bir bosing"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Sinchqoncha tugmalari"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Kursorni klaviatura orqali boshqarish"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Sichqonchada teskari varaqlash"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Sahifani pastga varaqlash uchun tepaga suring"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Chap va oʻng tugmalarni almashtirish"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Sichqonchada chap tugmani oʻng tugma sifatida ishlatish"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Tezkor tugmalar"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Tezkor tugmalar roʻyxatini ochish"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Ish profili klaviaturalari va vositalari"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g> uchun yangi tugma tanlang:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Jismoniy klaviatura uchun qulayliklar"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Yopishqoq tugmalar, qayta bosish boshqaruvi, sichqonchani boshqarish tugmalari"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Takrorlash tugmalari"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Takror kiritishdan oldin kechiktirish"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Takror kiritish tezligi"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Kalit chiqarilmaguncha uning belgisini takrorlash uchun tugmani bosib turing"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> sxemasi"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Standart"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Avtomatik: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Dastlabki ko‘rib chiqish"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Standart sozlamalar"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Til"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Tagyozuv hajmi"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Taglavhalar uslubi"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Buyurtmali tanlamalar"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Fon rangi"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Bu VPN bilan aloqa uzilsinmi?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Aloqani uzish"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Versiya"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Versiya <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"VPNni o‘chirish"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Mavjud VPN tarmog‘i almashtirilsinmi?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Doimiy VPN o‘rnatilsinmi?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Qidiruv sozlamalari"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"kontaktlar, xotira, hisob"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Kontaktlar ombori"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Faqat qurilmada"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Yangi kontaktlar hisobga sinxronlanmaydi"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Birlamchi holatda kontaktlar qurilmada saqlanadi va hisobga sinxronlanadi"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Asosiy hisob tayinlanmagan"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Avval hisob qoʻshing"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Chizib qidirish"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Ekrandagi kontent orqali qidirish uchun Asosiy tugmani yoki navigatsiya panelini bosib turing"</string>
 </resources>
diff --git a/res/values-vi/arrays.xml b/res/values-vi/arrays.xml
index 7763c19..550c7e0 100644
--- a/res/values-vi/arrays.xml
+++ b/res/values-vi/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"Bông tuyết"</item>
     <item msgid="7952183800501346803">"Dù che trên bãi biển"</item>
     <item msgid="799139025758265891">"Công cụ trong xưởng"</item>
-    <item msgid="1330084588359129896">"Lều"</item>
+    <item msgid="8112685757657659269">"Piano"</item>
     <item msgid="3861584909935022342">"Cuộn phim"</item>
     <item msgid="5827426100157335512">"Sách"</item>
     <item msgid="8585828346253128384">"Hoa sen"</item>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index c0cd408..c0cf8a5 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Tự động đặt dựa trên tín hiệu không dây và mạng của bạn"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Múi giờ tự động"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Tự động đặt dựa trên các mạng di động gần bạn"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Tự động đặt dựa trên vị trí thiết bị của bạn, nếu có. Có thể cần kết nối Wi-Fi đang hoạt động."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Tự động đặt dựa trên vị trí thiết bị của bạn, nếu có"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Sử dụng định dạng của địa phương"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Sử dụng định dạng 24 giờ"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Giờ"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Hỗ trợ tiếp cận"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Bàn phím vật lý"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Phím nảy"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Bàn phím sẽ bỏ qua các lần nhấn nhanh liên tục cùng một phím"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Ngưỡng phím nảy"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Chọn khoảng thời gian bàn phím bỏ qua các lần nhấn phím liên tục"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0,2 giây"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0,4 giây"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0,6 giây"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Tuỳ chỉnh"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"giá trị tuỳ chỉnh"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Phím chậm"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Điều chỉnh thời gian cần để kích hoạt một lượt nhấn phím"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Phím cố định"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Nhấn từng phím một để dùng phím tắt thay vì giữ các phím cùng lúc"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Các phím điều khiển chuột"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Sử dụng bàn phím để điều khiển con trỏ"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Đảo ngược hướng cuộn chuột"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Cuộn lên để di chuyển xuống phía dưới của trang"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Hoán đổi nút chuột trái và phải"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Sử dụng nút chuột trái như nút chuột phải"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Phím tắt"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Hiện danh sách phím tắt"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Công cụ và bàn phím hồ sơ công việc"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Chọn một phím mới cho <xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Hỗ trợ tiếp cận cho bàn phím vật lý"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Phím cố định, Phím nảy, Phím chuột"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Lặp lại phím"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Độ trễ trước khi lặp lại"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Tốc độ lặp lại"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Nhấn và giữ một phím để lặp lại ký tự của phím đó cho đến khi bạn nhả phím"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Bố cục <xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Mặc định"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Tự động: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Xem trước"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Tùy chọn chuẩn"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Ngôn ngữ"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Kích thước phụ đề"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Kiểu phụ đề"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Tùy chọn tùy chỉnh"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Màu nền"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Ngắt kết nối VPN này?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Ngắt kết nối"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Phiên bản"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Phiên bản <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Xóa VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Thay thế VPN hiện có?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Đặt VPN luôn bật?"</string>
@@ -3392,7 +3390,7 @@
     <string name="spatial_summary_on_one" msgid="6239933399496282994">"Đang bật/<xliff:g id="OUTPUT_DEVICE">%1$s</xliff:g>"</string>
     <string name="spatial_summary_on_two" msgid="4526919818832483883">"Đang bật/<xliff:g id="OUTPUT_DEVICE_0">%1$s</xliff:g> và <xliff:g id="OUTPUT_DEVICE_1">%2$s</xliff:g>"</string>
     <string name="spatial_audio_footer_title" msgid="8775010547623606088">"Bạn cũng có thể bật chế độ Âm thanh không gian cho các thiết bị Bluetooth."</string>
-    <string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Cài đặt thiết bị được kết nối"</string>
+    <string name="spatial_audio_footer_learn_more_text" msgid="3826811708094366301">"Cài đặt thiết bị đã kết nối"</string>
     <string name="spatial_audio_multi_toggle_title" msgid="6175786400035541273">"Âm thanh không gian"</string>
     <string name="spatial_audio_multi_toggle_off" msgid="2086359413991193164">"Đang tắt"</string>
     <string name="spatial_audio_multi_toggle_on" msgid="4204808183659033003">"Đã khắc phục"</string>
@@ -3762,7 +3760,7 @@
     <string name="no_channels" msgid="4716199078612071915">"Ứng dụng này chưa đăng bất kỳ thông báo nào"</string>
     <string name="no_recent_channels" msgid="5068574296267584043">"Hiện các danh mục không dùng đến"</string>
     <string name="app_settings_link" msgid="6725453466705333311">"Chế độ cài đặt bổ sung trong ứng dụng"</string>
-    <string name="show_unused_channels" msgid="4956292847964439078">"Hiện các danh mục không dùng"</string>
+    <string name="show_unused_channels" msgid="4956292847964439078">"Hiện các danh mục không dùng đến"</string>
     <string name="hide_unused_channels" msgid="2019739275175707170">"Ẩn các danh mục không dùng"</string>
     <string name="deleted_channels" msgid="8489800381509312964">"{count,plural, =1{# danh mục bị xoá}other{# danh mục bị xoá}}"</string>
     <string name="app_notification_block_title" msgid="3880322745749900296">"Chặn tất cả"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Tìm kiếm trong phần Cài đặt"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"danh bạ, bộ nhớ, tài khoản"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Bộ nhớ danh bạ"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Chỉ thiết bị"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Những người liên hệ mới sẽ không được đồng bộ hoá với một tài khoản"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Những người liên hệ sẽ được lưu vào thiết bị và đồng bộ hoá với tài khoản của bạn theo mặc định"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Chưa đặt tài khoản mặc định nào"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Thêm một tài khoản để bắt đầu"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Khoanh tròn để tìm kiếm"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Bạn có thể chạm và giữ nút Màn hình chính hoặc thanh điều hướng để tìm kiếm bằng nội dung có trên màn hình của mình."</string>
 </resources>
diff --git a/res/values-zh-rCN/arrays.xml b/res/values-zh-rCN/arrays.xml
index 43b3ced..4ecb4f6 100644
--- a/res/values-zh-rCN/arrays.xml
+++ b/res/values-zh-rCN/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"雪花"</item>
     <item msgid="7952183800501346803">"沙滩伞"</item>
     <item msgid="799139025758265891">"工作坊工具"</item>
-    <item msgid="1330084588359129896">"帐篷"</item>
+    <item msgid="8112685757657659269">"钢琴"</item>
     <item msgid="3861584909935022342">"电影胶片"</item>
     <item msgid="5827426100157335512">"图书"</item>
     <item msgid="8585828346253128384">"莲花"</item>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 1273f07..42f0140 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"使用您的网络和无线信号自动设定"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"自动确定时区"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"根据您附近的移动网络自动设定"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"使用您的设备位置信息(如果可用)自动设定。可能还需要有效的 WLAN 连接。"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"根据设备位置信息(如果可用)自动设定"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"使用默认语言区域"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"使用 24 小时制"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"时间"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"无障碍功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"实体键盘"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"防抖键"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"键盘会忽略快速重复按下同一按键的操作"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"防抖键阈值"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"选择键盘忽略重复按键操作的时长"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 秒"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 秒"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 秒"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"自定义"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"自定义值"</string>
     <string name="slow_keys" msgid="2891452895499690837">"慢速键"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"调整启用按键操作所需的时长"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"粘滞键"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"只需一次按下一个键即可执行快捷操作,而不用同时按住多个键"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"鼠标键"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"使用键盘来控制指针"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"鼠标反向滚动"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"向上滚动可使页面内容向下移动"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"切换左键和右键"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"将鼠标左键用作右键"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"键盘快捷键"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"显示快捷键列表"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作资料键盘和工具"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"为<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>选择新的辅助键:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"实体键盘无障碍功能"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"粘滞键、防抖键、鼠标键"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"重复输入按键字符"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"开始重复输入前的延迟时间"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"重复速率"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"按住某个按键即重复输入其对应的字符,直到松开该按键为止"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"“<xliff:g id="IME_LABEL">%s</xliff:g>”布局"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"默认"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"自动选择的布局:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"预览"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"标准选项"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"语言"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"字幕大小"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"字幕样式"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"自定义选项"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"背景颜色"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"要断开与此 VPN 的连接吗?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"断开连接"</string>
     <string name="vpn_version" msgid="6344167191984400976">"版本"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> 版"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"取消保存 VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"要替换现有 VPN 吗?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"要设置始终开启的 VPN 吗?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"在设置中搜索"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"联系人, 存储, 账号, contacts, storage, account"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"联系人存储"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"仅限设备"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"新联系人不会与账号同步"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"默认情况下,系统会将联系人保存到您的设备并同步到您的账号"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"未设置默认账号"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"添加账号即可开始"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"圈定即搜"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"轻触并按住主屏幕按钮或导航手柄,即可使用屏幕上的内容进行搜索。"</string>
 </resources>
diff --git a/res/values-zh-rHK/arrays.xml b/res/values-zh-rHK/arrays.xml
index fa3cd29..190589a 100644
--- a/res/values-zh-rHK/arrays.xml
+++ b/res/values-zh-rHK/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"雪花"</item>
     <item msgid="7952183800501346803">"沙灘傘"</item>
     <item msgid="799139025758265891">"工作坊工具"</item>
-    <item msgid="1330084588359129896">"帳篷"</item>
+    <item msgid="8112685757657659269">"鋼琴"</item>
     <item msgid="3861584909935022342">"菲林卷軸"</item>
     <item msgid="5827426100157335512">"書籍"</item>
     <item msgid="8585828346253128384">"蓮花"</item>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 8478b1c..4f296cb 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"使用網絡和無線訊號自動設定"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"自動設定時區"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"根據你附近的流動網絡自動設定"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"使用裝置位置 (如已開啟) 自動設定。你亦可能需要啟用 Wi-Fi 連線。"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"使用裝置位置 (如已開啟) 自動設定"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"使用地區設定預設值"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"使用 24 小時格式"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"時間"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙功能"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"篩選鍵"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"鍵盤會忽略快速重覆按下同一按鍵的動作"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"彈跳鍵門檻"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"選擇鍵盤忽略重覆按鍵的時間長度"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 秒"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 秒"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 秒"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"自訂"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"自訂值"</string>
     <string name="slow_keys" msgid="2891452895499690837">"緩慢鍵"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"調整按鍵啟動時間"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"一次按下快速鍵中的一個鍵,而非同時按住多個鍵"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"滑鼠按鍵"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"使用鍵盤控制游標"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"滑鼠反向捲動"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"向上捲動即可將頁面向下移動"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"調換左右鍵"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"將滑鼠左鍵當右鍵使用"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作設定檔鍵盤與工具"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"為「<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>」選擇新的輔助鍵:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"實體鍵盤無障礙功能"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"相黏鍵、篩選鍵、滑鼠鍵"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"重複輸入按鍵"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"重複前的延遲時間"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"重複率"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"按住按鍵即可重複輸入按鍵上的字元,直到放開為止"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"<xliff:g id="IME_LABEL">%s</xliff:g> 版面配置"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"預設"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"自動:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"預覽"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"標準選項"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"語言"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"字幕大小"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"字幕樣式"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"自訂選項"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"背景顏色"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"要解除連結此 VPN 嗎?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"中斷連線"</string>
     <string name="vpn_version" msgid="6344167191984400976">"版本"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"版本 <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"刪除 VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"要取代目前的 VPN 嗎?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"要設定保持開啟的 VPN 嗎?"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"通訊錄, 儲存空間, 帳戶"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"「通訊錄」儲存空間"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"只限裝置"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"新聯絡人不會與帳戶同步"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"根據預設,系統會將聯絡人儲存至裝置並同步至你的帳戶"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"沒有預設帳戶"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"新增帳戶以開始使用"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"一圈即搜"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"按住主按鈕或導覽列,就能透過畫面上的內容搜尋。"</string>
 </resources>
diff --git a/res/values-zh-rTW/arrays.xml b/res/values-zh-rTW/arrays.xml
index b34f354..876c5d9 100644
--- a/res/values-zh-rTW/arrays.xml
+++ b/res/values-zh-rTW/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"雪花"</item>
     <item msgid="7952183800501346803">"沙灘遮陽傘"</item>
     <item msgid="799139025758265891">"工作坊工具"</item>
-    <item msgid="1330084588359129896">"帳篷"</item>
+    <item msgid="8112685757657659269">"鋼琴"</item>
     <item msgid="3861584909935022342">"電影膠卷"</item>
     <item msgid="5827426100157335512">"書籍"</item>
     <item msgid="8585828346253128384">"蓮花"</item>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index ff49870..f684a35 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"使用網路和無線訊號自動設定"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"自動判定時區"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"根據附近的行動網路自動設定"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"使用裝置位置資訊自動設定 (如有)。這個選項可能還需要有效的 Wi-Fi 連線。"</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"使用裝置位置資訊自動設定 (如有)"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"使用地區設定預設值"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"使用 24 小時格式"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"時間"</string>
@@ -1946,26 +1946,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"無障礙"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"實體鍵盤"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"彈回鍵"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"鍵盤會忽略快速重複按下同一按鍵的動作"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"彈回鍵門檻"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"選擇鍵盤忽略重複按下按鍵的時間長度"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2 秒"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4 秒"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6 秒"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"自訂"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"自訂值"</string>
     <string name="slow_keys" msgid="2891452895499690837">"延遲感應鍵"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"調整按鍵啟動時間"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"相黏鍵"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"一次按下快速鍵中的一個按鍵,而非同時按住多個按鍵"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"滑鼠按鍵"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"使用鍵盤控制游標"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"滑鼠反向捲動"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"向上捲動即可將頁面向下移動"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"交換左右按鍵"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"將滑鼠左鍵做為右鍵使用"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"鍵盤快速鍵"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"顯示快速鍵清單"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"工作資料夾鍵盤和工具"</string>
@@ -2034,10 +2032,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"為「<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>」選擇新的輔助鍵:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"實體鍵盤無障礙功能"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"相黏鍵、彈回鍵、滑鼠按鍵"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"重複輸入按鍵"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"重複前延遲時間"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"重複速度"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"按住按鍵即可重複輸入按鍵上的字元,直到放開為止"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"「<xliff:g id="IME_LABEL">%s</xliff:g>」版面配置"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"預設"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"自動選取:<xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2442,8 +2440,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"預覽"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"標準選項"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"語言"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"字幕大小"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"字幕樣式"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"自訂選項"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"背景顏色"</string>
@@ -2987,6 +2984,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"要中斷這個 VPN 連線嗎?"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"中斷連線"</string>
     <string name="vpn_version" msgid="6344167191984400976">"版本"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"<xliff:g id="VERSION">%s</xliff:g> 版"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"清除 VPN 設定檔"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"要取代現有的 VPN 嗎?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"要設定永久連線 VPN 嗎?"</string>
@@ -3526,7 +3524,7 @@
     <string name="zen_category_apps" msgid="1167374545618451925">"應用程式"</string>
     <string name="zen_category_exceptions" msgid="1316097981052752811">"鬧鐘和其他干擾"</string>
     <string name="zen_category_schedule" msgid="2003707171924226212">"排程"</string>
-    <string name="zen_category_duration" msgid="7515850842082631460">"從「快速設定」開啟後持續多久"</string>
+    <string name="zen_category_duration" msgid="7515850842082631460">"「快速設定」持續時長"</string>
     <string name="zen_settings_general" msgid="2704932194620124153">"一般"</string>
     <string name="zen_sound_footer" msgid="4090291351903631977">"開啟「零打擾」模式時,系統會將音效和震動設為靜音 (你在上方允許的項目除外)。"</string>
     <string name="zen_custom_settings_dialog_title" msgid="4613603772432720380">"自訂設定"</string>
@@ -3708,7 +3706,7 @@
     <string name="notif_listener_not_migrated" msgid="6265206376374278226">"這個應用程式不支援加強型設定"</string>
     <string name="notif_listener_more_settings" msgid="1348409392307208921">"更多設定"</string>
     <string name="notif_listener_more_settings_desc" msgid="7995492074281663658">"應用程式內提供更多設定"</string>
-    <string name="notification_polite_title" msgid="6121016426991791557">"通知緩和功能"</string>
+    <string name="notification_polite_title" msgid="6121016426991791557">"通知冷卻"</string>
     <string name="notification_polite_main_control_title" msgid="5812529809151927149">"使用通知緩和"</string>
     <string name="notification_polite_description" msgid="5497748284893832854">"如果短時間內收到多則通知,裝置就會降低音量並減少通知數量,持續時間最多 2 分鐘。來電、鬧鐘和重要對話則不受影響。\n\n如要在緩和期間查看通知,請從螢幕頂端往下拉。"</string>
     <string name="notification_polite_work" msgid="8823596456640216391">"套用至工作資料夾"</string>
@@ -5462,13 +5460,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"搜尋設定"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"聯絡人, 儲存空間, 帳戶"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"聯絡人儲存空間"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"僅限裝置"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"新的聯絡人資料不會與帳戶同步"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"系統預設會將聯絡人資料儲存到裝置,並同步到你的帳戶"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"沒有預設帳戶"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"如要開始使用,請新增帳戶"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"畫圈搜尋"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"按住主畫面按鈕或導覽列,就能搜尋畫面內容。"</string>
 </resources>
diff --git a/res/values-zu/arrays.xml b/res/values-zu/arrays.xml
index 9b0b52d..c7e1289 100644
--- a/res/values-zu/arrays.xml
+++ b/res/values-zu/arrays.xml
@@ -519,7 +519,7 @@
     <item msgid="663512680597461570">"ISnowflake"</item>
     <item msgid="7952183800501346803">"Isambulela sasebhishi"</item>
     <item msgid="799139025758265891">"Amathuluzi asendaweni yomsebenzi"</item>
-    <item msgid="1330084588359129896">"Itende"</item>
+    <item msgid="8112685757657659269">"Iphiyano"</item>
     <item msgid="3861584909935022342">"Ireel yefilimu"</item>
     <item msgid="5827426100157335512">"Incwadi"</item>
     <item msgid="8585828346253128384">"Imbali yelotus"</item>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 441df39..94b66fe6 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -250,7 +250,7 @@
     <string name="date_time_auto_summary" msgid="8294938565417729698">"Setha ngokuzenzakalela usebenzisa inethiwekhi yakho namasignali angenantambo"</string>
     <string name="zone_auto_title" msgid="3520584257065861479">"Izoni yesikhathi ezenzekelayo"</string>
     <string name="zone_auto_title_summary" msgid="6540356783943375071">"Setha ngokuzenzekelayo ngokusekelwe kumanethiwekhi eselula aseduze nawe"</string>
-    <string name="auto_zone_requires_location_summary" msgid="8751995978350701451">"Setha ngokuzenzakalela usebenzisa indawo yedivayisi yakho, uma ikhona. Uxhumo lwe-Wifi olusebenzayo nalo lungadingeka."</string>
+    <string name="auto_zone_requires_location_summary" msgid="2366567167956530124">"Setha ngokuzenzekela usebenzisa indawo yedivayisi yakho, uma ikhona"</string>
     <string name="date_time_24hour_auto" msgid="6583078135067804252">"Sebenzisa okuzenzakalelayo kwasendaweni"</string>
     <string name="date_time_24hour" msgid="286679379105653406">"Sebenzisa ifomethi ye-24 amahora"</string>
     <string name="date_time_set_time_title" msgid="2870083415922991906">"Isikhathi"</string>
@@ -1947,26 +1947,24 @@
     <string name="keyboard_a11y_category" msgid="8230758278046841469">"Ukufinyeleleka"</string>
     <string name="physical_keyboard_title" msgid="3328134097512350958">"Ikhibhodi ephathekayo"</string>
     <string name="bounce_keys" msgid="7419450970351743904">"Okhiye bokubuyisela emuva"</string>
-    <!-- no translation found for bounce_keys_summary (7418024428905737729) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_title (4088646362538368693) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_subtitle (5640575860258120026) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_200 (7876774697200082558) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_400 (8146580138675322657) -->
-    <skip />
-    <!-- no translation found for bounce_keys_dialog_option_600 (6166166103942612488) -->
-    <skip />
+    <string name="bounce_keys_summary" msgid="7418024428905737729">"Ikhibhodi iziba ukucindezela okuphindaphindiwe okusheshayo kwenkinobho efanayo"</string>
+    <string name="bounce_keys_dialog_title" msgid="4088646362538368693">"Ukhawulo wokhiye abaphindwayo"</string>
+    <string name="bounce_keys_dialog_subtitle" msgid="5640575860258120026">"Khetha inkathi yesikhathi ikhibhodi yakho ezoziba ngaso ukucindezela kwezinkinobho okuphindaphindiwe"</string>
+    <string name="input_setting_keys_dialog_option_200" msgid="3121006986226247560">"0.2s"</string>
+    <string name="input_setting_keys_dialog_option_400" msgid="2634500629396699440">"0.4s"</string>
+    <string name="input_setting_keys_dialog_option_600" msgid="3828362866751805146">"0.6s"</string>
+    <string name="input_setting_keys_custom_title" msgid="670425691119253202">"Okomuntu ngamunye"</string>
+    <string name="input_setting_keys_custom_value" msgid="4455905650507193648">"inani lokomuntu ngamunye"</string>
     <string name="slow_keys" msgid="2891452895499690837">"Okhiye abahamba kancane"</string>
-    <!-- no translation found for slow_keys_summary (2914214326648535377) -->
-    <skip />
+    <string name="slow_keys_summary" msgid="2914214326648535377">"Ilungisa isikhathi okusithathayo ukuze ukucindezela inkinobho kusebenze"</string>
     <string name="sticky_keys" msgid="7317317044898161747">"Okhiye abanamathelayo"</string>
     <string name="sticky_keys_summary" msgid="1844953803625480623">"Cindezela inkinobho eyodwa ngesikhathi ukuze uthole izinqamuleli esikhundleni sokubamba izinkinobho ndawonye"</string>
     <string name="mouse_keys" msgid="6237254627808525540">"Okhiye bemouse"</string>
-    <!-- no translation found for mouse_keys_summary (7030731235143286467) -->
-    <skip />
+    <string name="mouse_keys_summary" msgid="7030731235143286467">"Sebenzisa ikhibhodi yakho ukuze ulawule isikhombi"</string>
+    <string name="mouse_reverse_vertical_scrolling" msgid="154907817154779952">"Ukuskrola ngokuphendukezela igundane"</string>
+    <string name="mouse_reverse_vertical_scrolling_summary" msgid="3386655598642587942">"Skrola uye phezulu bese uyisa ikhasi ezansi"</string>
+    <string name="mouse_swap_primary_button" msgid="3028204969091057207">"Shintshanisa izinkinobho kwesokunxele nakwesokudla"</string>
+    <string name="mouse_swap_primary_button_summary" msgid="3276638019321067902">"Sebenzisa inkinobho yemawusi kwesokunxele njengesokudla sakho"</string>
     <string name="keyboard_shortcuts_helper" msgid="2553221039203165344">"Izinqamuleli zekhibhodi"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="5979507677602559203">"Bonisa uhlu lwezinqamuleli"</string>
     <string name="language_and_input_for_work_category_title" msgid="2546950919124199743">"Amakhibhodi ephrofayela yomsebenzi namathuluzi"</string>
@@ -2035,10 +2033,10 @@
     <string name="modifier_keys_picker_summary" msgid="739397232249560785">"Khetha ukhiye omusha we-<xliff:g id="MODIFIER_KEY_DEFAULT_NAME">%1$s</xliff:g>:"</string>
     <string name="keyboard_a11y_settings" msgid="2564659018555385728">"Ukufinyeleleka kwekhibhodi engokoqobo"</string>
     <string name="keyboard_a11y_settings_summary" msgid="1698531156574098722">"Okhiye abanamathelayo, okhiye Bokubuyisela emuva, okhiye Bemawusi"</string>
-    <!-- no translation found for keyboard_repeat_key_title (3641350808120194549) -->
-    <skip />
-    <!-- no translation found for keyboard_repeat_key_summary (3970350989341158854) -->
-    <skip />
+    <string name="keyboard_repeat_keys_title" msgid="6346877755243280735">"Phinda Okhiye"</string>
+    <string name="keyboard_repeat_keys_timeout_title" msgid="3411871149974652293">"Bambezela ngaphambi kokuphinda"</string>
+    <string name="keyboard_repeat_keys_delay_title" msgid="7323531750483922943">"Phinda Ukulinganisela"</string>
+    <string name="keyboard_repeat_keys_summary" msgid="8972905345211768313">"Bambela phansi ukhiye ukuze uphinde uhlamvu lwawo kuze kukhululwe ukhiye walo"</string>
     <string name="ime_label_title" msgid="8994569521516807168">"Isakhiwo se-<xliff:g id="IME_LABEL">%s</xliff:g>"</string>
     <string name="default_keyboard_layout" msgid="8690689331289452201">"Okuzenzakalelayo"</string>
     <string name="automatic_keyboard_layout_label" msgid="9138088156046198913">"Okuzenzekelayo: <xliff:g id="LAYOUT_LABEL">%s</xliff:g>"</string>
@@ -2443,8 +2441,7 @@
     <string name="captioning_preview_title" msgid="2888561631323180535">"Buka kuqala"</string>
     <string name="captioning_standard_options_title" msgid="5360264497750980205">"Izinketho ezijwayelekile"</string>
     <string name="captioning_locale" msgid="5533303294290661590">"Ulimi"</string>
-    <!-- no translation found for captioning_text_size (5764254558945371745) -->
-    <skip />
+    <string name="captioning_text_size" msgid="5764254558945371745">"Usayizi wegama-ncazo"</string>
     <string name="captioning_preset" msgid="4174276086501638524">"Isitayela segama-ncazo"</string>
     <string name="captioning_custom_options_title" msgid="3858866498893566351">"Izinketho ezingokwezifiso"</string>
     <string name="captioning_background_color" msgid="5231412761368883107">"Umbala ongemuva"</string>
@@ -2988,6 +2985,7 @@
     <string name="vpn_disconnect_confirm" msgid="6356789348816854539">"Nqamula le-VPN"</string>
     <string name="vpn_disconnect" msgid="7753808961085867345">"Nqamula"</string>
     <string name="vpn_version" msgid="6344167191984400976">"Uhlobo"</string>
+    <string name="vpn_version_info" msgid="5717671228402924155">"Uhlobo <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="729132269203870205">"Khohlwa i-VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="3994226561866340280">"Shintshanisa i-VPN ekhona?"</string>
     <string name="vpn_set_vpn_title" msgid="1667539483005810682">"Setha i-VPN ehlala ivuliwe?"</string>
@@ -5463,13 +5461,16 @@
     <string name="homepage_search" msgid="6759334912284663559">"Amasethingi Okusesha"</string>
     <string name="keywords_contacts_storage" msgid="9061213057165337893">"oxhumana nabo, isitoreji, i-akhawunti"</string>
     <string name="contacts_storage_settings_title" msgid="1574030546525203810">"Isitoreji soxhumana nabo"</string>
-    <!-- no translation found for contacts_storage_device_only_preference_label (970250816918108264) -->
+    <string name="contacts_storage_device_only_preference_label" msgid="970250816918108264">"Idivayisi kuphela"</string>
+    <string name="contacts_storage_device_only_preference_summary" msgid="2339782491812039153">"Oxhumana nabo abasha ngeke bavumelaniswe ne-akhawunti"</string>
+    <string name="contacts_storage_selection_message" msgid="8082077300632059003">"Oxhumana nabo bazolondolozwa kudivayisi yakho futhi bavumelaniswe ne-akhawunti yakho ngokuzenzakalelayo"</string>
+    <!-- no translation found for contacts_storage_set_default_account_error_message (849847649756411393) -->
     <skip />
-    <!-- no translation found for contacts_storage_device_only_preference_summary (2339782491812039153) -->
+    <!-- no translation found for contacts_storage_no_account_set_summary (7454973781666475276) -->
     <skip />
-    <!-- no translation found for contacts_storage_selection_message (8082077300632059003) -->
+    <!-- no translation found for contacts_storage_local_account_summary (5034805108128685712) -->
     <skip />
-    <string name="contacts_storage_no_account_set" msgid="1548101985417720782">"Ayikho isethi ezenzakalelayo"</string>
-    <!-- no translation found for contacts_storage_first_time_add_account_message (5161093169928132323) -->
-    <skip />
+    <string name="contacts_storage_first_time_add_account_message" msgid="5161093169928132323">"Faka i-akhawunti ukuze uqalise"</string>
+    <string name="search_gesture_feature_title" msgid="7037117019612710960">"Khethela Ukusesha"</string>
+    <string name="search_gesture_feature_summary" msgid="1793056495030564014">"Thinta uphinde ubambe inkinobho yokubuyela ekhasini lasekhaya noma isibambi sokufuna ukuze useshe usebenzisa okuqukethwe okusesikrinini sakho."</string>
 </resources>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 8e5519f..ed0bce4 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -1551,7 +1551,7 @@
         <item>@*android:drawable/ic_zen_mode_icon_snowflake</item>
         <item>@*android:drawable/ic_zen_mode_icon_beach</item>
         <item>@*android:drawable/ic_zen_mode_icon_workshop</item>
-        <item>@*android:drawable/ic_zen_mode_icon_camping</item>
+        <item>@*android:drawable/ic_zen_mode_icon_piano</item>
         <item>@*android:drawable/ic_zen_mode_type_theater</item> <!-- Film reel -->
         <item>@*android:drawable/ic_zen_mode_icon_book</item>
         <!-- Wellbeing -->
@@ -1602,7 +1602,7 @@
         <item>Snowflake</item>
         <item>Beach umbrella</item>
         <item>Workshop tools</item>
-        <item>Tent</item>
+        <item>Piano</item>
         <item>Film reel</item>
         <item>Book</item>
         <!-- Wellbeing -->
diff --git a/res/values/config.xml b/res/values/config.xml
index 065d28a..09f941f 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -836,4 +836,7 @@
 
     <!-- Package name for diagnostics app. -->
     <string name="config_device_diagnostics_package_name" translatable="false">com.android.devicediagnostics</string>
+
+    <!-- Package name for Linux terminal app -->
+    <string name="config_linux_terminal_app_package_name" translatable="false">com.android.virtualization.terminal</string>
 </resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 31ea1bf..ebb69f7 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -33,9 +33,9 @@
     <string name="device_info_protected_single_press">Tap to show info</string>
     <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
     <string name="show_dev_countdown">{count, plural,
-      =1      {You are now # step away from being a developer.}
-      other   {You are now # steps away from being a developer.}
-    }</string>
+        =1      {You are now # step away from being a developer.}
+        other   {You are now # steps away from being a developer.}
+        }</string>
     <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled -->
     <string name="show_dev_on">You are now a developer!</string>
     <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
@@ -502,9 +502,9 @@
 
     <!-- The title of the confirmation dialog shown when the user selects one / several languages and tries to remove them [CHAR LIMIT=60] -->
     <string name="dlg_remove_locales_title">{count, plural,
-      =1      {Remove selected language?}
-      other   {Remove selected languages?}
-    }</string>
+        =1      {Remove selected language?}
+        other   {Remove selected languages?}
+        }</string>
 
     <!-- The text of the confirmation dialog shown when the user selects several languages and tries to remove them [CHAR LIMIT=NONE] -->
     <string name="dlg_remove_locales_message">Text will be displayed in another language.</string>
@@ -654,9 +654,9 @@
     <string name="location_settings_summary_location_off">Off</string>
     <!-- Summary for Location settings when location is on, explaining how many apps have location permission [CHAR LIMIT=NONE]-->
     <string name="location_settings_summary_location_on">{count, plural,
-      =1      {On / # app has access to location}
-      other   {On / # apps have access to location}
-    }</string>
+        =1      {On / # app has access to location}
+        other   {On / # apps have access to location}
+        }</string>
     <!-- Location settings, loading the number of apps which have location permission [CHAR LIMIT=30] -->
     <string name="location_settings_loading_app_permission_stats">Loading\u2026</string>
     <!-- Location settings footer warning text when location is on [CHAR LIMIT=NONE] -->
@@ -845,9 +845,9 @@
     <string name="fingerprint_add_title">Add fingerprint</string>
     <!-- Message showing the current number of fingerprints set up. Shown for a menu item that launches fingerprint settings or enrollment. -->
     <string name="security_settings_fingerprint_preference_summary">{count, plural,
-      =1      {Fingerprint added}
-      other   {# fingerprints added}
-    }</string>
+        =1      {Fingerprint added}
+        other   {# fingerprints added}
+        }</string>
     <!-- message shown in summary field when no fingerprints are registered -->
     <string name="security_settings_fingerprint_preference_summary_none">Setup needed</string>
     <!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature [CHAR LIMIT=29] -->
@@ -1448,9 +1448,9 @@
     <string name="private_space_category_hide">Hide</string>
     <!-- Header on pattern confirm screen inside private space settings when separate lock set for private space [CHAR LIMIT=50] -->
     <string name="private_space_confirm_your_pattern_header">Confirm your private space pattern</string>
-     <!-- Header on PIN confirm screen inside private space settings when separate lock set for private space [CHAR LIMIT=50] -->
+    <!-- Header on PIN confirm screen inside private space settings when separate lock set for private space [CHAR LIMIT=50] -->
     <string name="private_space_confirm_your_pin_header">Re-enter your private space PIN</string>
-     <!-- Header on password confirm screen inside private space when separate lock set for private space[CHAR LIMIT=50] -->
+    <!-- Header on password confirm screen inside private space when separate lock set for private space[CHAR LIMIT=50] -->
     <string name="private_space_confirm_your_password_header">Re-enter your private space password</string>
 
     <!-- Text shown when "Add fingerprint" button is disabled -->
@@ -1686,21 +1686,21 @@
 
     <!-- Hint shown in dialog screen when password is too short -->
     <string name="lockpassword_password_too_short">{count, plural,
-      =1      {Must contain at least # character}
-      other   {Must be at least # characters}
-    }</string>
+        =1      {Must contain at least # character}
+        other   {Must be at least # characters}
+        }</string>
     <!-- Hint shown in dialog screen when password is too short and only using numbers. [CHAR LIMIT=NONE] -->
     <string name="lockpassword_password_too_short_all_numeric">
         {count, plural,
-            =1    {If using only numbers, must be at least 1 digit}
-            other {If using only numbers, must be at least # digits}
+        =1    {If using only numbers, must be at least 1 digit}
+        other {If using only numbers, must be at least # digits}
         }
     </string>
     <!-- Hint shown in dialog screen when PIN is too short -->
     <string name="lockpassword_pin_too_short">{count, plural,
-      =1      {PIN must contain at least # digit}
-      other   {PIN must be at least # digits}
-    }</string>
+        =1      {PIN must contain at least # digit}
+        other   {PIN must be at least # digits}
+        }</string>
 
     <!-- Hint shown in dialog screen when PIN is too short with Additional text indicating minAutoConfirmLen(eg: 6) digits PIN offer additional security -->
     <string name="lockpassword_pin_too_short_autoConfirm_extra_message">{count, plural,
@@ -1710,14 +1710,14 @@
 
     <!-- Error shown in popup when password is too long -->
     <string name="lockpassword_password_too_long">{count, plural,
-      =1      {Must be fewer than # character}
-      other   {Must be fewer than # characters}
-    }</string>
+        =1      {Must be fewer than # character}
+        other   {Must be fewer than # characters}
+        }</string>
     <!-- Error shown in popup when PIN is too long -->
     <string name="lockpassword_pin_too_long">{count, plural,
-      =1      {Must be fewer than # digit}
-      other   {Must be fewer than # digits}
-    }</string>
+        =1      {Must be fewer than # digit}
+        other   {Must be fewer than # digits}
+        }</string>
 
     <!-- Error shown when in PIN mode and PIN has been used recently. Please keep this string short! -->
     <string name="lockpassword_pin_recently_used">Device admin doesn\'t allow using a recent PIN</string>
@@ -1727,45 +1727,45 @@
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of letters -->
     <string name="lockpassword_password_requires_letters">{count, plural,
-      =1      {Must contain at least 1 letter}
-      other   {Must contain at least # letters}
-    }</string>
+        =1      {Must contain at least 1 letter}
+        other   {Must contain at least # letters}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of lowercase letters -->
     <string name="lockpassword_password_requires_lowercase">{count, plural,
-      =1      {Must contain at least 1 lowercase letter}
-      other   {Must contain at least # lowercase letters}
-    }</string>
+        =1      {Must contain at least 1 lowercase letter}
+        other   {Must contain at least # lowercase letters}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of uppercase letters -->
     <string name="lockpassword_password_requires_uppercase">{count, plural,
-      =1      {Must contain at least 1 uppercase letter}
-      other   {Must contain at least # uppercase letters}
-    }</string>
+        =1      {Must contain at least 1 uppercase letter}
+        other   {Must contain at least # uppercase letters}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of numerical digits -->
     <string name="lockpassword_password_requires_numeric">{count, plural,
-      =1      {Must contain at least 1 numerical digit}
-      other   {Must contain at least # numerical digits}
-    }</string>
+        =1      {Must contain at least 1 numerical digit}
+        other   {Must contain at least # numerical digits}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of special symbols -->
     <string name="lockpassword_password_requires_symbols">{count, plural,
-      =1      {Must contain at least 1 special symbol}
-      other   {Must contain at least # special symbols}
-    }</string>
+        =1      {Must contain at least 1 special symbol}
+        other   {Must contain at least # special symbols}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of non-letter characters -->
     <string name="lockpassword_password_requires_nonletter">{count, plural,
-      =1      {Must contain at least 1 non-letter character}
-      other   {Must contain at least # non-letter characters}
-    }</string>
+        =1      {Must contain at least 1 non-letter character}
+        other   {Must contain at least # non-letter characters}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password doesn't contain the required number of non-numerical characters -->
     <string name="lockpassword_password_requires_nonnumerical">{count, plural,
-      =1      {Must contain at least 1 non-numerical character}
-      other   {Must contain at least # non-numerical characters}
-    }</string>
+        =1      {Must contain at least 1 non-numerical character}
+        other   {Must contain at least # non-numerical characters}
+        }</string>
 
     <!-- Error shown when in PASSWORD mode and password has been used recently. Please keep this string short! -->
     <string name="lockpassword_password_recently_used">Device admin doesn\'t allow using a recent
@@ -1801,9 +1801,9 @@
 
     <!-- Summary of preference to manage device admin apps, informing the user how many device admin apps are installed and active -->
     <string name="number_of_device_admins">{count, plural,
-      =1      {# active app}
-      other   {# active apps}
-    }</string>
+        =1      {# active app}
+        other   {# active apps}
+        }</string>
 
     <!-- Title of preference to manage trust agents -->
     <string name="manage_trust_agents">Trust agents</string>
@@ -1816,9 +1816,9 @@
 
     <!-- Summary of preference to manage device policies when there is trust agent-->
     <string name="manage_trust_agents_summary_on">{count, plural,
-      =1      {1 active trust agent}
-      other   {# active trust agents}
-    }</string>
+        =1      {1 active trust agent}
+        other   {# active trust agents}
+        }</string>
 
     <!-- Bluetooth settings -->
     <!--Used as title on second screen after selecting Bluetooth settings -->
@@ -2412,19 +2412,19 @@
     <!-- Wi-Fi Advanced Settings --> <skip />
     <!-- Wi-Fi settings screen, Saved networks summary.  This shows below the "Saved networks" item and indicates the number of networks, not including passpoint network, a user has saved. [CHAR LIMIT=30] -->
     <string name="wifi_saved_access_points_summary">{count, plural,
-      =1      {1 network}
-      other   {# networks}
-    }</string>
+        =1      {1 network}
+        other   {# networks}
+        }</string>
     <!-- Wi-Fi settings screen, Saved networks summary.  This shows below the "Saved networks" item and indicates the number of passpoint networks a user has saved. [CHAR LIMIT=30] -->
     <string name="wifi_saved_passpoint_access_points_summary">{count, plural,
-      =1      {1 subscription}
-      other   {# subscriptions}
-    }</string>
+        =1      {1 subscription}
+        other   {# subscriptions}
+        }</string>
     <!-- Wi-Fi settings screen, Saved networks summary.  This shows below the "Saved networks" item and indicates number of whole kinds networks, if there are both normal saved networks and saved passpoint networks. The number will be at least 2, so the one case is only to prevent lint error. [CHAR LIMIT=60] -->
     <string name="wifi_saved_all_access_points_summary">{count, plural,
-      =1      {1 network &amp; subscription}
-      other   {# networks &amp; subscriptions}
-    }</string>
+        =1      {1 network &amp; subscription}
+        other   {# networks &amp; subscriptions}
+        }</string>
     <!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's SSID. [CHAR LIMIT=20] -->
     <string name="wifi_advanced_ssid_title">SSID</string>
     <!-- Wi-Fi settings screen, advanced, title of the item to show the device's Wi-Fi MAC address. [CHAR LIMIT=50] -->
@@ -2998,11 +2998,11 @@
     <!-- Dark UI screen footer summary text shown to indicate Modes may turn on/off Dark theme automatically according to their triggers. [CHAR LIMIT=NONE] -->
     <string name="dark_ui_modes_footer_summary">
         {count, plural, offset:2
-            =0    {Modes can also activate dark theme}
-            =1    {{mode_1} also activates dark theme}
-            =2    {{mode_1} and {mode_2} also activate dark theme}
-            =3    {{mode_1}, {mode_2}, and {mode_3} also activate dark theme}
-            other {{mode_1}, {mode_2}, and # more also activate dark theme}
+        =0    {Modes can also activate dark theme}
+        =1    {{mode_1} also activates dark theme}
+        =2    {{mode_1} and {mode_2} also activate dark theme}
+        =3    {{mode_1}, {mode_2}, and {mode_3} also activate dark theme}
+        other {{mode_1}, {mode_2}, and # more also activate dark theme}
         }
     </string>
     <!-- Dark UI screen footer action text linking to Modes settings. [CHAR LIMIT=NONE] -->
@@ -3153,9 +3153,9 @@
     <string name="wrong_pin_code_pukked">Incorrect SIM PIN code you must now contact your carrier to unlock your device.</string>
     <!-- Instructions telling the user that they entered the wrong SIM PIN while trying to unlock the keyguard.  Displayed in a dialog box.  [CHAR LIMIT=100] -->
     <string name="wrong_pin_code">{count, plural,
-      =1      {Incorrect SIM PIN code, you have # remaining attempt before you must contact your carrier to unlock your device.}
-      other   {Incorrect SIM PIN code, you have # remaining attempts.}
-    }</string>
+        =1      {Incorrect SIM PIN code, you have # remaining attempt before you must contact your carrier to unlock your device.}
+        other   {Incorrect SIM PIN code, you have # remaining attempts.}
+        }</string>
 
     <!-- This is instruction text to inform the user that they have entered the wrong SIM PIN while trying to unlock the keyguard.
          The variable will be replaced with a number. [CHAR LIMIT=NONE] -->
@@ -3324,27 +3324,27 @@
 
     <!-- Dialog body informing user about an unmountable storage device. [CHAR LIMIT=NONE]-->
     <string name="storage_dialog_unmountable">This <xliff:g id="name" example="SD card">^1</xliff:g> is corrupted.
-\n\nTo use this <xliff:g id="name" example="SD card">^1</xliff:g>, you have to set it up first.</string>
+        \n\nTo use this <xliff:g id="name" example="SD card">^1</xliff:g>, you have to set it up first.</string>
 
     <!-- Body of dialog informing user about consequences of formatting an internal storage device [CHAR LIMIT=NONE]-->
     <string name="storage_internal_format_details">You can format this SD card to store photos, videos, music,
         and more and access them on other devices.
         \n\n<b>All data on this SD card will be erased.</b>
         \n\n<b>Before formatting</b>
-\n\n<b>Back up photos &amp; other media</b>
-\nMove your media files to alternative storage on this device, or transfer them to a computer using a USB cable.
-\n\n<b>Back up apps</b>
-\nAll apps stored on this <xliff:g id="name" example="SD card">^1</xliff:g> will be uninstalled and their data will be erased. To keep these apps, move them to alternative storage on this device.</string>
+        \n\n<b>Back up photos &amp; other media</b>
+        \nMove your media files to alternative storage on this device, or transfer them to a computer using a USB cable.
+        \n\n<b>Back up apps</b>
+        \nAll apps stored on this <xliff:g id="name" example="SD card">^1</xliff:g> will be uninstalled and their data will be erased. To keep these apps, move them to alternative storage on this device.</string>
 
     <!-- Body of dialog informing user about consequences of ejecting an internal storage device [CHAR LIMIT=NONE]-->
     <string name="storage_internal_unmount_details"><b>When you eject this <xliff:g id="name" example="SD card">^1</xliff:g>, apps stored on it will stop working, and media files stored on it will not be available until it is reinserted.</b>
-\n\nThis <xliff:g id="name" example="SD card">^1</xliff:g> is formatted to work on this device only.  It won\u2019t work on any others.</string>
+        \n\nThis <xliff:g id="name" example="SD card">^1</xliff:g> is formatted to work on this device only.  It won\u2019t work on any others.</string>
 
     <!-- Body of dialog informing user about consequences of forgetting an internal storage device [CHAR LIMIT=NONE]-->
     <string name="storage_internal_forget_details">To use the apps, photos, or data this <xliff:g id="name" example="SD card">^1</xliff:g> contains, reinsert it.
-\n\nAlternatively, you can choose to forget this storage if the device isn\u2019t available.
-\n\nIf you choose to forget, all the data the device contains will be lost forever.
-\n\nYou can reinstall the apps later, but their data stored on this device will be lost.</string>
+        \n\nAlternatively, you can choose to forget this storage if the device isn\u2019t available.
+        \n\nIf you choose to forget, all the data the device contains will be lost forever.
+        \n\nYou can reinstall the apps later, but their data stored on this device will be lost.</string>
 
     <!-- Title of dialog confirming that user wants to forget an internal storage device [CHAR LIMIT=32]-->
     <string name="storage_internal_forget_confirm_title">Forget <xliff:g id="name" example="SD card">^1</xliff:g>?</string>
@@ -3378,7 +3378,7 @@
     <string name="storage_wizard_move_confirm_title">Move <xliff:g id="app" example="Calculator">^1</xliff:g></string>
     <!-- Body of wizard step prompting user to move an app [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_move_confirm_body">Moving <xliff:g id="app" example="Calculator">^1</xliff:g> and its data to <xliff:g id="name" example="SD card">^2</xliff:g> will take only a few moments. You won\u2019t be able to use the app until the move is complete.
-\n\nDon\u2019t remove the <xliff:g id="name" example="SD card">^2</xliff:g> during the move.
+        \n\nDon\u2019t remove the <xliff:g id="name" example="SD card">^2</xliff:g> during the move.
     </string>
 
     <!-- Body of lock screen challenge message explaining that the given user must be unlocked before data can be moved [CHAR LIMIT=64] -->
@@ -3388,7 +3388,7 @@
     <string name="storage_wizard_move_progress_title">Moving <xliff:g id="app" example="Calculator">^1</xliff:g>\u2026</string>
     <!-- Body of wizard step showing app move progress [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_move_progress_body">Don\u2019t remove the <xliff:g id="name" example="SD card">^1</xliff:g> during the move.
-\n\nThe <xliff:g id="app" example="Calculator">^2</xliff:g> app on this device won\u2019t be available until the move is complete.
+        \n\nThe <xliff:g id="app" example="Calculator">^2</xliff:g> app on this device won\u2019t be available until the move is complete.
     </string>
 
     <!-- This is the title of a full-screen message. After this question, the user will get to choose how they want to use the storage device that they have in their phone. The placeholder is for the specific device (e.g. SD card, USB drive, etc.). [CHAR LIMIT=32] -->
@@ -3408,7 +3408,7 @@
     <string name="storage_wizard_format_confirm_v2_title">Format this <xliff:g id="name" example="SD card">^1</xliff:g>?</string>
     <!-- Body of a dialog. This text is confirming that the user wants to use their SD card as extra phone storage, but the formatting process will erase existing content on the card. The first placeholder is for the name of the device (e.g. a brand name of the SD card or USB drive). The second and third placeholders are for the general references (e.g. SD card, USB drive). [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_format_confirm_v2_body">This <xliff:g id="name" example="SanDisk SD card">^1</xliff:g> needs to be formatted to store apps, files, and media.
-\n\nFormatting will erase existing content on the <xliff:g id="name" example="SD card">^2</xliff:g>. To avoid losing content, back it up to another <xliff:g id="name" example="SD card">^3</xliff:g> or device.</string>
+        \n\nFormatting will erase existing content on the <xliff:g id="name" example="SD card">^2</xliff:g>. To avoid losing content, back it up to another <xliff:g id="name" example="SD card">^3</xliff:g> or device.</string>
     <!-- Body of a dialog. This text is confirming that the user wants to use their SD card as portable storage, but the formatting process will erase existing content on the card. The first placeholder is for the name of the device (e.g. a brand name of the SD card or USB drive). The second and third placeholders are for the general references (e.g. SD card, USB drive). [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_format_confirm_v2_body_external">This <xliff:g id="name" example="SanDisk SD card">^1</xliff:g> needs to be formatted to store photos, videos, music, and more.
         \n\nFormatting will erase existing content on the <xliff:g id="name" example="SD card">^2</xliff:g>. To avoid losing content, back it up to another <xliff:g id="name" example="SD card">^3</xliff:g> or device.</string>
@@ -3437,8 +3437,8 @@
     <string name="storage_wizard_slow_v2_title">Slow <xliff:g id="name" example="SD card">^1</xliff:g></string>
     <!-- Strings that are part of a full-screen message. These strings let the user know that their storage device is slow, and include some options they can try. The first placeholder is for the name of the storage device (e.g. brand name of the SD card), and the second and third placeholders are for the general references (e.g. SD card, USB drive, etc.). [CHAR LIMIT=NONE] -->
     <string name="storage_wizard_slow_v2_body">You can still use this <xliff:g id="name" example="SanDisk SD card">^1</xliff:g>, but it may be slow.
-\n\nApps stored on this <xliff:g id="name" example="SD card">^2</xliff:g> may not work properly, and content transfers could take a long time.
-\n\nTry using a faster <xliff:g id="name" example="SD card">^3</xliff:g>, or use this <xliff:g id="name" example="SD card">^4</xliff:g> for portable storage instead.</string>
+        \n\nApps stored on this <xliff:g id="name" example="SD card">^2</xliff:g> may not work properly, and content transfers could take a long time.
+        \n\nTry using a faster <xliff:g id="name" example="SD card">^3</xliff:g>, or use this <xliff:g id="name" example="SD card">^4</xliff:g> for portable storage instead.</string>
     <!-- Action of a dialog. This action will start the wizard from the beginning, letting the user make an alternative choice. [CHAR LIMIT=32] -->
     <string name="storage_wizard_slow_v2_start_over">Start over</string>
     <!-- Action of a dialog. This action will continue the wizard, meaning the user acknowledges their card is slow. [CHAR LIMIT=32] -->
@@ -3753,9 +3753,9 @@
 
     [CHAR LIMIT=NONE]-->
     <string name="location_app_permission_summary_location_on">{count, plural,
-      =1      {# of {total} apps has access to location}
-      other   {# of {total} apps have access to location}
-    }</string>
+        =1      {# of {total} apps has access to location}
+        other   {# of {total} apps have access to location}
+        }</string>
     <!-- [CHAR LIMIT=50] Location settings screen, sub category for recent location access -->
     <string name="location_category_recent_location_access">Recent access</string>
     <!-- Location settings screen, displayed when there're more than three recent location access apps [CHAR LIMIT=30] -->
@@ -4141,9 +4141,9 @@
     <string name="recent_app_category_title">Recently opened apps</string>
     <!-- Preference title for showing all apps on device [CHAR_LIMIT=50]-->
     <string name="see_all_apps_title">{count, plural,
-      =1      {See all apps}
-      other   {See all # apps}
-    }</string>
+        =1      {See all apps}
+        other   {See all # apps}
+        }</string>
 
     <!-- Title of the dialog that asks the user to contact the IT admin to reset password [CHAR LIMIT=40] -->
     <string name="forgot_password_title">Contact your IT admin</string>
@@ -4174,9 +4174,9 @@
     <string name="cache_size_label">Cache</string>
     <!-- Manage applications, individual application info storage screen. Describes the number of URIs (directories or files) an app has been granted access (by another apps)-->
     <string name="uri_permissions_text">{count, plural,
-      =1      {1 item}
-      other   {# items}
-    }</string>
+        =1      {1 item}
+        other   {# items}
+        }</string>
     <!-- Manage applications, individual application info storage screen. Button below list of URIs. -->
     <string name="clear_uri_btn_text">Clear access</string>
     <!-- Manage applications, Header name used for other controls -->
@@ -4229,7 +4229,7 @@
     <string name="clear_activities">Clear default preferences</string>
     <!-- Manage applications, individual application info screen, screen, message text under screen compatibility heading -->
     <string name="screen_compatibility_text">This app may not be designed for your screen. You can control how it
-            adjusts to your screen here.</string>
+        adjusts to your screen here.</string>
     <!-- Manage applications, individual application screen, checkbox to control asking for compatibility mode.  -->
     <string name="ask_compatibility">Ask when launched</string>
     <!-- Manage applications, individual application screen, checkbox to control compatibility mode.  -->
@@ -4493,10 +4493,10 @@
     <!-- Warning message about security implications of enabling a spell checker, displayed as a dialog
          message when the user selects to enable a spell checker. -->
     <string name="spellchecker_security_warning">This spell checker may be able to collect
-    all the text you type, including personal data like passwords and credit
-    card numbers.  It comes from the app
-    <xliff:g id="spellchecker_application_name">%1$s</xliff:g>.
-    Use this spell checker?</string>
+        all the text you type, including personal data like passwords and credit
+        card numbers.  It comes from the app
+        <xliff:g id="spellchecker_application_name">%1$s</xliff:g>.
+        Use this spell checker?</string>
     <!-- Image button description for spell checker quick settings. -->
     <string name="spellchecker_quick_settings">Settings</string>
     <!-- Image button description for spell checker language. -->
@@ -4525,12 +4525,17 @@
     <string name="bounce_keys_dialog_title">Bounce key threshold</string>
     <!-- Subtitle for the 'Bounce keys' threshold dialog. [CHAR LIMIT=300] -->
     <string name="bounce_keys_dialog_subtitle">Choose the duration of time your keyboard ignores repeated key presses</string>
-    <!-- Option title for the 'Bounce keys' threshold dialog for 200 millisecond. [CHAR LIMIT=35] -->
-    <string name="bounce_keys_dialog_option_200">0.2s</string>
-    <!-- Option title for the 'Bounce keys' threshold dialog for 400 millisecond. [CHAR LIMIT=35] -->
-    <string name="bounce_keys_dialog_option_400">0.4s</string>
-    <!-- Option title for the 'Bounce keys' threshold dialog for 600 millisecond. [CHAR LIMIT=35] -->
-    <string name="bounce_keys_dialog_option_600">0.6s</string>
+    <!-- Option title for the input setting keys threshold dialog for 200 millisecond. [CHAR LIMIT=35] -->
+    <string name="input_setting_keys_dialog_option_200">0.2s</string>
+    <!-- Option title for the input setting keys threshold dialog for 400 millisecond. [CHAR LIMIT=35] -->
+    <string name="input_setting_keys_dialog_option_400">0.4s</string>
+    <!-- Option title for the input setting keys threshold dialog for 600 millisecond. [CHAR LIMIT=35] -->
+    <string name="input_setting_keys_dialog_option_600">0.6s</string>
+    <!-- Option title for the input setting keys threshold dialog for custom value. [CHAR LIMIT=35] -->
+    <string name="input_setting_keys_custom_title">Custom</string>
+    <!-- Option subtitle for the input setting keys threshold dialog for custom value. [CHAR LIMIT=35] -->
+    <string name="input_setting_keys_custom_value">custom value</string>
+
     <!-- Title for the 'Slow keys' preference switch. [CHAR LIMIT=35] -->
     <string name="slow_keys">Slow keys</string>
     <!-- Summary text for the 'Slow keys' preference sub-screen. [CHAR LIMIT=300] -->
@@ -4541,6 +4546,8 @@
     <string name="sticky_keys_summary">Press one key at a time for shortcuts instead of holding keys down together</string>
     <!-- Title for a toggle switch for 'mouse' keys,  an accessibility setting that allows the mouse pointer to be controlled using certain keys on a physical keyboard if keyboard is connected. [CHAR LIMIT=35] -->
     <string name="mouse_keys">Mouse keys</string>
+    <!-- Title for a toggle switch for 'mouse' keys under mouse key main page,  an accessibility setting that allows the mouse pointer to be controlled using certain keys on a physical keyboard if keyboard is connected. [CHAR LIMIT=35] -->
+    <string name="mouse_keys_main_title">Use mouse keys</string>
     <!-- Summary text for the accessibility setting 'Mouse keys' preference sub-screen. [CHAR LIMIT=100] -->
     <string name="mouse_keys_summary">Use your keyboard to control the pointer</string>
     <!-- Title for the 'Mouse reverse scrolling' preference switch, which reverses the direction of mouse scroll wheels so that moving the wheel up scrolls the content down. [CHAR LIMIT=60] -->
@@ -4551,6 +4558,21 @@
     <string name="mouse_swap_primary_button">Swap left and right buttons</string>
     <!-- Summary text for the 'Swap buttons' preference switch indicating to users that when this switch is enabled, their left click will behave as though it is the right click (secondary action) and that the right click will be the primary action. [CHAR LIMIT=NONE] -->
     <string name="mouse_swap_primary_button_summary">Use the left mouse button as your right</string>
+    <!-- page title for Mouse key main page. [CHAR LIMIT=NONE] -->
+    <string name="mouse_key_main_page_title">Mouse keys for <xliff:g id="keyboard name" example="my keyboard">%s</xliff:g></string>
+    <!-- Summary text for Mouse keys directional image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_directional_summary">Use the \“<xliff:g id="directional_label" example="7,8,9,u,o,j,k,l">%s</xliff:g>\” keys to move the mouse pointer</string>
+    <!-- Summary text for Mouse keys click image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_click_summary">Use the \“<xliff:g id="click_label" example="i">%s</xliff:g>\” key to click the primary mouse button</string>
+    <!-- Summary text for Mouse keys press hold image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_press_hold_summary">Use the \“<xliff:g id="press_hold_label" example="m">%s</xliff:g>\” key to press &amp; hold the primary mouse button</string>
+    <!-- Summary text for Mouse keys release image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_release_summary">Use the \“<xliff:g id="release_label" example=",">%s</xliff:g>\” key to release the primary mouse button</string>
+    <!-- Summary text for Mouse keys toggle scroll image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_toggle_scroll_summary">Use the \“<xliff:g id="release_label_1" example=".">%1$s</xliff:g>\” key to toggle scroll mode. This will make the \“<xliff:g id="release_label_2" example="8, k, o, u">%2$s</xliff:g>\” keys scroll the view top, down, left or right</string>
+    <!-- Summary text for Mouse keys click secondary button image. [CHAR LIMIT=NONE] -->
+    <string name="mouse_keys_release2_summary">Use the \“<xliff:g id="release_2_label" example="/">%s</xliff:g>\” key to click the secondary mouse button</string>
+
     <!-- Title for the button to trigger the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=35] -->
     <string name="keyboard_shortcuts_helper">Keyboard shortcuts</string>
     <!-- Summary text for the 'keyboard shortcuts helper' dialog. [CHAR LIMIT=100] -->
@@ -4705,9 +4727,13 @@
     <!-- Summary for the button to trigger the 'Physical keyboard accessibility' page. [CHAR LIMIT=NONE] -->
     <string name="keyboard_a11y_settings_summary">Sticky keys, Bounce keys, Mouse keys</string>
     <!-- Title for the keyboard repeat key option. [CHAR LIMIT=60] -->
-    <string name="keyboard_repeat_key_title">Repeat Keys</string>
+    <string name="keyboard_repeat_keys_title">Repeat Keys</string>
+    <!-- Title for the keyboard repeat key timeout option. [CHAR LIMIT=60] -->
+    <string name="keyboard_repeat_keys_timeout_title">Delay before repeat</string>
+    <!-- Title for the keyboard repeat key delay option. [CHAR LIMIT=60] -->
+    <string name="keyboard_repeat_keys_delay_title">Repeat Rate</string>
     <!-- Summary for the keyboard repeat key option. [CHAR LIMIT=NONE] -->
-    <string name="keyboard_repeat_key_summary">Hold down a key to repeat its character until the key is released</string>
+    <string name="keyboard_repeat_keys_summary">Hold down a key to repeat its character until the key is released</string>
 
     <!-- Title text for per IME subtype keyboard layout. [CHAR LIMIT=35] -->
     <string name="ime_label_title"><xliff:g id="ime_label" example="Gboard">%s</xliff:g> layout</string>
@@ -5130,18 +5156,18 @@
     <string name="accessibility_tutorial_dialog_twofinger_doubletap_instruction">To start and stop magnification, quickly tap the screen twice with %1$d fingers</string>
     <!-- Instruction for the accessibility tutorial dialog in accessibility service with quick settings shortcut. [CHAR LIMIT=NONE]-->
     <string name="accessibility_tutorial_dialog_message_quick_setting">{count, plural,
-      =1    {To use this feature, swipe down from the top of your screen. Then, find the {featureName} tile.}
-      other {To use this feature, swipe down from the top of your screen with # fingers. Then, find the {featureName} tile.}
-    }</string>
+        =1    {To use this feature, swipe down from the top of your screen. Then, find the {featureName} tile.}
+        other {To use this feature, swipe down from the top of your screen with # fingers. Then, find the {featureName} tile.}
+        }</string>
     <!-- Warning for the accessibility shortcut type that is not available immediately during device setup when chosen, but will be available after setup. [CHAR LIMIT=NONE]-->
     <string name="accessibility_tutorial_dialog_shortcut_unavailable_in_suw">This shortcut will be available after you finish device setup.</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is not enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_message_gesture">To use this feature, swipe up from the bottom of the screen with 2 fingers.\n\nTo switch between features, swipe up with 2 fingers and hold.</string>
     <!-- Instruction for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_gesture_shortcut_instruction">{count, plural,
-      =1    {To use this feature, swipe up from the bottom of your screen}
-      other {To use this feature, swipe up with # fingers from the bottom of your screen}
-    }</string>
+        =1    {To use this feature, swipe up from the bottom of your screen}
+        other {To use this feature, swipe up with # fingers from the bottom of your screen}
+        }</string>
     <!-- Message for the accessibility tutorial dialog when user enables an accessibility service while using gesture navigation and touch exploration is enabled. [CHAR LIMIT=NONE] -->
     <string name="accessibility_tutorial_dialog_message_gesture_talkback">To use this feature, swipe up from the bottom of the screen with 3 fingers.\n\nTo switch between features, swipe up with 3 fingers and hold.</string>
     <!-- Message for the accessibility tutorial dialog when user chooses gesture navigation in navigation settings, an accessibility service is using the accessibility button, and touch exploration is disabled. [CHAR LIMIT=NONE] -->
@@ -5174,9 +5200,9 @@
     <string name="accessibility_shortcut_edit_dialog_summary_software">Tap the accessibility button <xliff:g id="accessibility_icon" example="[Icon]">%s</xliff:g> at the bottom of your screen. To switch between features, touch &amp; hold the accessibility button.</string>
     <!-- Summary for gesture shortcut option -->
     <string name="accessibility_shortcut_edit_dialog_summary_gesture">{count, plural,
-      =1      {Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}
-      other   {Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}
-    }</string>
+        =1      {Swipe up from the bottom of your screen. To switch between features, swipe up and hold.}
+        other   {Swipe up with # fingers from the bottom of your screen. To switch between features, swipe up with # fingers and hold.}
+        }</string>
     <!-- Summary for software shortcut in accessibility edit shortcut dialog when user had enabled the accessibility floating button mode (Floating over other apps). [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_software_floating"><annotation id="link">More options</annotation></string>
     <!-- Footer to show help link content description. [CHAR LIMIT=NONE] -->
@@ -5185,14 +5211,14 @@
     <string name="accessibility_shortcut_edit_dialog_title_quick_settings">Quick Settings</string>
     <!-- Summary for quick settings shortcut option in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_quick_settings">{count, plural,
-      =1      {Swipe down from the top of your screen}
-      other   {Swipe down with # fingers from the top of your screen}
-    }</string>
+        =1      {Swipe down from the top of your screen}
+        other   {Swipe down with # fingers from the top of your screen}
+        }</string>
     <!-- Summary for quick settings shortcut option in accessibility edit shortcut dialog in Setup Wizard. [CHAR LIMIT=NONE] -->
     <string name="accessibility_shortcut_edit_dialog_summary_quick_settings_suw">{count, plural,
-      =1      {Swipe down from the top of your screen. This shortcut will be available after you finish device setup.}
-      other   {Swipe down with # fingers from the top of your screen. This shortcut will be available after you finish device setup.}
-    }</string>
+        =1      {Swipe down from the top of your screen. This shortcut will be available after you finish device setup.}
+        other   {Swipe down with # fingers from the top of your screen. This shortcut will be available after you finish device setup.}
+        }</string>
     <!-- Shown as one of the item in the chosen accessibility shortcut types list presented as a label next to the shortcut toggle. [CHAR LIMIT=NONE] -->
     <string name="accessibility_feature_shortcut_setting_summary_quick_settings">Quick Settings</string>
     <!-- Title for hardware shortcut in accessibility edit shortcut dialog. [CHAR LIMIT=NONE] -->
@@ -5612,25 +5638,25 @@
 
     <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
     <string name="accessibilty_autoclick_preference_subtitle_short_delay">{count, plural,
-      =1      {Short ({time} second)}
-      other   {Short ({time} seconds)}
-    }</string>
+        =1      {Short ({time} second)}
+        other   {Short ({time} seconds)}
+        }</string>
     <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
     <string name="accessibilty_autoclick_preference_subtitle_medium_delay">{count, plural,
-      =1      {Medium ({time} second)}
-      other   {Medium ({time} seconds)}
-    }</string>
+        =1      {Medium ({time} second)}
+        other   {Medium ({time} seconds)}
+        }</string>
     <!-- Subtitle for the accessibility preference to configure feature that performs click action soon after mouse/trackpad pointer stops moving, in case delay before click is extremely short. Placeholder will be set to the number of milliseconds to which the delay amounts. [CHAR LIMIT=NONE] -->
     <string name="accessibilty_autoclick_preference_subtitle_long_delay">{count, plural,
-      =1      {Long ({time} second)}
-      other   {Long ({time} seconds)}
-    }</string>
+        =1      {Long ({time} second)}
+        other   {Long ({time} seconds)}
+        }</string>
 
     <!-- Summary for autoclick seekbar settings preference when user selected custom item. [CHAR LIMIT=35] -->
     <string name="accessibilty_autoclick_delay_unit_second">{count, plural,
-      =1      {{time} second}
-      other   {{time} seconds}
-    }</string>
+        =1      {{time} second}
+        other   {{time} seconds}
+        }</string>
 
     <!-- Title for accessibility menu item to launch a settings activity. [CHAR LIMIT=15] -->
     <string name="accessibility_menu_item_settings">Settings</string>
@@ -5792,15 +5818,15 @@
     <string name="print_settings_summary_no_service">Off</string>
 
     <string name="print_settings_summary">{count, plural,
-      =1      {1 print service on}
-      other   {# print services on}
-    }</string>
+        =1      {1 print service on}
+        other   {# print services on}
+        }</string>
 
     <!-- Print setting summary in settings screenm indicating how many print jobs are active [CHAR LIMIT=None] -->
     <string name="print_jobs_summary">{count, plural,
-      =1      {1 print job}
-      other   {# print jobs}
-    }</string>
+        =1      {1 print job}
+        other   {# print jobs}
+        }</string>
 
     <!-- Title for print service settings screen [CHAR LIMIT=25] -->
     <string name="print_settings_title">Print services</string>
@@ -5885,7 +5911,7 @@
     <string name="power_usage_summary">What has been using the battery</string>
     <!-- Display the battery level and status [CHAR_LIMIT=60] -->
     <string name="power_usage_level_and_status"><xliff:g id="level">%1$s</xliff:g>
-            - <xliff:g id="status">%2$s</xliff:g></string>
+        - <xliff:g id="status">%2$s</xliff:g></string>
     <!-- Display time remaining until battery is discharged [CHAR_LIMIT=60] -->
     <string name="power_discharge_remaining"><xliff:g id="remain">%1$s</xliff:g> remaining</string>
     <!-- Display time remaining until battery is charged [CHAR_LIMIT=60] -->
@@ -6003,30 +6029,30 @@
     <string name="battery_tip_dialog_message_footer">Includes high-power background activity</string>
     <!-- Title for restricted app preference, showing how many app need to be restricted [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_title">{count, plural,
-      =1      {Restrict # app}
-      other   {Restrict # apps}
-    }</string>
+        =1      {Restrict # app}
+        other   {Restrict # apps}
+        }</string>
     <!-- Title for restricted app preference, showing how many app been restricted [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_handled_title">{count, plural,
-      =1      {{label} recently restricted}
-      other   {# apps recently restricted}
-    }</string>
+        =1      {{label} recently restricted}
+        other   {# apps recently restricted}
+        }</string>
     <!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_summary">{count, plural,
-      =1      {{label} has high background battery usage}
-      other   {# apps have high background battery usage}
-    }</string>
+        =1      {{label} has high background battery usage}
+        other   {# apps have high background battery usage}
+        }</string>
     <!-- Summary for restricted app preference, showing the impact of the apps [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_handled_summary">{count, plural,
-      =1      {This app can\'t run in the background}
-      other   {These apps can\'t run in the background}
-    }</string>
+        =1      {This app can\'t run in the background}
+        other   {These apps can\'t run in the background}
+        }</string>
 
     <!-- Title for dialog to restrict the app [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_app_dialog_title">{count, plural,
-      =1      {Restrict app?}
-      other   {Restrict # apps?}
-    }</string>
+        =1      {Restrict app?}
+        other   {Restrict # apps?}
+        }</string>
     <!-- Message for battery tip dialog to show the info to restrict the app [CHAR LIMIT=NONE] -->
     <string name="battery_tip_restrict_app_dialog_message">To save battery, stop <xliff:g id="app">%1$s</xliff:g> from using battery in the background. This app may not work properly and notifications may be delayed.</string>
     <!-- Message for battery tip dialog to show the info to restrict the app, below it app list will be shown as a view [CHAR LIMIT=NONE] -->
@@ -6060,9 +6086,9 @@
     <string name="restricted_app_title">Restricted apps</string>
     <!-- Summary for restricted app preference, clicking it will goes to restricted app list [CHAR LIMIT=NONE] -->
     <string name="restricted_app_summary">{count, plural,
-      =1      {Limiting battery usage for # app}
-      other   {Limiting battery usage for # apps}
-    }</string>
+        =1      {Limiting battery usage for # app}
+        other   {Limiting battery usage for # apps}
+        }</string>
 
     <!-- Summary for restricted app to show the restriction time [CHAR LIMIT=NONE] -->
     <string name="restricted_app_time_summary">Restricted <xliff:g id="time" example="5 days ago">%1$s</xliff:g></string>
@@ -6082,9 +6108,9 @@
 
     <!-- Summary for battery manager, showing app restricted -->
     <string name="battery_manager_app_restricted">{count, plural,
-      =1      {# app restricted}
-      other   {# apps restricted}
-    }</string>
+        =1      {# app restricted}
+        other   {# apps restricted}
+        }</string>
 
     <!-- Summary for top level battery tile if battery is not present. [CHAR LIMIT=NONE] -->
     <string name="battery_missing_message">Problem reading the battery meter.</string>
@@ -6572,9 +6598,9 @@
     <string name="remove_credential_management_app_dialog_message">This app won\u2019t manage certificates, but it will stay on your device. Any certificates installed by the app will be uninstalled.</string>
     <!-- List item found in the credential management app's authentication policy [CHAR LIMIT=NONE] -->
     <string name="number_of_urls">{count, plural,
-      =1      {# URL}
-      other   {# URLs}
-    }</string>
+        =1      {# URL}
+        other   {# URLs}
+        }</string>
 
     <!-- Sound settings screen, setting check box label -->
     <string name="emergency_tone_title">Emergency dialing signal</string>
@@ -6676,9 +6702,9 @@
 
     <!-- app summary of notification app list screen [CHAR LIMIT=100] -->
     <string name="notification_history_count">{count, plural,
-      =1      {# notification}
-      other   {# notifications}
-    }</string>
+        =1      {# notification}
+        other   {# notifications}
+        }</string>
 
     <!-- Category title for phone call's ringtone and vibration settings in the Sound Setting.
          [CHAR LIMIT=40] -->
@@ -7099,9 +7125,9 @@
     <string name="done_button">Done</string>
     <!-- Title of Dialog warning users of SSL monitoring. [CHAR LIMIT=NONE] -->
     <string name="ssl_ca_cert_dialog_title">{count, plural,
-      =1      {Trust or remove certificate}
-      other   {Trust or remove certificates}
-    }</string>
+        =1      {Trust or remove certificate}
+        other   {Trust or remove certificates}
+        }</string>
     <!-- Text of message to show to device owner user whose administrator has installed a SSL CA Cert.  [CHAR LIMIT=NONE] -->
     <string name="ssl_ca_cert_info_message_device_owner"> {numberOfCertificates, plural,
         =1 {{orgName} has installed a certificate authority on your device, which may allow them to monitor your device network activity, including emails, apps, and secure websites.\n\nFor more information about this certificate, contact your admin.}
@@ -7116,9 +7142,9 @@
     <string name="ssl_ca_cert_warning_message">A third party is capable of monitoring your network activity, including emails, apps, and secure websites.\n\nA trusted credential installed on your device is making this possible.</string>
     <!-- Label on button that will take the user to the Trusted Credentials settings page.  [CHAR LIMIT=NONE]-->
     <string name="ssl_ca_cert_settings_button">{count, plural,
-      =1      {Check certificate}
-      other   {Check certificates}
-    }</string>
+        =1      {Check certificate}
+        other   {Check certificates}
+        }</string>
 
     <!-- User settings screen title [CHAR LIMIT=40] -->
     <string name="user_settings_title">Users</string>
@@ -8076,9 +8102,9 @@
     <!-- Zen Modes: Summary for the Do not Disturb option that describes how many automatic rules (schedules) are enabled [CHAR LIMIT=NONE]-->
     <string name="zen_mode_settings_schedules_summary">
         {count, plural,
-            =0    {None}
-            =1    {1 schedule set}
-            other {# schedules set}
+        =0    {None}
+        =1    {1 schedule set}
+        other {# schedules set}
         }
     </string>
 
@@ -8114,20 +8140,20 @@
     <!-- Modes: Summary for the modes segment, when at least one mode is active. [CHAR LIMIT=NONE]-->
     <string name="zen_modes_summary_some_active">
         {count, plural, offset:2
-            =0    {}
-            =1    {{mode_1} is active}
-            =2    {{mode_1} and {mode_2} are active}
-            =3    {{mode_1}, {mode_2}, and {mode_3} are active}
-            other {{mode_1}, {mode_2}, and # more are active}
+        =0    {}
+        =1    {{mode_1} is active}
+        =2    {{mode_1} and {mode_2} are active}
+        =3    {{mode_1}, {mode_2}, and {mode_3} are active}
+        other {{mode_1}, {mode_2}, and # more are active}
         }
     </string>
 
     <!-- Modes: Summary for the modes segment, when no modes are active. [CHAR LIMIT=NONE]-->
     <string name="zen_modes_summary_none_active">
         {count, plural,
-            =0    {}
-            =1    {1 mode can turn on automatically}
-            other {# modes can turn on automatically}
+        =0    {}
+        =1    {1 mode can turn on automatically}
+        other {# modes can turn on automatically}
         }
     </string>
 
@@ -8428,25 +8454,25 @@
     <!--  Do not disturb: Summary for zen mode duration setting indicating how long dnd will last when dnd is manually toggled on [CHAR LIMIT=NONE] -->
     <string name="zen_mode_duration_summary_time_hours">
         {count, plural,
-            =1    {1 hour}
-            other {# hours}
+        =1    {1 hour}
+        other {# hours}
         }
     </string>
 
     <!--  Do not disturb: Summary for zen mode duration setting indicating how long dnd will last when toggled on -->
     <string name="zen_mode_duration_summary_time_minutes">
         {count, plural,
-            =1    {1 minute}
-            other {# minutes}
+        =1    {1 minute}
+        other {# minutes}
         }
     </string>
 
     <!-- Summary for the Sound Do not Disturb option when DND isn't currently on. [CHAR LIMIT=NONE]-->
     <string name="zen_mode_sound_summary_off">
         {count, plural,
-            =0    {Off}
-            =1    {Off / 1 schedule can turn on automatically}
-            other {Off / # schedules can turn on automatically}
+        =0    {Off}
+        =1    {Off / 1 schedule can turn on automatically}
+        other {Off / # schedules can turn on automatically}
         }
     </string>
 
@@ -8789,9 +8815,9 @@
 
     <!-- [CHAR LIMIT=100] summary text on link to 'all conversations' page, some conversations are priority -->
     <string name="priority_conversation_count">{count, plural,
-      =1      {# priority conversation}
-      other   {# priority conversations}
-    }</string>
+        =1      {# priority conversation}
+        other   {# priority conversations}
+        }</string>
 
     <!-- [CHAR LIMIT=100] preference category title -->
     <string name="important_conversations">Priority conversations</string>
@@ -8888,13 +8914,13 @@
 
     <!-- app summary of notification app list screen [CHAR LIMIT=100] -->
     <string name="notifications_sent_daily">{count, plural,
-      =1      {About # notification per day}
-      other   {About # notifications per day}
-    }</string>
+        =1      {About # notification per day}
+        other   {About # notifications per day}
+        }</string>
     <string name="notifications_sent_weekly">{count, plural,
-      =1      {About # notification per week}
-      other   {About # notifications per week}
-    }</string>
+        =1      {About # notification per week}
+        other   {About # notifications per week}
+        }</string>
     <!-- app summary of notification app list screen [CHAR LIMIT=100] -->
     <string name="notifications_sent_never">Never</string>
 
@@ -8934,7 +8960,7 @@
     <!-- Title for a warning message about security implications of enabling a notification
           listener, displayed as a dialog message. [CHAR LIMIT=NONE] -->
     <string name="notification_listener_security_warning_title">Allow notification access for
-         <xliff:g id="service" example="NotificationReader">%1$s</xliff:g>?</string>
+        <xliff:g id="service" example="NotificationReader">%1$s</xliff:g>?</string>
     <!-- Summary for a warning message about security implications of enabling a notification
           listener, displayed as a dialog message. [CHAR LIMIT=NONE] -->
     <string name="notification_listener_security_warning_summary">
@@ -8998,7 +9024,7 @@
     <!-- Title for a warning message about security implications of enabling a VR
           listener, displayed as a dialog message. [CHAR LIMIT=NONE] -->
     <string name="vr_listener_security_warning_title">Allow VR service access for
-         <xliff:g id="service" example="VrCore">%1$s</xliff:g>?</string>
+        <xliff:g id="service" example="VrCore">%1$s</xliff:g>?</string>
     <!-- Summary for a warning message about security implications of enabling a VR
           listener, displayed as a dialog message. [CHAR LIMIT=NONE] -->
     <string name="vr_listener_security_warning_summary">
@@ -9105,9 +9131,9 @@
 
     <!-- Summary of preference to manage connected work and personal apps, informing the user how many apps are connected -->
     <string name="interact_across_profiles_number_of_connected_apps">{count, plural,
-      =1      {# app connected}
-      other   {# apps connected}
-    }</string>
+        =1      {# app connected}
+        other   {# apps connected}
+        }</string>
 
     <!-- Banner title. This banner lets a user know that they need to install an app in their
     work profile in order to connect it to the corresponding personal app.
@@ -9179,9 +9205,9 @@
 
     <!-- [CHAR LIMIT=NONE] Footer listing a count of deleted channels. -->
     <string name="deleted_channels">{count, plural,
-      =1      {# category deleted}
-      other   {# categories deleted}
-    }</string>
+        =1      {# category deleted}
+        other   {# categories deleted}
+        }</string>
 
     <!-- [CHAR LIMIT=NONE] App notification settings: Block option title -->
     <string name="app_notification_block_title">Block all</string>
@@ -9342,9 +9368,9 @@
     <!-- [CHAR LIMIT=NONE] Zen mode settings: Number of conversations allowed to bypass DND -->
     <string name="zen_mode_conversations_count">
         {count, plural,
-            =0    {None}
-            =1    {1 conversation}
-            other {# conversations}
+        =0    {None}
+        =1    {1 conversation}
+        other {# conversations}
         }
     </string>
 
@@ -9376,11 +9402,11 @@
     <!-- Zen mode settings: Starred contacts summary [CHAR LIMIT=NONE] -->
     <string name="zen_mode_starred_contacts_summary_contacts">
         {count, plural, offset:2
-            =0    {None}
-            =1    {{contact_1}}
-            =2    {{contact_1} and {contact_2}}
-            =3    {{contact_1}, {contact_2}, and {contact_3}}
-            other {{contact_1}, {contact_2}, and # others}
+        =0    {None}
+        =1    {{contact_1}}
+        =2    {{contact_1} and {contact_2}}
+        =3    {{contact_1}, {contact_2}, and {contact_3}}
+        other {{contact_1}, {contact_2}, and # others}
         }
     </string>
 
@@ -9407,9 +9433,9 @@
     <!-- Zen mode settings: Senders in contacts can bypass DND summary summary [CHAR LIMIT=NONE] -->
     <string name="zen_mode_contacts_count">
         {count, plural,
-            =0    {None}
-            =1    {1 contact}
-            other {# contacts}
+        =0    {None}
+        =1    {1 contact}
+        other {# contacts}
         }
     </string>
     <!-- [CHAR LIMIT=40] Zen mode settings: Calls or messages option value: From anyone -->
@@ -9485,11 +9511,11 @@
     <!-- [CHAR LIMIT=NONE] Zen mode settings: Lists apps that can bypass DND. For example, "Nest, Messages, and 2 more can interrupt". -->
     <string name="zen_mode_apps_subtext">
         {count, plural, offset:2
-            =0    {No apps can interrupt}
-            =1    {{app_1} can interrupt}
-            =2    {{app_1} and {app_2} can interrupt}
-            =3    {{app_1}, {app_2}, and {app_3} can interrupt}
-            other {{app_1}, {app_2}, and # more can interrupt}
+        =0    {No apps can interrupt}
+        =1    {{app_1} can interrupt}
+        =2    {{app_1} and {app_2} can interrupt}
+        =3    {{app_1}, {app_2}, and {app_3} can interrupt}
+        other {{app_1}, {app_2}, and # more can interrupt}
         }
     </string>
     <!-- Modes: Entry in the "apps that can bypass DND" list that corresponds to a work profile app (e.g. "Chrome (Work)" [CHAR LIMIT=15]. -->
@@ -9524,11 +9550,11 @@
     <!-- [CHAR LIMIT=NONE] Zen mode settings: Lists apps that can bypass DND. For example, "Nest, Messages, and 2 more can interrupt". -->
     <string name="zen_mode_bypassing_apps_subtext">
         {count, plural, offset:2
-            =0    {No apps can interrupt}
-            =1    {{app_1} can interrupt}
-            =2    {{app_1} and {app_2} can interrupt}
-            =3    {{app_1}, {app_2}, and {app_3} can interrupt}
-            other {{app_1}, {app_2}, and # more can interrupt}
+        =0    {No apps can interrupt}
+        =1    {{app_1} can interrupt}
+        =2    {{app_1} and {app_2} can interrupt}
+        =3    {{app_1}, {app_2}, and {app_3} can interrupt}
+        other {{app_1}, {app_2}, and # more can interrupt}
         }
     </string>
     <!-- [CHAR LIMIT=100] Zen mode settings: Allow apps to bypass DND title-->
@@ -9542,11 +9568,11 @@
     <!-- [CHAR LIMIT=NONE] Zen mode settings: Summary for sound interruption settings -->
     <string name="zen_mode_other_sounds_summary">
         {count, plural, offset:2
-            =0    {Nothing can interrupt}
-            =1    {{sound_category_1} can interrupt}
-            =2    {{sound_category_1} and {sound_category_2} can interrupt}
-            =3    {{sound_category_1}, {sound_category_2}, and {sound_category_3} can interrupt}
-            other {{sound_category_1}, {sound_category_2}, and # more can interrupt}
+        =0    {Nothing can interrupt}
+        =1    {{sound_category_1} can interrupt}
+        =2    {{sound_category_1} and {sound_category_2} can interrupt}
+        =3    {{sound_category_1}, {sound_category_2}, and {sound_category_3} can interrupt}
+        other {{sound_category_1}, {sound_category_2}, and # more can interrupt}
         }
     </string>
     <!-- [CHAR LIMIT=120] Zen mode settings: No sounds are allowed to bypass DND -->
@@ -9590,14 +9616,14 @@
     <string name="zen_mode_summary_alarms_only_indefinite">Change to alarms only indefinitely</string>
     <!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: switch to alarms only for < 60 minutes. -->
     <string name="zen_mode_summary_alarms_only_by_minute">{count, plural,
-      =1      {Change to alarms only for one minute until {time}}
-      other   {Change to alarms only for # minutes (until {time})}
-    }</string>
+        =1      {Change to alarms only for one minute until {time}}
+        other   {Change to alarms only for # minutes (until {time})}
+        }</string>
     <!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: switch to alarms only for N hours. -->
     <string name="zen_mode_summary_alarms_only_by_hour">{count, plural,
-      =1      {Change to alarms only for one hour until {time}}
-      other   {Change to alarms only for # hours until {time}}
-    }</string>
+        =1      {Change to alarms only for one hour until {time}}
+        other   {Change to alarms only for # hours until {time}}
+        }</string>
     <!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: switch to alarms only until a specific time. -->
     <string name="zen_mode_summary_alarms_only_by_time">Change to alarms only until <xliff:g id="formattedTime" example="10:00 PM">%1$s</xliff:g></string>
     <!-- [CHAR LIMIT=NONE] Zen mode summary spoken when changing mode by voice: Turn on all notifications. -->
@@ -9819,13 +9845,13 @@
 
     <!-- Title, message and button for verified links dialog. -->
     <string name="app_launch_verified_links_title">{count, plural,
-      =1      {# verified link}
-      other   {# verified links}
-    }</string>
+        =1      {# verified link}
+        other   {# verified links}
+        }</string>
     <string name="app_launch_verified_links_message">{count, plural,
-      =1      {This link is verified and automatically opens in this app.}
-      other   {These links are verified and automatically open in this app.}
-    }</string>
+        =1      {This link is verified and automatically opens in this app.}
+        other   {These links are verified and automatically open in this app.}
+        }</string>
     <!-- OK button for verified links dialog. [CHAR LIMIT=20] -->
     <string name="app_launch_dialog_ok">OK</string>
     <!-- Info icon description of the verified links. [CHAR LIMIT=NONE] -->
@@ -9838,9 +9864,9 @@
 
     <!-- Title and button for supported links dialog. -->
     <string name="app_launch_supported_links_title">{count, plural,
-      =1      {# supported link}
-      other   {# supported links}
-    }</string>
+        =1      {# supported link}
+        other   {# supported links}
+        }</string>
     <!-- Add button for supported links dialog. [CHAR LIMIT=20] -->
     <string name="app_launch_supported_links_add">Add</string>
     <!-- The subtext of the link title in supported links dialog. [CHAR LIMIT=30] -->
@@ -9876,15 +9902,15 @@
 
     <!-- Permissions preference summary [CHAR LIMIT=40] -->
     <string name="notifications_categories_off">{count, plural,
-      =1      {# category turned off}
-      other   {# categories turned off}
-    }</string>
+        =1      {# category turned off}
+        other   {# categories turned off}
+        }</string>
 
     <!-- Runtime permissions preference summary.  Number of additional permissions granted. [CHAR LIMIT=40] -->
     <string name="runtime_permissions_additional_count">{count, plural,
-      =1      {# additional permission}
-      other   {# additional permissions}
-    }</string>
+        =1      {# additional permission}
+        other   {# additional permissions}
+        }</string>
 
     <!-- Runtime permissions preference summary, shown when the app has no permissions granted. [CHAR LIMIT=40] -->
     <string name="runtime_permissions_summary_no_permissions_granted">No permissions granted</string>
@@ -9906,9 +9932,9 @@
 
     <!-- Summary of number of apps that have not been used for months. [CHAR LIMIT=40]-->
     <string name="unused_apps_summary">{count, plural,
-      =1      {# unused app}
-      other   {# unused apps}
-    }</string>
+        =1      {# unused app}
+        other   {# unused apps}
+        }</string>
 
     <!-- Label for category for unused app settings for an app. [CHAR LIMIT=40]-->
     <string name="unused_apps_category">Unused app settings</string>
@@ -9976,9 +10002,9 @@
 
     <!-- Summary for allow app to open supported links [CHAR LIMIT=42] -->
     <string name="app_link_open_always_summary">{count, plural,
-      =1      {App claims to handle # link}
-      other   {App claims to handle # links}
-    }</string>
+        =1      {App claims to handle # link}
+        other   {App claims to handle # links}
+        }</string>
 
     <!-- Footer of open supported links settings [CHAR LIMIT=NONE] -->
     <string name="open_supported_links_footer">App claims to handle following links:</string>
@@ -10248,9 +10274,9 @@
 
     <!-- Description of number of apps using memory [CHAR LIMIT=NONE] -->
     <string name="memory_usage_apps_summary">{count, plural,
-      =1      {1 app used memory in the last {time}}
-      other   {# apps used memory in the last {time}}
-    }</string>
+        =1      {1 app used memory in the last {time}}
+        other   {# apps used memory in the last {time}}
+        }</string>
 
     <!-- Label for toggle that enables the profiling/aggregating of memory usage [CHAR LIMIT=80]-->
     <string name="force_enable_pss_profiling_title">Enable memory usage profiling</string>
@@ -10676,9 +10702,9 @@
 
     <!-- Description of number of apps allowed to ignore Data Saver [CHAR LIMIT=NONE] -->
     <string name="data_saver_unrestricted_summary">{count, plural,
-      =1      {1 app allowed to use unrestricted mobile data when Data Saver is on}
-      other   {# apps allowed to use unrestricted mobile data when Data Saver is on}
-    }</string>
+        =1      {1 app allowed to use unrestricted mobile data when Data Saver is on}
+        other   {# apps allowed to use unrestricted mobile data when Data Saver is on}
+        }</string>
 
     <!-- Data usage title text [CHAR LIMIT=30] -->
     <string name="data_usage_title">Primary data</string>
@@ -10703,9 +10729,9 @@
 
     <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
     <string name="billing_cycle_days_left">{count, plural,
-      =1      {# day left}
-      other   {# days left}
-    }</string>
+        =1      {# day left}
+        other   {# days left}
+        }</string>
 
     <!-- Informational text about time left in billing cycle [CHAR LIMIT=60] -->
     <string name="billing_cycle_none_left">No time remaining</string>
@@ -11282,9 +11308,9 @@
     <string name="enterprise_privacy_apps_count_estimation_info">Number of apps is estimated. It may not include apps installed outside of the Play Store.</string>
     <!-- Summary indicating the number of apps that a label (e.g. installed apps or apps granted a particular permission) refers to. The number shown is a minimum as there may be additional apps we do not know about. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_number_packages_lower_bound">{count, plural,
-      =1      {Minimum # app}
-      other   {Minimum # apps}
-    }</string>
+        =1      {Minimum # app}
+        other   {Minimum # apps}
+        }</string>
     <!-- Label indicating that the admin granted one or more apps access to the device's location. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_location_access">Location permissions</string>
     <!-- Label indicating that the admin granted one or more apps access to the microphone. [CHAR LIMIT=NONE] -->
@@ -11295,9 +11321,9 @@
     <string name="enterprise_privacy_enterprise_set_default_apps">Default apps</string>
     <!-- Summary indicating the number of apps that a label (e.g. installed apps or apps granted a particular permission) refers to. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_number_packages">{count, plural,
-      =1      {# app}
-      other   {# apps}
-    }</string>
+        =1      {# app}
+        other   {# apps}
+        }</string>
     <!-- Label explaining that the current input method was set by the admin. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_input_method">Default keyboard</string>
     <!-- Summary indicating the input method set by the admin. [CHAR LIMIT=NONE] -->
@@ -11318,9 +11344,9 @@
     <string name="enterprise_privacy_ca_certs_work">Trusted credentials in your work profile</string>
     <!-- Summary indicating the number of trusted CA certificates installed by the admin. The number shown is a minimum as there may be additional CA certificates we do not know about. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_number_ca_certs">{count, plural,
-      =1      {Minimum # CA certificate}
-      other   {Minimum # CA certificates}
-    }</string>
+        =1      {Minimum # CA certificate}
+        other   {Minimum # CA certificates}
+        }</string>
     <!-- Label explaining that the admin can lock the device and change the user's password. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_lock_device">Admin can lock the device and reset password</string>
     <!-- Label explaining that the admin can wipe the device remotely. [CHAR LIMIT=NONE] -->
@@ -11331,9 +11357,9 @@
     <string name="enterprise_privacy_failed_password_wipe_work">Failed password attempts before deleting work profile data</string>
     <!-- Summary indicating the number of mistyped passwords after which the device or work profile wipes itself. [CHAR LIMIT=NONE] -->
     <string name="enterprise_privacy_number_failed_password_wipe">{count, plural,
-      =1      {# attempt}
-      other   {# attempts}
-    }</string>
+        =1      {# attempt}
+        other   {# attempts}
+        }</string>
     <!-- Message indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=NONE] -->
     <string name="do_disclosure_generic">This device is managed by your organization.</string>
     <!-- Message indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=NONE] -->
@@ -11396,25 +11422,25 @@
     <!-- Strings for displaying which applications were set as default for specific actions. -->
     <!-- Title for the apps that have been set as default handlers of camera-related intents. [CHAR LIMIT=30] -->
     <string name="default_camera_app_title">{count, plural,
-      =1      {Camera app}
-      other   {Camera apps}
-    }</string>
+        =1      {Camera app}
+        other   {Camera apps}
+        }</string>
     <!-- Title for the app that has been set as default handler of calendar-related intents. [CHAR LIMIT=30] -->
     <string name="default_calendar_app_title">Calendar app</string>
     <!-- Title for the app that has been set as default handler of contacts-related intents. [CHAR LIMIT=30] -->
     <string name="default_contacts_app_title">Contacts app</string>
     <!-- Title for the apps that have been set as default handlers of new email intents. [CHAR LIMIT=30] -->
     <string name="default_email_app_title">{count, plural,
-      =1      {Email client app}
-      other   {Email client apps}
-    }</string>
+        =1      {Email client app}
+        other   {Email client apps}
+        }</string>
     <!-- Title for the app that has been set as default handler of geo-related intents. [CHAR LIMIT=30] -->
     <string name="default_map_app_title">Map app</string>
     <!-- Title for the apps that have been set as default handlers of call-related intents. [CHAR LIMIT=30] -->
     <string name="default_phone_app_title">{count, plural,
-      =1      {Phone app}
-      other   {Phone apps}
-    }</string>
+        =1      {Phone app}
+        other   {Phone apps}
+        }</string>
     <!-- Template for concatenating two app names -->
     <string name="app_names_concatenation_template_2"><xliff:g id="first_app_name">%1$s</xliff:g>, <xliff:g id="second_app_name">%2$s</xliff:g></string>
     <!-- Template for concatenating three app names -->
@@ -11509,9 +11535,9 @@
     <!-- Summary for passwords settings that shows how many passwords are saved for each autofill
          service. [CHAR LIMIT=NONE] -->
     <string name="autofill_passwords_count">{count, plural,
-      =1      {# password}
-      other   {# passwords}
-    }</string>
+        =1      {# password}
+        other   {# passwords}
+        }</string>
     <!-- DO NOT TRANSLATE Summary placeholder for when the passwords count is still loading or is
          unavailable. -->
     <string name="autofill_passwords_count_placeholder" translatable="false">\u2014</string>
@@ -12370,10 +12396,10 @@
     <string name="choose_sim_title">Choose a SIM to use</string>
     <!--  The body text of choose SIM activity. [CHAR LIMIT=NONE] -->
     <string name="choose_sim_text">{count, plural,
-      =1      {1 SIM is available on this device, but only one can be used at a time}
-      =2      {2 SIMs are available on this device, but only one can be used at a time}
-      other   {# SIMs are available on this device, but only one can be used at a time}
-    }</string>
+        =1      {1 SIM is available on this device, but only one can be used at a time}
+        =2      {2 SIMs are available on this device, but only one can be used at a time}
+        other   {# SIMs are available on this device, but only one can be used at a time}
+        }</string>
     <!-- String indicating that we are activating the profile [CHAR LIMIT=NONE] -->
     <string name="choose_sim_activating">Turning on<xliff:g id="ellipsis" example="...">&#8230;</xliff:g></string>
     <!-- String indicating that we failed to activate the selected profile [CHAR LIMIT=NONE] -->
@@ -12504,9 +12530,9 @@
 
     <!-- Summary for the accessibility usage preference in the Privacy page.  [CHAR LIMIT=NONE] -->
     <string name="accessibility_usage_summary">{count, plural,
-      =1      {1 app has full access to your device}
-      other   {# apps have full access to your device}
-    }</string>
+        =1      {1 app has full access to your device}
+        other   {# apps have full access to your device}
+        }</string>
 
     <!-- Label for the title on wfc disclaimer fragment. [CHAR LIMIT=40] -->
     <string name="wfc_disclaimer_title_text">Important information</string>
@@ -13259,9 +13285,9 @@
     <!-- Background Install Control UI -->
     <!-- [CHAR LIMIT=NONE] Preference Feature Summary -->
     <string name="background_install_preference_summary">{count, plural,
-    =1    {# app}
-    other {# apps}
-    }</string>
+        =1    {# app}
+        other {# apps}
+        }</string>
 
     <!-- [CHAR LIMIT=NONE] Feature Title -->
     <string name="background_install_title">Apps installed in the background</string>
@@ -13273,14 +13299,14 @@
     <string name="background_install_uninstall_button_description">Uninstall app</string>
     <!-- [CHAR LIMIT=NONE] Before time period group list title -->
     <string name="background_install_before">{count, plural,
-    =1    {Apps installed in the last # month}
-    other {Apps installed in the last # months}
-    }</string>
+        =1    {Apps installed in the last # month}
+        other {Apps installed in the last # months}
+        }</string>
     <!-- [CHAR LIMIT=NONE] After time period group list title -->
     <string name="background_install_after">{count, plural,
-    =1    {Apps installed more than # month ago}
-    other {Apps installed more than # months ago}
-    }</string>
+        =1    {Apps installed more than # month ago}
+        other {Apps installed more than # months ago}
+        }</string>
 
     <!-- App Aspect Ratio (User Aspect Ratio Override) -->
     <!-- [CHAR LIMIT=60] Aspect ratio title setting to choose app aspect ratio -->
@@ -13473,11 +13499,11 @@
     <!--Text for Stylus Pointer Icon preference -->
     <string name="show_stylus_pointer_icon">Show pointer while hovering</string>
 
-     <!-- Developer settings title: Media DRM settings screen. [CHAR LIMIT=50] -->
+    <!-- Developer settings title: Media DRM settings screen. [CHAR LIMIT=50] -->
     <string name="media_drm_settings_title">Media DRM settings</string>
-     <!-- Developer settings title: select whether to enable force Software Secure Crypto fallback. [CHAR LIMIT=50] -->
+    <!-- Developer settings title: select whether to enable force Software Secure Crypto fallback. [CHAR LIMIT=50] -->
     <string name="force_swcrypto_fallback_title">Force Software Secure Crypto</string>
-     <!-- Developer settings summary: select to force Software Secure Crypto.[CHAR LIMIT=NONE] -->
+    <!-- Developer settings summary: select to force Software Secure Crypto.[CHAR LIMIT=NONE] -->
     <string name="force_swcrypto_fallback_summary">Force DRM key management to use software-based whitebox crypto</string>
 
     <!--Text for acquire msg on UDFPS devices -->
@@ -13704,7 +13730,6 @@
     <!-- Learn more link for audio sharing qrcode [CHAR LIMIT=none]-->
     <string name="audio_streams_qr_code_help_with_link"><annotation id="link">Need help?</annotation></string>
 
-
     <!-- url for learning more about bluetooth audio sharing -->
     <string name="help_url_audio_sharing" translatable="false"></string>
 
@@ -13721,8 +13746,19 @@
     <string name="contacts_storage_device_only_preference_summary">New contacts won\'t be synced with an account</string>
     <!-- Text for explaining the selection in Contacts Storage Settings [CHAR LIMIT=NONE] -->
     <string name="contacts_storage_selection_message">Contacts will be saved to your device and synced to your account by default</string>
+    <!-- Text for error toast when there's error setting the default account in Contacts Storage Settings [CHAR LIMIT=NONE] -->
+    <string name="contacts_storage_set_default_account_error_message">Error setting the default account</string>
     <!-- Text for displaying when no account is set as default account [CHAR LIMIT=50] -->
-    <string name="contacts_storage_no_account_set">No default set</string>
+    <string name="contacts_storage_no_account_set_summary">No default set</string>
+    <!-- Text for displaying when default account is set as local only [CHAR LIMIT=50] -->
+    <string name="contacts_storage_local_account_summary">Device only</string>
     <!-- Text for add account selection message when no account has been added [CHAR LIMIT=100] -->
     <string name="contacts_storage_first_time_add_account_message">Add an account to get started</string>
+
+    <!-- Circle to Search (shared between all entrypoints) -->
+    <!-- Name of Google's new feature to circle to search anything on your phone screen,
+         without switching apps. Also used as the setting title. [CHAR LIMIT=60] -->
+    <string name="search_gesture_feature_title">Circle to Search</string>
+    <!-- Summary text for press and hold nav handle OR home button to invoke Circle to Search. [CHAR LIMIT=NONE] -->
+    <string name="search_gesture_feature_summary">Touch and hold the Home button or the navigation handle to search using the content on your screen.</string>
 </resources>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 70d3670..5bcb805 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -455,11 +455,13 @@
     </style>
 
     <style name="SearchBarStyle">
+        <item name="android:theme">@style/Theme.MaterialComponents.DayNight</item>
         <item name="cardCornerRadius">@dimen/search_bar_corner_radius</item>
         <item name="cardElevation">0dp</item>
     </style>
 
     <style name="SearchBarStyle_v2">
+        <item name="android:theme">@style/Theme.MaterialComponents.DayNight</item>
         <item name="cardCornerRadius">40dp</item>
         <item name="cardElevation">0dp</item>
         <item name="strokeWidth">1dp</item>
diff --git a/res/xml/accessibility_system_controls.xml b/res/xml/accessibility_system_controls.xml
index 460214f..a8cb1bb 100644
--- a/res/xml/accessibility_system_controls.xml
+++ b/res/xml/accessibility_system_controls.xml
@@ -20,6 +20,9 @@
     android:persistent="false"
     android:title="@string/accessibility_system_controls_title">
 
+    <!-- The item is not specific to Accessibility.
+        The same entry is under System, which is unlikely to be removed,
+        so this is not searchable. -->
     <Preference
         android:fragment="com.android.settings.gestures.SystemNavigationGestureSettings"
         android:key="gesture_system_navigation_input_summary_accessibility"
@@ -28,6 +31,9 @@
         settings:searchable="false"
         settings:controller="com.android.settings.gestures.SystemNavigationPreferenceController"/>
 
+    <!-- The item is not specific to Accessibility.
+        The same entry is under System > Gesture, which is unlikely to be removed,
+        so this is not searchable. -->
     <Preference
         android:fragment="com.android.settings.gestures.OneHandedSettings"
         android:key="gesture_system_navigation_one_handed_accessibility"
@@ -43,21 +49,28 @@
         settings:controller="com.android.settings.accessibility.PowerButtonEndsCallPreferenceController"/>
 
     <!-- Standard auto-rotation preference that will be shown when device state based auto-rotation
-         settings are NOT available. -->
+         settings are NOT available.
+         The item is not specific to Accessibility.
+         The same entry is under Display & touch, which is unlikely to be removed,
+         so this is not searchable.-->
     <SwitchPreferenceCompat
         android:key="toggle_lock_screen_rotation_preference"
         android:persistent="false"
         android:title="@string/accelerometer_title"
+        settings:searchable="false"
         settings:controller="com.android.settings.accessibility.LockScreenRotationPreferenceController"/>
 
     <!-- Auto-rotation preference that will be shown when device state based auto-rotation settings
-         are available. -->
+         are available.
+         The item is not specific to Accessibility.
+         The same entry is under Display & touch, which is unlikely to be removed,
+         so this is not searchable. -->
     <Preference
         android:key="device_state_auto_rotate_accessibility"
         android:persistent="false"
         android:title="@string/accelerometer_title"
         android:fragment="com.android.settings.display.DeviceStateAutoRotateDetailsFragment"
-        settings:keywords="@string/keywords_auto_rotate"
+        settings:searchable="false"
         settings:controller="com.android.settings.display.DeviceStateAutoRotateOverviewController"/>
 
 </PreferenceScreen>
diff --git a/res/xml/button_navigation_settings.xml b/res/xml/button_navigation_settings.xml
index 1de011c..1f89539 100644
--- a/res/xml/button_navigation_settings.xml
+++ b/res/xml/button_navigation_settings.xml
@@ -28,7 +28,8 @@
         settings:searchable="false"
         settings:dynamicColor="true"
         settings:lottie_imageAssetsFolder="button_nav_menu"
-        settings:lottie_rawRes="@raw/lottie_button_nav_menu"/>
+        settings:lottie_rawRes="@raw/lottie_button_nav_menu"
+        settings:controller="com.android.settings.gestures.ButtonNavigationSettingsAssistController"/>
 
     <SwitchPreferenceCompat
         android:key="assistant_long_press_home_gesture"
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index f494795..a4addf6 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -200,6 +200,11 @@
             android:summary="@string/enable_terminal_summary" />
 
         <SwitchPreferenceCompat
+            android:key="enable_linux_terminal"
+            android:title="@string/enable_linux_terminal_title"
+            android:summary="@string/enable_linux_terminal_summary" />
+
+        <SwitchPreferenceCompat
             android:key="bugreport_in_power"
             android:title="@string/bugreport_in_power"
             android:summary="@string/bugreport_in_power_summary" />
diff --git a/res/xml/mouse_keys_main_page.xml b/res/xml/mouse_keys_main_page.xml
new file mode 100644
index 0000000..d781b51
--- /dev/null
+++ b/res/xml/mouse_keys_main_page.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  Copyright 2024 The Android Open Source Project
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/mouse_keys"
+    android:key="mouse_key_main_page">
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="mouse_keys_main_switch"
+        android:title="@string/mouse_keys_main_title"
+        settings:controller="com.android.settings.inputmethod.KeyboardAccessibilityMouseKeysController"/>
+
+    <com.android.settingslib.widget.LayoutPreference
+        android:key="mouse_keys_list"
+        android:layout="@layout/mouse_keys_image_list"/>
+
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/physical_keyboard_a11y_settings.xml b/res/xml/physical_keyboard_a11y_settings.xml
index 62479f9..9d634c0 100644
--- a/res/xml/physical_keyboard_a11y_settings.xml
+++ b/res/xml/physical_keyboard_a11y_settings.xml
@@ -19,39 +19,40 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/keyboard_a11y_settings"
-    android:key="physical_keyboard_a11y">
+    android:key="physical_keyboard_a11y_page">
 
     <PreferenceCategory
-        android:key="keyboard_a11y_category"
+        android:key="keyboard_a11y_page_category"
         android:title="@string/keyboard_a11y_category">
 
         <SwitchPreferenceCompat
-            android:key="accessibility_sticky_keys"
+            android:key="keyboard_a11y_page_sticky_keys"
             android:title="@string/sticky_keys"
             android:summary="@string/sticky_keys_summary"
             android:defaultValue="false"
             settings:controller="com.android.settings.inputmethod.KeyboardAccessibilityStickyKeysController"/>
 
         <com.android.settingslib.PrimarySwitchPreference
-            android:key="accessibility_bounce_keys"
+            android:key="keyboard_a11y_page_bounce_keys"
             android:title="@string/bounce_keys"
             android:summary="@string/bounce_keys_summary"
             android:defaultValue="false"
             settings:controller="com.android.settings.inputmethod.KeyboardAccessibilityBounceKeysController"/>
 
-        <SwitchPreferenceCompat
-            android:key="accessibility_slow_keys"
+        <com.android.settingslib.PrimarySwitchPreference
+            android:key="keyboard_a11y_page_slow_keys"
             android:title="@string/slow_keys"
             android:defaultValue="false"
             android:summary="@string/slow_keys_summary"
-            settings:controller="com.android.settings.inputmethod.KeyboardAccessibilitySlowKeysController" />
+            settings:controller="com.android.settings.inputmethod.KeyboardAccessibilitySlowKeysController"/>
 
-        <SwitchPreferenceCompat
-            android:key="accessibility_mouse_keys"
+        <com.android.settingslib.PrimarySwitchPreference
+            android:key="keyboard_a11y_page_mouse_keys"
             android:title="@string/mouse_keys"
             android:summary="@string/mouse_keys_summary"
             android:defaultValue="false"
-            settings:controller="com.android.settings.inputmethod.KeyboardAccessibilityMouseKeysController" />
+            android:fragment="com.android.settings.inputmethod.MouseKeysMainPageFragment"
+            settings:controller="com.android.settings.inputmethod.KeyboardAccessibilityMouseKeysController"/>
 
     </PreferenceCategory>
 
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 5d2c5fc..5691405 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -33,11 +33,12 @@
             android:summary="@string/modifier_keys_settings_summary"
             android:fragment="com.android.settings.inputmethod.ModifierKeysSettings" />
 
-        <SwitchPreferenceCompat
-            android:key="physical_keyboard_repeat_key"
-            android:title="@string/keyboard_repeat_key_title"
-            android:summary="@string/keyboard_repeat_key_summary"
+        <com.android.settingslib.PrimarySwitchPreference
+            android:key="physical_keyboard_repeat_keys"
+            android:title="@string/keyboard_repeat_keys_title"
+            android:summary="@string/keyboard_repeat_keys_summary"
             android:defaultValue="false"
+            android:fragment="com.android.settings.inputmethod.KeyboardRepeatKeysMainFragment"
             settings:controller="com.android.settings.inputmethod.KeyboardRepeatKeysController" />
 
         <Preference
diff --git a/res/xml/power_background_usage_detail.xml b/res/xml/power_background_usage_detail.xml
index 5c7b6a5..32d80b5 100644
--- a/res/xml/power_background_usage_detail.xml
+++ b/res/xml/power_background_usage_detail.xml
@@ -25,22 +25,25 @@
         android:layout="@layout/settings_entity_header"
         android:selectable="false"/>
 
-    <com.android.settingslib.widget.MainSwitchPreference
-        android:key="allow_background_usage"
-        android:title="@string/manager_battery_usage_allow_background_usage_title"
-        settings:controller="com.android.settings.fuelgauge.AllowBackgroundPreferenceController"/>
+    <PreferenceCategory
+        android:key="battery_optimization_mode_category"
+        android:layout="@layout/settingslib_preference_category_no_title"
+        settings:controller="com.android.settings.fuelgauge.BatteryOptimizationModePreferenceController">
 
-    <com.android.settingslib.widget.SelectorWithWidgetPreference
-        android:key="optimized_preference"
-        android:title="@string/manager_battery_usage_optimized_title"
-        android:summary="@string/manager_battery_usage_optimized_summary"
-        settings:controller="com.android.settings.fuelgauge.OptimizedPreferenceController"/>
+        <com.android.settingslib.widget.MainSwitchPreference
+            android:key="background_usage_allowability_switch"
+            android:title="@string/manager_battery_usage_allow_background_usage_title"/>
 
-    <com.android.settingslib.widget.SelectorWithWidgetPreference
-        android:key="unrestricted_preference"
-        android:title="@string/manager_battery_usage_unrestricted_title"
-        android:summary="@string/manager_battery_usage_unrestricted_summary"
-        settings:controller="com.android.settings.fuelgauge.UnrestrictedPreferenceController"/>
+        <com.android.settingslib.widget.SelectorWithWidgetPreference
+            android:key="optimized_preference"
+            android:title="@string/manager_battery_usage_optimized_title"
+            android:summary="@string/manager_battery_usage_optimized_summary"/>
+
+        <com.android.settingslib.widget.SelectorWithWidgetPreference
+            android:key="unrestricted_preference"
+            android:title="@string/manager_battery_usage_unrestricted_title"
+            android:summary="@string/manager_battery_usage_unrestricted_summary"/>
+    </PreferenceCategory>
 
     <com.android.settingslib.widget.FooterPreference
         android:key="app_usage_footer_preference"
diff --git a/res/xml/power_usage_detail.xml b/res/xml/power_usage_detail.xml
index f3b30b6..655dbc5 100644
--- a/res/xml/power_usage_detail.xml
+++ b/res/xml/power_usage_detail.xml
@@ -48,12 +48,12 @@
 
     <PreferenceCategory
         android:title="@string/manager_battery_usage_category_title"
-        android:key="manage_battery_usage_category">
+        android:key="background_usage_allowability_category"
+        settings:controller="com.android.settings.fuelgauge.BackgroundUsageAllowabilityPreferenceController">
 
         <com.android.settingslib.PrimarySwitchPreference
-            android:key="allow_background_usage"
-            android:title="@string/manager_battery_usage_allow_background_usage_title"
-            settings:controller="com.android.settings.fuelgauge.AllowBackgroundPreferenceController"/>
+            android:key="background_usage_allowability_switch"
+            android:title="@string/manager_battery_usage_allow_background_usage_title"/>
 
     </PreferenceCategory>
 
diff --git a/res/xml/repeat_key_main_page.xml b/res/xml/repeat_key_main_page.xml
new file mode 100644
index 0000000..c33eba7
--- /dev/null
+++ b/res/xml/repeat_key_main_page.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright 2024 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  -->
+
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:settings="http://schemas.android.com/apk/res-auto"
+    android:title="@string/keyboard_repeat_keys_title"
+    android:key="repeat_keys_main_page">
+
+    <com.android.settingslib.widget.MainSwitchPreference
+        android:key="repeat_keys_main_switch"
+        android:title="@string/keyboard_repeat_keys_title"
+        settings:controller="com.android.settings.inputmethod.KeyboardRepeatKeysController"/>
+    <com.android.settings.widget.LabeledSeekBarPreference
+        android:key="repeat_keys_timeout_preference"
+        android:title="@string/keyboard_repeat_keys_timeout_title"
+        android:min="0"
+        android:max="6"
+        settings:seekBarIncrement="1"
+        settings:controller= "com.android.settings.inputmethod.KeyboardRepeatKeysTimeOutPreferenceController" />
+    <com.android.settings.widget.LabeledSeekBarPreference
+        android:key="repeat_keys_delay_preference"
+        android:title="@string/keyboard_repeat_keys_delay_title"
+        android:min="0"
+        android:max="8"
+        settings:seekBarIncrement="1"
+        settings:controller= "com.android.settings.inputmethod.KeyboardRepeatKeysDelayPreferenceController" />
+</PreferenceScreen>
\ No newline at end of file
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 15312c8..eed4406 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -170,7 +170,7 @@
 
     <!-- Dial pad tones -->
     <SwitchPreferenceCompat
-        android:key="dial_pad_tones"
+        android:key="dtmf_tone"
         android:title="@string/dial_pad_tones_title"
         android:order="-50"/>
 
diff --git a/res/xml/system_navigation_gesture_settings.xml b/res/xml/system_navigation_gesture_settings.xml
index a75875b..8919a40 100644
--- a/res/xml/system_navigation_gesture_settings.xml
+++ b/res/xml/system_navigation_gesture_settings.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!--
-  Copyright (C) 2018 The Android Open Source Project
+  Copyright (C) 2024 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.
@@ -19,4 +19,15 @@
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:settings="http://schemas.android.com/apk/res-auto"
     android:title="@string/system_navigation_title"
-    settings:keywords="@string/keywords_system_navigation"/>
+    settings:keywords="@string/keywords_system_navigation">
+
+    <SwitchPreferenceCompat
+        android:key="search_gesture_press_hold"
+        android:title="@string/search_gesture_feature_title"
+        android:summary="@string/search_gesture_feature_summary"
+        android:order="100"
+        settings:allowDividerAbove="true"
+        settings:controller="com.android.settings.gestures.NavigationSettingsContextualSearchController"
+        settings:highlightableMenuKey="@string/menu_key_system" />
+
+</PreferenceScreen>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index a095006..10763d0 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -97,9 +97,8 @@
                 }
             };
 
-    @Nullable
     @Override
-    public String getPreferenceScreenBindingKey(@NonNull Context context) {
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
         return DisplayScreen.KEY;
     }
 }
diff --git a/src/com/android/settings/LegalSettings.java b/src/com/android/settings/LegalSettings.java
index e48da26..533dde3 100644
--- a/src/com/android/settings/LegalSettings.java
+++ b/src/com/android/settings/LegalSettings.java
@@ -50,9 +50,8 @@
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.about_legal);
 
-    @Nullable
     @Override
-    public String getPreferenceScreenBindingKey(@NonNull Context context) {
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
         return LegalSettingsScreen.KEY;
     }
 }
diff --git a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
index 6b5ccc7..4038aa8 100644
--- a/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
+++ b/src/com/android/settings/RegulatoryInfoDisplayActivity.kt
@@ -69,6 +69,6 @@
     private fun getRegulatoryText(): CharSequence? {
         val regulatoryInfoText = resources.getText(R.string.regulatory_info_text)
         if (regulatoryInfoText.isNotBlank()) return regulatoryInfoText
-        return featureFactory.hardwareInfoFeatureProvider?.countryIfOriginLabel
+        return featureFactory.hardwareInfoFeatureProvider?.countryOfOriginLabel
     }
 }
diff --git a/src/com/android/settings/ResetNetwork.java b/src/com/android/settings/ResetNetwork.java
index f86e29f..2178b60 100644
--- a/src/com/android/settings/ResetNetwork.java
+++ b/src/com/android/settings/ResetNetwork.java
@@ -47,7 +47,6 @@
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
-import com.android.internal.telephony.flags.Flags;
 import com.android.settings.core.InstrumentedFragment;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.network.ResetNetworkRestrictionViewBuilder;
@@ -142,13 +141,10 @@
         Context context = getContext();
         boolean resetSims = false;
 
-        // TODO(b/317276437) Simplify the logic once flag is released
         int resetOptions = ResetNetworkRequest.RESET_CONNECTIVITY_MANAGER
-                        | ResetNetworkRequest.RESET_VPN_MANAGER;
-        if (Flags.resetMobileNetworkSettings()) {
-            resetOptions |= ResetNetworkRequest.RESET_IMS_STACK;
-            resetOptions |= ResetNetworkRequest.RESET_PHONE_PROCESS;
-        }
+                        | ResetNetworkRequest.RESET_VPN_MANAGER
+                        | ResetNetworkRequest.RESET_IMS_STACK
+                        | ResetNetworkRequest.RESET_PHONE_PROCESS;
         ResetNetworkRequest request = new ResetNetworkRequest(resetOptions);
         if (mSubscriptions != null && mSubscriptions.size() > 0) {
             int selectedIndex = mSubscriptionSpinner.getSelectedItemPosition();
@@ -156,9 +152,7 @@
             int subId = subscription.getSubscriptionId();
             request.setResetTelephonyAndNetworkPolicyManager(subId)
                     .setResetApn(subId);
-            if (Flags.resetMobileNetworkSettings()) {
-                request.setResetImsSubId(subId);
-            }
+            request.setResetImsSubId(subId);
         }
         if (mEsimContainer.getVisibility() == View.VISIBLE && mEsimCheckbox.isChecked()) {
             resetSims = true;
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index f7110b4..b04f3af 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -514,4 +514,5 @@
 
     public static class HearingDevicesActivity extends SettingsActivity { /* empty */ }
     public static class HearingDevicesPairingActivity extends SettingsActivity { /* empty */ }
+    public static class ContactsStorageSettingsActivity extends SettingsActivity { /* empty */ }
 }
diff --git a/src/com/android/settings/SettingsService.kt b/src/com/android/settings/SettingsService.kt
new file mode 100644
index 0000000..2cd706b
--- /dev/null
+++ b/src/com/android/settings/SettingsService.kt
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2024 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
+
+import android.content.Intent
+import android.os.IBinder
+import com.android.settings.flags.Flags
+import com.android.settingslib.service.PreferenceService
+
+/** Service to expose settings APIs. */
+class SettingsService : PreferenceService({ _, _, _ -> true }) {
+
+    override fun onBind(intent: Intent): IBinder? {
+        return if (!Flags.catalystService()) null else super.onBind(intent)
+    }
+}
diff --git a/src/com/android/settings/accessibility/ColorAndMotionFragment.java b/src/com/android/settings/accessibility/ColorAndMotionFragment.java
index 4ea2226..7a7c21d 100644
--- a/src/com/android/settings/accessibility/ColorAndMotionFragment.java
+++ b/src/com/android/settings/accessibility/ColorAndMotionFragment.java
@@ -17,12 +17,15 @@
 package com.android.settings.accessibility;
 
 import android.app.settings.SettingsEnums;
+import android.content.Context;
 import android.hardware.display.ColorDisplayManager;
 import android.os.Bundle;
 import android.os.Handler;
 import android.provider.Settings;
 import android.view.accessibility.Flags;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceCategory;
 import androidx.preference.TwoStatePreference;
@@ -148,6 +151,12 @@
         }
     }
 
+    @Nullable
+    @Override
+    public String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return ColorAndMotionScreen.KEY;
+    }
+
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.accessibility_color_and_motion);
 }
diff --git a/src/com/android/settings/accessibility/ColorAndMotionScreen.kt b/src/com/android/settings/accessibility/ColorAndMotionScreen.kt
new file mode 100644
index 0000000..909b08b
--- /dev/null
+++ b/src/com/android/settings/accessibility/ColorAndMotionScreen.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accessibility
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class ColorAndMotionScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.accessibility_color_and_motion_title
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystAccessibilityColorAndMotion()
+
+    override fun hasCompleteHierarchy(): Boolean = false
+
+    override fun fragmentClass() = ColorAndMotionFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "accessibility_color_and_motion"
+    }
+}
diff --git a/src/com/android/settings/accessibility/DisplaySizeData.java b/src/com/android/settings/accessibility/DisplaySizeData.java
index 77ae897..15aeb6b 100644
--- a/src/com/android/settings/accessibility/DisplaySizeData.java
+++ b/src/com/android/settings/accessibility/DisplaySizeData.java
@@ -35,7 +35,7 @@
         super(context);
 
         mDensity = new DisplayDensityUtils(getContext());
-        final int initialIndex = mDensity.getCurrentIndexForDefaultDisplay();
+        final int initialIndex = mDensity.getCurrentIndex();
         if (initialIndex < 0) {
             // Failed to obtain default density, which means we failed to
             // connect to the window manager service. Just use the current
@@ -46,9 +46,9 @@
             setInitialIndex(0);
             setValues(Collections.singletonList(densityDpi));
         } else {
-            setDefaultValue(mDensity.getDefaultDensityForDefaultDisplay());
+            setDefaultValue(mDensity.getDefaultDensity());
             setInitialIndex(initialIndex);
-            setValues(Arrays.stream(mDensity.getDefaultDisplayDensityValues()).boxed()
+            setValues(Arrays.stream(mDensity.getValues()).boxed()
                     .collect(Collectors.toList()));
         }
     }
diff --git a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
index 9c8560b..8b37c8f 100644
--- a/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/InvisibleToggleAccessibilityServicePreferenceFragment.java
@@ -18,8 +18,6 @@
 
 import android.accessibilityservice.AccessibilityServiceInfo;
 
-import com.android.settingslib.accessibility.AccessibilityUtils;
-
 /**
  * Fragment that does not have toggle bar to turn on service to use.
  *
@@ -37,29 +35,4 @@
         super.onInstallSwitchPreferenceToggleSwitch();
         mToggleServiceSwitchPreference.setVisible(false);
     }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Enables accessibility service only when user had allowed permission. Disables
-     * accessibility service when shortcutPreference is unchecked.
-     */
-    @Override
-    public void onToggleClicked(ShortcutPreference preference) {
-        super.onToggleClicked(preference);
-        boolean enabled = getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED)
-                && preference.isChecked();
-        AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, enabled);
-    }
-
-    /**
-     * {@inheritDoc}
-     *
-     * Enables accessibility service when user clicks permission allow button.
-     */
-    @Override
-    void onAllowButtonFromShortcutToggleClicked() {
-        super.onAllowButtonFromShortcutToggleClicked();
-        AccessibilityUtils.setAccessibilityServiceState(getContext(), mComponentName, true);
-    }
 }
diff --git a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
index a90af21..9fc9e10 100644
--- a/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/TextReadingPreferenceFragment.java
@@ -30,6 +30,8 @@
 import android.widget.Toast;
 
 import androidx.annotation.IntDef;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.appcompat.app.AlertDialog;
 
 import com.android.settings.R;
@@ -313,4 +315,9 @@
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.accessibility_text_reading_options);
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return TextReadingScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/accessibility/TextReadingScreen.kt b/src/com/android/settings/accessibility/TextReadingScreen.kt
new file mode 100644
index 0000000..8970d52
--- /dev/null
+++ b/src/com/android/settings/accessibility/TextReadingScreen.kt
@@ -0,0 +1,44 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accessibility
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class TextReadingScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.accessibility_text_reading_options_title
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystTextReadingScreen()
+
+    override fun fragmentClass() = TextReadingPreferenceFragment::class.java
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "text_reading_screen"
+    }
+}
diff --git a/src/com/android/settings/accessibility/VibrationIntensityScreen.kt b/src/com/android/settings/accessibility/VibrationIntensityScreen.kt
new file mode 100644
index 0000000..5d7d4fb
--- /dev/null
+++ b/src/com/android/settings/accessibility/VibrationIntensityScreen.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accessibility
+
+import android.content.Context
+import androidx.fragment.app.Fragment
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class VibrationIntensityScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.accessibility_vibration_settings_title
+
+    override fun isFlagEnabled(context: Context): Boolean = Flags.catalystVibrationIntensityScreen()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass(): Class<out Fragment>? =
+        VibrationIntensitySettingsFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "vibration_intensity_screen"
+    }
+}
diff --git a/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java b/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java
index 1d24ec9..328bed9 100644
--- a/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java
+++ b/src/com/android/settings/accessibility/VibrationIntensitySettingsFragment.java
@@ -25,6 +25,8 @@
 import android.view.View;
 import android.view.ViewGroup;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -90,4 +92,9 @@
                     return VibrationIntensitySettingsFragment.isPageSearchEnabled(context);
                 }
             };
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return VibrationIntensityScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
index d04b34a..f05b157 100644
--- a/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragment.java
@@ -61,6 +61,7 @@
 import com.android.settings.R;
 import com.android.settings.SetupWizardUtils;
 import com.android.settings.accessibility.AccessibilitySetupWizardUtils;
+import com.android.settings.accessibility.Flags;
 import com.android.settings.accessibility.PreferredShortcuts;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.dashboard.DashboardFragment;
@@ -201,9 +202,14 @@
         super.onCreatePreferences(savedInstanceState, rootKey);
 
         Activity activity = getActivity();
+        final Preference descriptionPref = findPreference(getString(
+                R.string.accessibility_shortcut_description_pref));
 
         if (!activity.getIntent().getAction().equals(
                 Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)) {
+            if (Flags.toggleFeatureFragmentCollectionInfo()) {
+                descriptionPref.setVisible(false);
+            }
             return;
         }
 
@@ -219,10 +225,11 @@
         );
 
         activity.setTitle(titles.first);
-
-        String screenDescriptionPrefKey = getString(
-                R.string.accessibility_shortcut_description_pref);
-        findPreference(screenDescriptionPrefKey).setSummary(titles.second);
+        if (titles.second != null || !Flags.toggleFeatureFragmentCollectionInfo()) {
+            descriptionPref.setSummary(titles.second);
+        } else {
+            descriptionPref.setVisible(false);
+        }
     }
 
     @NonNull
diff --git a/src/com/android/settings/applications/contacts/ContactsStoragePreferenceController.java b/src/com/android/settings/applications/contacts/ContactsStoragePreferenceController.java
index bc6931d..6c179da 100644
--- a/src/com/android/settings/applications/contacts/ContactsStoragePreferenceController.java
+++ b/src/com/android/settings/applications/contacts/ContactsStoragePreferenceController.java
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (C) 2024 The Android Open Source Project
  *
@@ -16,12 +15,13 @@
  */
 package com.android.settings.applications.contacts;
 
+import static android.provider.ContactsContract.RawContacts.DefaultAccount;
+
 import android.accounts.Account;
 import android.content.Context;
 import android.os.UserHandle;
-import android.provider.ContactsContract;
-
-import androidx.preference.PreferenceScreen;
+import android.provider.ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState;
+import android.util.Log;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -36,33 +36,53 @@
 
     private final AuthenticatorHelper mAuthenticatorHelper;
 
+    private DefaultAccountAndState mCurrentDefaultAccountAndState;
+
     public ContactsStoragePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
         mAuthenticatorHelper = new AuthenticatorHelper(mContext,
                 new UserHandle(UserHandle.myUserId()), null);
+        try {
+            mCurrentDefaultAccountAndState =
+                    DefaultAccount.getDefaultAccountForNewContacts(mContext.getContentResolver());
+        } catch (IllegalStateException e) {
+            Log.e(TAG, "The default account is in an invalid state: " + e);
+        } catch (RuntimeException e) {
+            Log.e(TAG, "Failed to look up the default account: " + e);
+        }
     }
 
     @Override
     public int getAvailabilityStatus() {
-        return Flags.enableContactsDefaultAccountInSettings()
-            ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
+        return (Flags.enableContactsDefaultAccountInSettings()
+                && mCurrentDefaultAccountAndState != null) ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
     }
 
     @Override
     public CharSequence getSummary() {
-        Account currentDefaultAccount =
-                ContactsContract.Settings.getDefaultAccount(mContext.getContentResolver());
-        if (currentDefaultAccount == null) {
-            return mContext.getResources().getString(
-                    R.string.contacts_storage_no_account_set);
+        if (mCurrentDefaultAccountAndState != null) {
+            int currentDefaultAccountState = mCurrentDefaultAccountAndState.getState();
+            Account currentDefaultAccount = mCurrentDefaultAccountAndState.getAccount();
+            if (currentDefaultAccountState
+                    == DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_NOT_SET) {
+                return mContext.getResources().getString(
+                        R.string.contacts_storage_no_account_set_summary);
+            } else if (currentDefaultAccountState
+                    == DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_LOCAL) {
+                return mContext.getResources().getString(
+                        R.string.contacts_storage_local_account_summary);
+            } else if (currentDefaultAccount != null) {
+                String accountTypeLabel = (String) mAuthenticatorHelper.getLabelForType(mContext,
+                        currentDefaultAccount.type);
+                // If there's no account type, or the account type is the same as the
+                // current default account name, just return the account name.
+                if (accountTypeLabel == null || accountTypeLabel.equals(
+                        currentDefaultAccount.name)) {
+                    return currentDefaultAccount.name;
+                }
+                return accountTypeLabel + " | " + currentDefaultAccount.name;
+            }
         }
-        String accountTypeLabel = (String) mAuthenticatorHelper.getLabelForType(mContext,
-                currentDefaultAccount.type);
-        // If there's no account type, or the account type is the same as the
-        // current default account name, just return the account name.
-        if (accountTypeLabel == null || accountTypeLabel.equals(currentDefaultAccount.name)) {
-            return currentDefaultAccount.name;
-        }
-        return accountTypeLabel + " | " + currentDefaultAccount.name;
+        return "";
     }
 }
diff --git a/src/com/android/settings/applications/contacts/ContactsStorageSettings.java b/src/com/android/settings/applications/contacts/ContactsStorageSettings.java
index 90d593a..3d449cf 100644
--- a/src/com/android/settings/applications/contacts/ContactsStorageSettings.java
+++ b/src/com/android/settings/applications/contacts/ContactsStorageSettings.java
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (C) 2020 The Android Open Source Project
  *
@@ -17,25 +16,27 @@
 package com.android.settings.applications.contacts;
 
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount;
 import static android.provider.Settings.ACTION_ADD_ACCOUNT;
 import static android.provider.Settings.EXTRA_ACCOUNT_TYPES;
 
 import android.accounts.Account;
-import android.accounts.AccountManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.provider.ContactsContract.Settings;
-
+import android.provider.ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState;
+import android.widget.Toast;
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.UiThread;
 import androidx.preference.Preference;
 import androidx.preference.Preference.OnPreferenceClickListener;
 import androidx.preference.PreferenceScreen;
 
+import com.android.internal.annotations.VisibleForTesting;
 import com.android.settings.R;
 import com.android.settings.accounts.AddAccountSettings;
 import com.android.settings.dashboard.DashboardFragment;
@@ -46,6 +47,7 @@
 import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -59,7 +61,7 @@
     private static final String TAG = "ContactsStorageSettings";
     private static final String PREF_KEY_ADD_ACCOUNT = "add_account";
     private static final String PREF_KEY_DEVICE_ONLY = "device_only_account_preference";
-    private final Map<String, Account> mAccountMap = new HashMap<>();
+    private final Map<String, DefaultAccountAndState> mAccountMap = new HashMap<>();
     private AuthenticatorHelper mAuthenticatorHelper;
 
     @Override
@@ -73,13 +75,18 @@
     @Override
     public void onRadioButtonClicked(@NonNull SelectorWithWidgetPreference selectedPref) {
         final String selectedPreferenceKey = selectedPref.getKey();
-        // Check if current provider is different from the selected provider.
+        // Check if current account is different from the selected account.
         for (String preferenceKey : mAccountMap.keySet()) {
             if (selectedPreferenceKey.equals(preferenceKey)) {
-                selectedPref.setChecked(true);
-                //TODO: Call DefaultAccount.setDefaultAccountForNewContacts once
-                // the implementation is ready.
-                Settings.setDefaultAccount(getContentResolver(), mAccountMap.get(preferenceKey));
+                try {
+                    DefaultAccount.setDefaultAccountForNewContacts(getContentResolver(),
+                            mAccountMap.get(preferenceKey));
+                    selectedPref.setChecked(true);
+                } catch (RuntimeException e) {
+                    Toast.makeText(getContext(),
+                            R.string.contacts_storage_set_default_account_error_message,
+                            Toast.LENGTH_SHORT).show();
+                }
             } else {
                 SelectorWithWidgetPreference unSelectedPreference =
                         getPreferenceScreen().findPreference(preferenceKey);
@@ -92,10 +99,7 @@
 
     public boolean onPreferenceClick(@NonNull Preference preference) {
         if (PREF_KEY_ADD_ACCOUNT.equals(preference.getKey())) {
-            Resources resources = Resources.getSystem();
-            String[] accountTypesArray =
-                    resources.getStringArray(
-                            com.android.internal.R.array.config_rawContactsEligibleDefaultAccountTypes);
+            String[] accountTypesArray = getEligibleAccountTypes();
             Intent intent = new Intent(ACTION_ADD_ACCOUNT);
             intent.setClass(getContext(), AddAccountSettings.class);
             intent.putExtra(EXTRA_ACCOUNT_TYPES, accountTypesArray);
@@ -108,7 +112,7 @@
 
     @Override
     public void onCreatePreferences(@NonNull Bundle savedInstanceState,
-        @NonNull String rootKey) {
+            @NonNull String rootKey) {
         super.onCreatePreferences(savedInstanceState, rootKey);
         refreshUI();
     }
@@ -119,48 +123,60 @@
         // when creating eligible account preferences.
         mAccountMap.clear();
         final PreferenceScreen screen = getPreferenceScreen();
-        AccountManager accountManager = AccountManager.get(getPrefContext());
-        //TODO: Call DefaultAccount.getDefaultAccountForNewContacts once
-        // implementation is ready.
-        Account[] accounts = accountManager.getAccounts();
-
-        for (int i = 0; i < accounts.length; i++) {
-            screen.addPreference(buildAccountPreference(accounts[i], i));
+        List<Account> accounts = DefaultAccount.getEligibleCloudAccounts(getContentResolver());
+        for (int i = 0; i < accounts.size(); i++) {
+            screen.addPreference(buildAccountPreference(accounts.get(i), /*order=*/i));
         }
-        screen.addPreference(buildAddAccountPreference(accounts.length == 0));
+        // If there's no eligible account types, the "Add Account" preference should
+        // not be shown to the users.
+        if (getEligibleAccountTypes().length > 0) {
+            screen.addPreference(buildAddAccountPreference(accounts.isEmpty()));
+        }
         setupDeviceOnlyPreference();
-
-        //TODO: Call DefaultAccount.ListEligibleCloudAccounts once the
-        // implementation is ready. And differentiate device only account vs account not set case.
-        Account currentDefaultAccount = Settings.getDefaultAccount(getContentResolver());
-        String preferenceKey = currentDefaultAccount != null ?
-                String.valueOf(currentDefaultAccount.hashCode()) : PREF_KEY_DEVICE_ONLY;
-        SelectorWithWidgetPreference preference = getPreferenceScreen().findPreference(
-                preferenceKey);
-        if (preference != null) {
-            preference.setChecked(true);
-        }
+        setDefaultAccountPreference();
     }
 
     private void setupDeviceOnlyPreference() {
         SelectorWithWidgetPreference preference = findPreference(PREF_KEY_DEVICE_ONLY);
         if (preference != null) {
             preference.setOnClickListener(this);
-            mAccountMap.put(PREF_KEY_DEVICE_ONLY, null);
+            mAccountMap.put(PREF_KEY_DEVICE_ONLY, DefaultAccountAndState.ofLocal());
+        }
+    }
+
+    private void setDefaultAccountPreference() {
+        DefaultAccountAndState currentDefaultAccountAndState =
+                DefaultAccount.getDefaultAccountForNewContacts(getContentResolver());
+        String preferenceKey = getAccountHashCode(currentDefaultAccountAndState);
+        Account currentDefaultAccount = currentDefaultAccountAndState.getAccount();
+
+        // Set the current default account preference to be checked if found among existing
+        // preferences. If not, then create a new preference for default account.
+        SelectorWithWidgetPreference preference = null;
+        if (mAccountMap.containsKey(preferenceKey)) {
+            preference = getPreferenceScreen().findPreference(preferenceKey);
+        } else if (preferenceKey != null && currentDefaultAccount != null) {
+            preference = buildAccountPreference(currentDefaultAccount, mAccountMap.size());
+            getPreferenceScreen().addPreference(preference);
+        }
+        if (preference != null) {
+            preference.setChecked(true);
         }
     }
 
     //TODO: Add preference category on account preferences.
-    private Preference buildAccountPreference(Account account, int order) {
+    private SelectorWithWidgetPreference buildAccountPreference(Account account, int order) {
         SelectorWithWidgetPreference preference = new SelectorWithWidgetPreference(
                 getPrefContext());
+        DefaultAccountAndState accountAndState = DefaultAccountAndState.ofCloud(account);
+        String preferenceKey = getAccountHashCode(accountAndState);
         preference.setTitle(mAuthenticatorHelper.getLabelForType(getPrefContext(), account.type));
         preference.setIcon(mAuthenticatorHelper.getDrawableForType(getPrefContext(), account.type));
         preference.setSummary(account.name);
-        preference.setKey(String.valueOf(account.hashCode()));
+        preference.setKey(preferenceKey);
         preference.setOnClickListener(this);
         preference.setOrder(order);
-        mAccountMap.put(String.valueOf(account.hashCode()), account);
+        mAccountMap.put(preferenceKey, accountAndState);
         return preference;
     }
 
@@ -178,6 +194,29 @@
         return preference;
     }
 
+    private @Nullable String getAccountHashCode(DefaultAccountAndState currentDefaultAccountAndState) {
+        Account currentDefaultAccount = currentDefaultAccountAndState.getAccount();
+        if (currentDefaultAccount != null && (currentDefaultAccountAndState.getState()
+                == DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_CLOUD
+                || currentDefaultAccountAndState.getState()
+                == DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_SIM)) {
+            return String.valueOf(currentDefaultAccount.hashCode());
+        } else if (currentDefaultAccountAndState.getState()
+                == DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_LOCAL) {
+            return PREF_KEY_DEVICE_ONLY;
+        } else {
+            // If the account is not set or in error state, it should just return null and won't
+            // set the checked status in radio button.
+            return null;
+        }
+    }
+
+    @VisibleForTesting
+    String[] getEligibleAccountTypes() {
+        return Resources.getSystem().getStringArray(
+                com.android.internal.R.array.config_rawContactsEligibleDefaultAccountTypes);
+    }
+
     @Override
     protected int getPreferenceScreenResId() {
         return R.xml.contacts_storage_settings;
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index b32ab4f..03010bb 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -207,10 +207,9 @@
     @VisibleForTesting
     protected boolean shouldShowLottie() {
         DisplayDensityUtils displayDensity = new DisplayDensityUtils(getApplicationContext());
-        int currentDensityIndex = displayDensity.getCurrentIndexForDefaultDisplay();
-        final int currentDensity = displayDensity.getDefaultDisplayDensityValues()
-                [currentDensityIndex];
-        final int defaultDensity = displayDensity.getDefaultDensityForDefaultDisplay();
+        int currentDensityIndex = displayDensity.getCurrentIndex();
+        final int currentDensity = displayDensity.getValues()[currentDensityIndex];
+        final int defaultDensity = displayDensity.getDefaultDensity();
 
         if (getResources().getConfiguration().fontScale > 1) {
             return false;
diff --git a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
index 761a9c3..50ac3cd 100644
--- a/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/BiometricsEnvironment.kt
@@ -133,11 +133,8 @@
   fun createRenameFingerprintInteractor(): RenameFingerprintInteractor =
     RenameFingerprintsInteractorImpl(fingerprintManager, context.userId, backgroundDispatcher)
 
-  val accessibilityInteractor: AccessibilityInteractor by lazy {
-    AccessibilityInteractorImpl(
-      context.getSystemService(AccessibilityManager::class.java)!!,
-      applicationScope,
-    )
+  fun createAccessibilityInteractor(): AccessibilityInteractor {
+    return AccessibilityInteractorImpl(context.getSystemService(AccessibilityManager::class.java)!!)
   }
 
   val foldStateInteractor: FoldStateInteractor by lazy { FoldStateInteractorImpl(context) }
@@ -157,7 +154,7 @@
   val enrollStageInteractor: EnrollStageInteractor by lazy { EnrollStageInteractorImpl() }
 
   val udfpsEnrollInteractor: UdfpsEnrollInteractor by lazy {
-    UdfpsEnrollInteractorImpl(context, accessibilityInteractor)
+    UdfpsEnrollInteractorImpl(context, createAccessibilityInteractor())
   }
 
   val sensorInteractor: FingerprintSensorInteractor by lazy {
diff --git a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
index 0ef1d25..27465c2 100644
--- a/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/conversion/Util.kt
@@ -67,6 +67,7 @@
     return FingerEnrollState.EnrollError(
       errTitle,
       errString,
+      this,
       this == FINGERPRINT_ERROR_UNABLE_TO_PROCESS,
       this == FINGERPRINT_ERROR_CANCELED,
     )
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt
index e1a08e6..9f62ed0 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/AccessibilityInteractor.kt
@@ -16,6 +16,8 @@
 
 package com.android.settings.biometrics.fingerprint2.domain.interactor
 
+import android.view.accessibility.AccessibilityEvent
+import android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT
 import android.view.accessibility.AccessibilityManager
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.channels.awaitClose
@@ -27,26 +29,38 @@
 /** Represents all of the information on accessibility state. */
 interface AccessibilityInteractor {
   /** A flow that contains whether or not accessibility is enabled */
-  val isAccessibilityEnabled: Flow<Boolean>
+  fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean>
+  val isEnabled: Boolean
+  fun announce(clazz: Class<*>, announcement: CharSequence?)
 }
 
 class AccessibilityInteractorImpl(
-  accessibilityManager: AccessibilityManager,
-  applicationScope: CoroutineScope,
+  private val accessibilityManager: AccessibilityManager,
 ) : AccessibilityInteractor {
   /** A flow that contains whether or not accessibility is enabled */
-  override val isAccessibilityEnabled: Flow<Boolean> =
+  override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> =
     callbackFlow {
-        val listener =
-          AccessibilityManager.AccessibilityStateChangeListener { enabled -> trySend(enabled) }
-        accessibilityManager.addAccessibilityStateChangeListener(listener)
+      val listener =
+        AccessibilityManager.AccessibilityStateChangeListener { enabled -> trySend(enabled) }
+      accessibilityManager.addAccessibilityStateChangeListener(listener)
 
-        // This clause will be called when no one is listening to the flow
-        awaitClose { accessibilityManager.removeAccessibilityStateChangeListener(listener) }
-      }
+      // This clause will be called when no one is listening to the flow
+      awaitClose { accessibilityManager.removeAccessibilityStateChangeListener(listener) }
+    }
       .stateIn(
-        applicationScope, // This is going to tied to the activity scope
+        scope,
         SharingStarted.WhileSubscribed(), // When no longer subscribed, we removeTheListener
         false,
       )
+
+  override val isEnabled: Boolean
+    get() = accessibilityManager.isEnabled
+
+  override fun announce(clazz: Class<*>, announcement: CharSequence?) {
+    val event = AccessibilityEvent(TYPE_ANNOUNCEMENT)
+    event.className = clazz.javaClass.name
+    event.packageName = clazz.packageName
+    event.text.add(announcement)
+    accessibilityManager.sendAccessibilityEvent(event)
+  }
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt
index 6dfb4c2..00e85b1 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/DisplayDensityInteractor.kt
@@ -42,7 +42,7 @@
   val fontScale: Flow<Float>
 
   /** A flow that propagates displayDensity. */
-  val displayDensity: Flow<Int>
+  val displayDensity: Flow<Int?>
 
   /** A flow that propagates the default display density. */
   val defaultDisplayDensity: Flow<Int>
@@ -67,16 +67,14 @@
 
   private val _fontScale = MutableStateFlow(context.resources.configuration.fontScale)
   private val _displayDensity =
-    MutableStateFlow(
-      displayDensityUtils.defaultDisplayDensityValues[
-          displayDensityUtils.currentIndexForDefaultDisplay]
-    )
+    MutableStateFlow(displayDensityUtils.values?.let{
+      it[displayDensityUtils.currentIndex]
+    })
 
   override val fontScale: Flow<Float> = _fontScale.asStateFlow()
 
-  override val displayDensity: Flow<Int> = _displayDensity.asStateFlow()
+  override val displayDensity: Flow<Int?> = _displayDensity.asStateFlow()
 
   override val defaultDisplayDensity: Flow<Int> =
-    flowOf(displayDensityUtils.defaultDensityForDefaultDisplay)
-      .shareIn(scope, SharingStarted.Eagerly, 1)
+    flowOf(displayDensityUtils.defaultDensity).shareIn(scope, SharingStarted.Eagerly, 1)
 }
diff --git a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/UdfpsEnrollInteractor.kt b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/UdfpsEnrollInteractor.kt
index 006060a..62c51ae 100644
--- a/src/com/android/settings/biometrics/fingerprint2/domain/interactor/UdfpsEnrollInteractor.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/domain/interactor/UdfpsEnrollInteractor.kt
@@ -19,6 +19,7 @@
 import android.content.Context
 import android.graphics.PointF
 import android.util.TypedValue
+import kotlinx.coroutines.MainScope
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.combine
@@ -87,7 +88,7 @@
   override val guidedEnrollmentOffset: Flow<PointF> =
     combine(
       _guidedEnrollment,
-      accessibilityInteractor.isAccessibilityEnabled,
+      accessibilityInteractor.isEnabledFlow(MainScope()),
       isGuidedEnrollment,
     ) { point, accessibilityEnabled, guidedEnrollmentEnabled ->
       if (accessibilityEnabled || !guidedEnrollmentEnabled) {
diff --git a/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
index e087304..1d368c0 100644
--- a/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/lib/model/FingerEnrollState.kt
@@ -35,10 +35,13 @@
   data class EnrollHelp(@StringRes val helpMsgId: Int, val helpString: String) :
     FingerEnrollState()
 
-  /** Represents that an unrecoverable error has been encountered and the operation is complete. */
+  /** Represents that an unrecoverable error has been encountered and the operation is complete.
+   * Note that errorId is the raw error id from [FingerprintManager]
+   */
   data class EnrollError(
     @StringRes val errTitle: Int,
     @StringRes val errString: Int,
+    val errorId: Int,
     val shouldRetryEnrollment: Boolean,
     val isCancelled: Boolean,
   ) : FingerEnrollState()
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
index 77d070e..dc89c93 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/activity/FingerprintEnrollmentV2Activity.kt
@@ -149,11 +149,11 @@
     super.onConfigurationChanged(newConfig)
     foldStateInteractor.onConfigurationChange(newConfig)
     val displayDensityUtils = DisplayDensityUtils(applicationContext)
-    val currIndex = displayDensityUtils.currentIndexForDefaultDisplay
+    val currIndex = displayDensityUtils.currentIndex
     displayDensityInteractor.updateFontScale(resources.configuration.fontScale)
-    displayDensityInteractor.updateDisplayDensity(
-      displayDensityUtils.defaultDisplayDensityValues[currIndex]
-    )
+    displayDensityUtils.values?.let {
+      displayDensityInteractor.updateDisplayDensity(it[currIndex])
+    }
   }
 
   private fun onConfirmDevice(resultCode: Int, data: Intent?) {
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/udfps/ui/viewmodel/UdfpsViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/udfps/ui/viewmodel/UdfpsViewModel.kt
index 658c6c7..df46aa4 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/udfps/ui/viewmodel/UdfpsViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/modules/enrolling/udfps/ui/viewmodel/UdfpsViewModel.kt
@@ -179,7 +179,7 @@
 
   /** Indicates if accessibility is enabled */
   val accessibilityEnabled =
-    accessibilityInteractor.isAccessibilityEnabled.shareIn(
+    accessibilityInteractor.isEnabledFlow(viewModelScope).shareIn(
       this.viewModelScope,
       SharingStarted.Eagerly,
       replay = 1,
@@ -425,7 +425,7 @@
           biometricEnvironment.enrollStageInteractor,
           biometricEnvironment.orientationInteractor,
           biometricEnvironment.udfpsEnrollInteractor,
-          biometricEnvironment.accessibilityInteractor,
+          biometricEnvironment.createAccessibilityInteractor(),
           biometricEnvironment.sensorInteractor,
           biometricEnvironment.touchEventInteractor,
           biometricEnvironment.createSensorPropertiesInteractor(),
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
index 9b2cdde..b27cfdd 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/viewmodel/FingerprintEnrollFindSensorViewModel.kt
@@ -84,7 +84,7 @@
 
   /** Represents the stream of showing udfps lottie and whether accessibility is enabled. */
   val udfpsLottieInfo: Flow<Boolean> =
-    _showUdfpsLottie.combine(accessibilityInteractor.isAccessibilityEnabled) {
+    _showUdfpsLottie.combine(accessibilityInteractor.isEnabledFlow(viewModelScope)) {
       _,
       isAccessibilityEnabled ->
       isAccessibilityEnabled
@@ -213,7 +213,7 @@
           provider[FingerprintGatekeeperViewModel::class],
           provider[BackgroundViewModel::class],
           provider[FingerprintFlowViewModel::class],
-          biometricEnvironment.accessibilityInteractor,
+          biometricEnvironment.createAccessibilityInteractor(),
           biometricEnvironment.foldStateInteractor,
           biometricEnvironment.orientationInteractor,
           biometricEnvironment.createSensorPropertiesInteractor(),
diff --git a/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt
index ba6d1a6..f4992da 100644
--- a/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt
+++ b/src/com/android/settings/bluetooth/ui/model/DeviceSettingPreferenceModel.kt
@@ -44,6 +44,7 @@
         val icon: DeviceSettingIcon? = null,
         val checked: Boolean,
         val onCheckedChange: ((Boolean) -> Unit),
+        val disabled: Boolean = false,
         val action: DeviceSettingActionModel? = null,
     ) : DeviceSettingPreferenceModel
 
diff --git a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt
index 5418a04..ad4176f 100644
--- a/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt
+++ b/src/com/android/settings/bluetooth/ui/view/DeviceDetailsFragmentFormatter.kt
@@ -139,7 +139,7 @@
             viewModel
                 .getItems(fragmentType)
                 ?.filterIsInstance<DeviceSettingConfigItemModel.BuiltinItem.BluetoothProfilesItem>()
-                ?.first()
+                ?.firstOrNull()
                 ?.invisibleProfiles
         }
 
@@ -306,6 +306,7 @@
                 override val onCheckedChange = { newChecked: Boolean ->
                     model.onCheckedChange(newChecked)
                 }
+                override val changeable = { !model.disabled }
                 override val icon: (@Composable () -> Unit)?
                     get() {
                         if (model.icon == null) {
diff --git a/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt
index a9444a5..3b7a582 100644
--- a/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt
+++ b/src/com/android/settings/bluetooth/ui/viewmodel/BluetoothDeviceDetailsViewModel.kt
@@ -58,6 +58,8 @@
             deviceSettingRepository.getDeviceSettingsConfig(cachedDevice)
         }
 
+    private val spatialAudioModel by lazy { spatialAudioInteractor.getDeviceSetting(cachedDevice) }
+
     suspend fun getItems(fragment: FragmentTypeModel): List<DeviceSettingConfigItemModel>? =
         when (fragment) {
             is FragmentTypeModel.DeviceDetailsMainFragment -> items.await()?.mainItems
@@ -81,7 +83,7 @@
         }
         return when (settingId) {
             DeviceSettingId.DEVICE_SETTING_ID_SPATIAL_AUDIO_MULTI_TOGGLE ->
-                spatialAudioInteractor.getDeviceSetting(cachedDevice)
+                spatialAudioModel
             else -> deviceSettingRepository.getDeviceSetting(cachedDevice, settingId)
         }.map { it?.toPreferenceModel() }
     }
@@ -101,6 +103,7 @@
                                 DeviceSettingStateModel.ActionSwitchPreferenceState(newState)
                             )
                         },
+                        disabled = !isAllowedChangingState,
                         action = action,
                     )
                 } else {
diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
index 66f2f1b..90ef5b9 100644
--- a/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
+++ b/src/com/android/settings/connecteddevice/BluetoothDashboardFragment.java
@@ -21,6 +21,8 @@
 import android.text.TextUtils;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -120,4 +122,9 @@
      */
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.bluetooth_screen);
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return BluetoothDashboardScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/connecteddevice/BluetoothDashboardScreen.kt b/src/com/android/settings/connecteddevice/BluetoothDashboardScreen.kt
new file mode 100644
index 0000000..66fd8b1
--- /dev/null
+++ b/src/com/android/settings/connecteddevice/BluetoothDashboardScreen.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 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.connecteddevice
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class BluetoothDashboardScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.bluetooth_settings_title
+
+    override val icon: Int
+        get() = R.drawable.ic_settings_bluetooth
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystBluetoothSwitchbarScreen()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = BluetoothDashboardFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "bluetooth_switchbar_screen"
+    }
+}
diff --git a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java
index 0b6b8c9..7ff7844 100644
--- a/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java
+++ b/src/com/android/settings/connecteddevice/audiosharing/AudioSharingDeviceAdapter.java
@@ -85,6 +85,10 @@
                 mButtonView.setText(btnText);
                 mButtonView.setOnClickListener(
                         v -> mOnClickListener.onClick(mDevices.get(position)));
+                if (position == 0) {
+                    mButtonView.setBackgroundResource(
+                            com.android.settingslib.R.drawable.audio_sharing_rounded_bg_ripple_top);
+                }
             } else {
                 Log.w(TAG, "bind view skipped due to button view is null");
             }
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 3e92d5f..117364f 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -60,6 +60,7 @@
 import com.android.settings.applications.appinfo.WriteSettingsDetails;
 import com.android.settings.applications.appops.BackgroundCheckSummary;
 import com.android.settings.applications.assist.ManageAssist;
+import com.android.settings.applications.contacts.ContactsStorageSettings;
 import com.android.settings.applications.manageapplications.ManageApplications;
 import com.android.settings.applications.managedomainurls.ManageDomainUrls;
 import com.android.settings.applications.specialaccess.deviceadmin.DeviceAdminSettings;
@@ -401,7 +402,8 @@
             AccessibilityHearingAidsFragment.class.getName(),
             HearingDevicePairingFragment.class.getName(),
             ZenModesListFragment.class.getName(),
-            ZenModeFragment.class.getName()
+            ZenModeFragment.class.getName(),
+            ContactsStorageSettings.class.getName()
     };
 
     public static final String[] SETTINGS_FOR_RESTRICTED = {
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 09b7503..8a970fb 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -712,6 +712,7 @@
         controllers.add(new WirelessDebuggingPreferenceController(context, lifecycle));
         controllers.add(new AdbAuthorizationTimeoutPreferenceController(context));
         controllers.add(new LocalTerminalPreferenceController(context));
+        controllers.add(new LinuxTerminalPreferenceController(context));
         controllers.add(new BugReportInPowerPreferenceController(context));
         controllers.add(new AutomaticSystemServerHeapDumpPreferenceController(context));
         controllers.add(new MockLocationAppPreferenceController(context, fragment));
diff --git a/src/com/android/settings/development/LinuxTerminalPreferenceController.java b/src/com/android/settings/development/LinuxTerminalPreferenceController.java
new file mode 100644
index 0000000..3e419e4
--- /dev/null
+++ b/src/com/android/settings/development/LinuxTerminalPreferenceController.java
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2024 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.development;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class LinuxTerminalPreferenceController extends DeveloperOptionsPreferenceController
+        implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+    private static final String TAG = "LinuxTerminalPrefCtrl";
+
+    private static final String ENABLE_TERMINAL_KEY = "enable_linux_terminal";
+
+    @NonNull
+    private final PackageManager mPackageManager;
+
+    @Nullable
+    private final String mTerminalPackageName;
+
+    public LinuxTerminalPreferenceController(@NonNull Context context) {
+        super(context);
+        mPackageManager = mContext.getPackageManager();
+
+        String packageName = mContext.getString(R.string.config_linux_terminal_app_package_name);
+        mTerminalPackageName =
+                isPackageInstalled(mPackageManager, packageName) ? packageName : null;
+
+        Log.d(TAG, "Terminal app package name=" + packageName + ", isAvailable=" + isAvailable());
+    }
+
+    // Avoid lazy initialization because this may be called before displayPreference().
+    @Override
+    public boolean isAvailable() {
+        // Returns true only if the terminal app is installed which only happens when the build flag
+        // RELEASE_AVF_SUPPORT_CUSTOM_VM_WITH_PARAVIRTUALIZED_DEVICES is true.
+        // TODO(b/343795511): Add explicitly check for the flag when it's accessible from Java code.
+        return getTerminalPackageName() != null;
+    }
+
+    @Override
+    @NonNull
+    public String getPreferenceKey() {
+        return ENABLE_TERMINAL_KEY;
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mPreference.setEnabled(isAvailable());
+    }
+
+    @Override
+    public boolean onPreferenceChange(
+                @NonNull Preference preference, @NonNull Object newValue) {
+        String packageName = getTerminalPackageName();
+        if (packageName == null) {
+            return false;
+        }
+
+        boolean terminalEnabled = (Boolean) newValue;
+        int state = terminalEnabled
+                ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED
+                : PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+        mPackageManager.setApplicationEnabledSetting(packageName, state, /* flags=*/ 0);
+        ((TwoStatePreference) mPreference).setChecked(terminalEnabled);
+        return true;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        String packageName = getTerminalPackageName();
+        if (packageName == null) {
+            return;
+        }
+
+        boolean isTerminalEnabled = mPackageManager.getApplicationEnabledSetting(packageName)
+                == PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+        ((TwoStatePreference) mPreference).setChecked(isTerminalEnabled);
+    }
+
+    // Can be mocked for testing
+    @VisibleForTesting
+    @Nullable
+    String getTerminalPackageName() {
+        return mTerminalPackageName;
+    }
+
+    private static boolean isPackageInstalled(PackageManager manager, String packageName) {
+        if (TextUtils.isEmpty(packageName)) {
+            return false;
+        }
+        try {
+            return manager.getPackageInfo(
+                    packageName,
+                    PackageManager.MATCH_ALL | PackageManager.MATCH_DISABLED_COMPONENTS) != null;
+        } catch (PackageManager.NameNotFoundException e) {
+            return false;
+        }
+    }
+}
diff --git a/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFeatureProvider.kt b/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFeatureProvider.kt
index e9866d7..4b2666f 100644
--- a/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFeatureProvider.kt
+++ b/src/com/android/settings/deviceinfo/hardwareinfo/HardwareInfoFeatureProvider.kt
@@ -27,5 +27,5 @@
     /**
      * The country of origin label.
      */
-    val countryIfOriginLabel: String
+    val countryOfOriginLabel: String
 }
diff --git a/src/com/android/settings/display/DisplayScreen.kt b/src/com/android/settings/display/DisplayScreen.kt
index 9886e4a..7b1d000 100644
--- a/src/com/android/settings/display/DisplayScreen.kt
+++ b/src/com/android/settings/display/DisplayScreen.kt
@@ -20,18 +20,26 @@
 import com.android.settings.R
 import com.android.settings.flags.Flags
 import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.PreferenceIconProvider
 import com.android.settingslib.metadata.ProvidePreferenceScreen
 import com.android.settingslib.metadata.preferenceHierarchy
 import com.android.settingslib.preference.PreferenceScreenCreator
 
 @ProvidePreferenceScreen
-class DisplayScreen : PreferenceScreenCreator, PreferenceAvailabilityProvider {
+class DisplayScreen :
+    PreferenceScreenCreator, PreferenceAvailabilityProvider, PreferenceIconProvider {
     override val key: String
         get() = KEY
 
     override val title: Int
         get() = R.string.display_settings
 
+    override fun getIcon(context: Context) =
+        when {
+            Flags.homepageRevamp() -> R.drawable.ic_settings_display_filled
+            else -> R.drawable.ic_settings_display_white
+        }
+
     override fun isFlagEnabled(context: Context) = Flags.catalystDisplaySettingsScreen()
 
     override fun hasCompleteHierarchy() = false
diff --git a/src/com/android/settings/display/ScreenResolutionFragment.java b/src/com/android/settings/display/ScreenResolutionFragment.java
index a2ad25f..d9718f6 100644
--- a/src/com/android/settings/display/ScreenResolutionFragment.java
+++ b/src/com/android/settings/display/ScreenResolutionFragment.java
@@ -325,11 +325,10 @@
             }
 
             final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
-            final int currentIndex = density.getCurrentIndexForDefaultDisplay();
-            final int defaultDensity = density.getDefaultDensityForDefaultDisplay();
+            final int currentIndex = density.getCurrentIndex();
+            final int defaultDensity = density.getDefaultDensity();
 
-            if (density.getDefaultDisplayDensityValues()[mCurrentIndex]
-                    == density.getDefaultDensityForDefaultDisplay()) {
+            if (density.getValues()[mCurrentIndex] == density.getDefaultDensity()) {
                 return;
             }
 
@@ -373,20 +372,19 @@
             /* If current density is the same as a default density of other resolutions,
              * then mCurrentIndex may be out of boundary.
              */
-            if (density.getDefaultDisplayDensityValues().length <= mCurrentIndex) {
-                mCurrentIndex = density.getCurrentIndexForDefaultDisplay();
+            if (density.getValues().length <= mCurrentIndex) {
+                mCurrentIndex = density.getCurrentIndex();
             }
-            if (density.getDefaultDisplayDensityValues()[mCurrentIndex]
-                    != density.getDefaultDensityForDefaultDisplay()) {
+            if (density.getValues()[mCurrentIndex] != density.getDefaultDensity()) {
                 density.setForcedDisplayDensity(mCurrentIndex);
             }
 
-            mDefaultDensity = density.getDefaultDensityForDefaultDisplay();
+            mDefaultDensity = density.getDefaultDensity();
         }
 
         private boolean isDensityChanged() {
             final DisplayDensityUtils density = new DisplayDensityUtils(mContext);
-            if (density.getDefaultDensityForDefaultDisplay() == mDefaultDensity) {
+            if (density.getDefaultDensity() == mDefaultDensity) {
                 return false;
             }
 
diff --git a/src/com/android/settings/display/ScreenZoomPreference.java b/src/com/android/settings/display/ScreenZoomPreference.java
index af77a0e..f47d7da 100644
--- a/src/com/android/settings/display/ScreenZoomPreference.java
+++ b/src/com/android/settings/display/ScreenZoomPreference.java
@@ -36,13 +36,13 @@
                 android.R.attr.preferenceStyle));
 
         final DisplayDensityUtils density = new DisplayDensityUtils(context);
-        final int defaultIndex = density.getCurrentIndexForDefaultDisplay();
+        final int defaultIndex = density.getCurrentIndex();
         if (defaultIndex < 0) {
             setVisible(false);
             setEnabled(false);
         } else if (TextUtils.isEmpty(getSummary())) {
-            final String[] entries = density.getDefaultDisplayDensityEntries();
-            final int currentIndex = density.getCurrentIndexForDefaultDisplay();
+            final String[] entries = density.getEntries();
+            final int currentIndex = density.getCurrentIndex();
             setSummary(entries[currentIndex]);
         }
     }
diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
index e922f70..28d7d58 100644
--- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java
@@ -26,13 +26,10 @@
 import android.content.pm.PackageManager;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 
-import androidx.annotation.NonNull;
 import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
@@ -48,7 +45,6 @@
 import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -67,9 +63,7 @@
  * 2. Battery related controls for app(i.e uninstall, force stop)
  */
 public class AdvancedPowerUsageDetail extends DashboardFragment
-        implements ButtonActionDialogFragment.AppButtonsDialogListener,
-                Preference.OnPreferenceClickListener,
-                Preference.OnPreferenceChangeListener {
+        implements ButtonActionDialogFragment.AppButtonsDialogListener {
     public static final String TAG = "AdvancedPowerDetail";
     public static final String EXTRA_UID = "extra_uid";
     public static final String EXTRA_PACKAGE_NAME = "extra_package_name";
@@ -86,7 +80,8 @@
     public static final String EXTRA_POWER_USAGE_AMOUNT = "extra_power_usage_amount";
 
     private static final String KEY_PREF_HEADER = "header_view";
-    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+    private static final String KEY_BACKGROUND_USAGE_ALLOWABILITY_CATEGORY =
+            "background_usage_allowability_category";
 
     private static final int REQUEST_UNINSTALL = 0;
     private static final int REQUEST_REMOVE_DEVICE_ADMIN = 1;
@@ -96,11 +91,9 @@
     private AppButtonsPreferenceController mAppButtonsPreferenceController;
     private PowerUsageTimeController mPowerUsageTimeController;
 
-    @VisibleForTesting LayoutPreference mHeaderPreference;
     @VisibleForTesting ApplicationsState mState;
     @VisibleForTesting ApplicationsState.AppEntry mAppEntry;
     @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-    @VisibleForTesting PrimarySwitchPreference mAllowBackgroundUsagePreference;
 
     @VisibleForTesting @BatteryOptimizeUtils.OptimizationMode
     int mOptimizationMode = BatteryOptimizeUtils.MODE_UNKNOWN;
@@ -242,17 +235,11 @@
     public void onAttach(Activity activity) {
         super.onAttach(activity);
 
+        final Bundle bundle = getArguments();
+        final int uid = bundle.getInt(EXTRA_UID, 0);
+        final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
+        mBatteryOptimizeUtils = new BatteryOptimizeUtils(getContext(), uid, packageName);
         mState = ApplicationsState.getInstance(getActivity().getApplication());
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
-        onCreateBackgroundUsageState(packageName);
-        mHeaderPreference = findPreference(KEY_PREF_HEADER);
-
         if (packageName != null) {
             mAppEntry = mState.getEntry(packageName, UserHandle.myUserId());
         }
@@ -264,7 +251,6 @@
 
         initHeader();
         mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
-        initFooter();
         mLogStringBuilder = new StringBuilder("onResume mode = ").append(mOptimizationMode);
     }
 
@@ -299,7 +285,8 @@
 
     @VisibleForTesting
     void initHeader() {
-        final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
+        final LayoutPreference headerPreference = findPreference(KEY_PREF_HEADER);
+        final View appSnippet = headerPreference.findViewById(R.id.entity_header);
         final Activity context = getActivity();
         final Bundle bundle = getArguments();
         EntityHeaderController controller =
@@ -340,31 +327,6 @@
         controller.done(true /* rebindActions */);
     }
 
-    @VisibleForTesting
-    void initFooter() {
-        final String stateString;
-        final String detailInfoString;
-        final Context context = getContext();
-
-        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
-            // Present optimized only string when the package name is invalid.
-            stateString = context.getString(R.string.manager_battery_usage_optimized_only);
-            detailInfoString =
-                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
-        } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
-            // Present unrestricted only string when the package is system or default active app.
-            stateString = context.getString(R.string.manager_battery_usage_unrestricted_only);
-            detailInfoString =
-                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
-        } else {
-            // Present default string to normal app.
-            detailInfoString =
-                    context.getString(
-                            R.string.manager_battery_usage_allow_background_usage_summary);
-        }
-        mAllowBackgroundUsagePreference.setSummary(detailInfoString);
-    }
-
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.FUELGAUGE_POWER_USAGE_DETAIL;
@@ -384,7 +346,6 @@
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
         final Bundle bundle = getArguments();
-        final int uid = bundle.getInt(EXTRA_UID, 0);
         final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
 
         mAppButtonsPreferenceController =
@@ -401,7 +362,12 @@
             controllers.add(mPowerUsageTimeController);
         }
         controllers.add(mAppButtonsPreferenceController);
-        controllers.add(new AllowBackgroundPreferenceController(context, uid, packageName));
+        controllers.add(
+                new BackgroundUsageAllowabilityPreferenceController(
+                        context,
+                        /* dashboardFragment= */ this,
+                        KEY_BACKGROUND_USAGE_ALLOWABILITY_CATEGORY,
+                        mBatteryOptimizeUtils));
 
         return controllers;
     }
@@ -421,34 +387,6 @@
         }
     }
 
-    @Override
-    public boolean onPreferenceClick(Preference preference) {
-        if (!(preference instanceof PrimarySwitchPreference)
-                || !TextUtils.equals(preference.getKey(), KEY_ALLOW_BACKGROUND_USAGE)) {
-            return false;
-        }
-        PowerBackgroundUsageDetail.startPowerBackgroundUsageDetailPage(
-                getContext(), getArguments());
-        return true;
-    }
-
-    @Override
-    public boolean onPreferenceChange(@NonNull Preference preference, Object newValue) {
-        if (!(preference instanceof PrimarySwitchPreference)
-                || !TextUtils.equals(preference.getKey(), KEY_ALLOW_BACKGROUND_USAGE)) {
-            return false;
-        }
-        if (newValue instanceof Boolean) {
-            final boolean isAllowBackgroundUsage = (boolean) newValue;
-            mBatteryOptimizeUtils.setAppUsageState(
-                    isAllowBackgroundUsage
-                            ? BatteryOptimizeUtils.MODE_OPTIMIZED
-                            : BatteryOptimizeUtils.MODE_RESTRICTED,
-                    Action.APPLY);
-        }
-        return true;
-    }
-
     private void logMetricCategory(int currentOptimizeMode) {
         if (currentOptimizeMode == mOptimizationMode) {
             return;
@@ -482,16 +420,4 @@
                                     getArguments().getInt(EXTRA_POWER_USAGE_AMOUNT));
                 });
     }
-
-    private void onCreateBackgroundUsageState(String packageName) {
-        mAllowBackgroundUsagePreference = findPreference(KEY_ALLOW_BACKGROUND_USAGE);
-        if (mAllowBackgroundUsagePreference != null) {
-            mAllowBackgroundUsagePreference.setOnPreferenceClickListener(this);
-            mAllowBackgroundUsagePreference.setOnPreferenceChangeListener(this);
-        }
-
-        mBatteryOptimizeUtils =
-                new BatteryOptimizeUtils(
-                        getContext(), getArguments().getInt(EXTRA_UID), packageName);
-    }
 }
diff --git a/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java b/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java
deleted file mode 100644
index 52cec795..0000000
--- a/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceController.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * 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;
-
-import android.content.Context;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.PrimarySwitchPreference;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.widget.MainSwitchPreference;
-
-/** Controller to update the app background usage state */
-public class AllowBackgroundPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String TAG = "AllowBackgroundPreferenceController";
-
-    @VisibleForTesting static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
-
-    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    public AllowBackgroundPreferenceController(Context context, int uid, String packageName) {
-        super(context);
-        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
-    }
-
-    private void setChecked(Preference preference, boolean checked) {
-        if (preference instanceof PrimarySwitchPreference) {
-            ((PrimarySwitchPreference) preference).setChecked(checked);
-        } else if (preference instanceof MainSwitchPreference) {
-            ((MainSwitchPreference) preference).setChecked(checked);
-        }
-    }
-
-    private void setEnabled(Preference preference, boolean enabled) {
-        if (preference instanceof PrimarySwitchPreference) {
-            ((PrimarySwitchPreference) preference).setEnabled(enabled);
-            ((PrimarySwitchPreference) preference).setSwitchEnabled(enabled);
-        } else if (preference instanceof MainSwitchPreference) {
-            ((MainSwitchPreference) preference).setEnabled(enabled);
-        }
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        setEnabled(preference, mBatteryOptimizeUtils.isOptimizeModeMutable());
-
-        final boolean isAllowBackground =
-                mBatteryOptimizeUtils.getAppOptimizationMode()
-                        != BatteryOptimizeUtils.MODE_RESTRICTED;
-        setChecked(preference, isAllowBackground);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_ALLOW_BACKGROUND_USAGE;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return getPreferenceKey().equals(preference.getKey());
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceController.java b/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceController.java
new file mode 100644
index 0000000..bce439b
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceController.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (C) 2024 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;
+
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.PrimarySwitchPreference;
+
+/** Controller to update the manage battery usage preference in App Battery Usage page */
+public class BackgroundUsageAllowabilityPreferenceController extends BasePreferenceController
+        implements PreferenceControllerMixin {
+
+    @VisibleForTesting
+    static final String KEY_BACKGROUND_USAGE_ALLOWABILITY_SWITCH =
+            "background_usage_allowability_switch";
+
+    private final BatteryOptimizeUtils mBatteryOptimizeUtils;
+    private final DashboardFragment mDashboardFragment;
+    @Nullable @VisibleForTesting PrimarySwitchPreference mBackgroundUsageAllowabilityPreference;
+
+    public BackgroundUsageAllowabilityPreferenceController(
+            @NonNull Context context,
+            @NonNull DashboardFragment dashboardFragment,
+            @NonNull String preferenceKey,
+            @NonNull BatteryOptimizeUtils batteryOptimizeUtils) {
+        super(context, preferenceKey);
+        mDashboardFragment = dashboardFragment;
+        mBatteryOptimizeUtils = batteryOptimizeUtils;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        updatePreferences(mBatteryOptimizeUtils.getAppOptimizationMode());
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mBackgroundUsageAllowabilityPreference =
+                screen.findPreference(KEY_BACKGROUND_USAGE_ALLOWABILITY_SWITCH);
+        initPreferences();
+    }
+
+    @VisibleForTesting
+    void initPreferences() {
+        if (mBackgroundUsageAllowabilityPreference == null) {
+            return;
+        }
+        final String stateString;
+        final String detailInfoString;
+        boolean isPreferenceEnabled = true;
+        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
+            // Present "Optimized" only string if the package name is invalid.
+            stateString = mContext.getString(R.string.manager_battery_usage_optimized_only);
+            detailInfoString =
+                    mContext.getString(R.string.manager_battery_usage_footer_limited, stateString);
+            isPreferenceEnabled = false;
+        } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
+            // Present "Unrestricted" only string if the package is system important apps.
+            stateString = mContext.getString(R.string.manager_battery_usage_unrestricted_only);
+            detailInfoString =
+                    mContext.getString(R.string.manager_battery_usage_footer_limited, stateString);
+            isPreferenceEnabled = false;
+        } else {
+            // Present default string to normal app.
+            detailInfoString =
+                    mContext.getString(
+                            R.string.manager_battery_usage_allow_background_usage_summary);
+        }
+        mBackgroundUsageAllowabilityPreference.setEnabled(isPreferenceEnabled);
+        mBackgroundUsageAllowabilityPreference.setSwitchEnabled(isPreferenceEnabled);
+        mBackgroundUsageAllowabilityPreference.setSummary(detailInfoString);
+        if (isPreferenceEnabled) {
+            mBackgroundUsageAllowabilityPreference.setOnPreferenceClickListener(
+                    preference -> {
+                        PowerBackgroundUsageDetail.startPowerBackgroundUsageDetailPage(
+                                mContext, mDashboardFragment.getArguments());
+                        return true;
+                    });
+            mBackgroundUsageAllowabilityPreference.setOnPreferenceChangeListener(
+                    (preference, isAllowBackground) -> {
+                        handleBatteryOptimizeModeUpdated(
+                                (boolean) isAllowBackground
+                                        ? BatteryOptimizeUtils.MODE_OPTIMIZED
+                                        : BatteryOptimizeUtils.MODE_RESTRICTED);
+                        return true;
+                    });
+        }
+    }
+
+    @VisibleForTesting
+    void handleBatteryOptimizeModeUpdated(int newBatteryOptimizeMode) {
+        if (mBatteryOptimizeUtils.getAppOptimizationMode() == newBatteryOptimizeMode) {
+            Log.w(TAG, "ignore same mode for: " + mBatteryOptimizeUtils.getPackageName());
+            return;
+        }
+        mBatteryOptimizeUtils.setAppUsageState(
+                newBatteryOptimizeMode, BatteryOptimizeHistoricalLogEntry.Action.APPLY);
+        updatePreferences(newBatteryOptimizeMode);
+    }
+
+    @VisibleForTesting
+    void updatePreferences(int optimizationMode) {
+        if (mBackgroundUsageAllowabilityPreference == null) {
+            return;
+        }
+        mBackgroundUsageAllowabilityPreference.setChecked(
+                optimizationMode != BatteryOptimizeUtils.MODE_RESTRICTED);
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
index 5822397..651a1b2 100644
--- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
+++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
@@ -196,7 +196,9 @@
                     appOptModeMap.containsKey(info.uid)
                             ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                             : BatteryOptimizeUtils.getAppOptimizationMode(
-                                    mode, allowlistedApps.contains(info.packageName));
+                                    mode,
+                                    allowlistedApps.contains(info.packageName),
+                                    /* ignoreUnknownMode= */ false);
             // Ignores default optimized/unknown state or system/default apps.
             if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
                     || optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceController.java b/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceController.java
new file mode 100644
index 0000000..0a4cbac
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceController.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (C) 2024 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;
+
+import android.content.Context;
+import android.util.Log;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+/** Controller to update the app background usage mode state in Allow background usage page */
+public class BatteryOptimizationModePreferenceController extends BasePreferenceController
+        implements PreferenceControllerMixin {
+
+    @VisibleForTesting
+    static final String KEY_BACKGROUND_USAGE_ALLOWABILITY_SWITCH =
+            "background_usage_allowability_switch";
+
+    @VisibleForTesting static final String KEY_OPTIMIZED_PREF = "optimized_preference";
+    @VisibleForTesting static final String KEY_UNRESTRICTED_PREF = "unrestricted_preference";
+
+    private final BatteryOptimizeUtils mBatteryOptimizeUtils;
+    @Nullable @VisibleForTesting MainSwitchPreference mBackgroundUsageAllowabilityPreference;
+    @Nullable @VisibleForTesting SelectorWithWidgetPreference mOptimizedPreference;
+    @Nullable @VisibleForTesting SelectorWithWidgetPreference mUnrestrictedPreference;
+
+    public BatteryOptimizationModePreferenceController(
+            @NonNull Context context,
+            @NonNull String preferenceKey,
+            @NonNull BatteryOptimizeUtils batteryOptimizeUtils) {
+        super(context, preferenceKey);
+        mBatteryOptimizeUtils = batteryOptimizeUtils;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return AVAILABLE;
+    }
+
+    @Override
+    public void updateState(@NonNull Preference preference) {
+        updatePreferences(mBatteryOptimizeUtils.getAppOptimizationMode());
+    }
+
+    @Override
+    public void displayPreference(@NonNull PreferenceScreen screen) {
+        super.displayPreference(screen);
+        mBackgroundUsageAllowabilityPreference =
+                screen.findPreference(KEY_BACKGROUND_USAGE_ALLOWABILITY_SWITCH);
+        mOptimizedPreference = screen.findPreference(KEY_OPTIMIZED_PREF);
+        mUnrestrictedPreference = screen.findPreference(KEY_UNRESTRICTED_PREF);
+        initPreferences();
+    }
+
+    @VisibleForTesting
+    void initPreferences() {
+        if (mBackgroundUsageAllowabilityPreference == null
+                || mOptimizedPreference == null
+                || mUnrestrictedPreference == null) {
+            return;
+        }
+        final boolean isEnabled = mBatteryOptimizeUtils.isOptimizeModeMutable();
+        mBackgroundUsageAllowabilityPreference.setEnabled(isEnabled);
+        mOptimizedPreference.setEnabled(isEnabled);
+        mUnrestrictedPreference.setEnabled(isEnabled);
+        if (isEnabled) {
+            mBackgroundUsageAllowabilityPreference.setOnPreferenceChangeListener(
+                    (preference, isAllowBackground) -> {
+                        handleBatteryOptimizeModeUpdated(
+                                (boolean) isAllowBackground
+                                        ? BatteryOptimizeUtils.MODE_OPTIMIZED
+                                        : BatteryOptimizeUtils.MODE_RESTRICTED);
+                        return true;
+                    });
+            mOptimizedPreference.setOnPreferenceClickListener(
+                    preference -> {
+                        handleBatteryOptimizeModeUpdated(BatteryOptimizeUtils.MODE_OPTIMIZED);
+                        return true;
+                    });
+            mUnrestrictedPreference.setOnPreferenceClickListener(
+                    preference -> {
+                        handleBatteryOptimizeModeUpdated(BatteryOptimizeUtils.MODE_UNRESTRICTED);
+                        return true;
+                    });
+        }
+    }
+
+    @VisibleForTesting
+    void updatePreferences(int optimizationMode) {
+        if (mBackgroundUsageAllowabilityPreference == null
+                || mOptimizedPreference == null
+                || mUnrestrictedPreference == null) {
+            return;
+        }
+        final boolean isAllowBackground = optimizationMode != BatteryOptimizeUtils.MODE_RESTRICTED;
+        mBackgroundUsageAllowabilityPreference.setChecked(isAllowBackground);
+        mOptimizedPreference.setEnabled(isAllowBackground);
+        mUnrestrictedPreference.setEnabled(isAllowBackground);
+        mOptimizedPreference.setChecked(optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED);
+        mUnrestrictedPreference.setChecked(
+                optimizationMode == BatteryOptimizeUtils.MODE_UNRESTRICTED);
+    }
+
+    @VisibleForTesting
+    void handleBatteryOptimizeModeUpdated(int newBatteryOptimizeMode) {
+        if (mBatteryOptimizeUtils.getAppOptimizationMode() == newBatteryOptimizeMode) {
+            Log.w(TAG, "ignore same mode for: " + mBatteryOptimizeUtils.getPackageName());
+            return;
+        }
+        mBatteryOptimizeUtils.setAppUsageState(
+                newBatteryOptimizeMode, BatteryOptimizeHistoricalLogEntry.Action.APPLY);
+        updatePreferences(newBatteryOptimizeMode);
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
index 3233f0d..6c95823 100644
--- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
+++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java
@@ -100,7 +100,8 @@
 
     /** Gets the {@link OptimizationMode} based on mode and allowed list. */
     @OptimizationMode
-    public static int getAppOptimizationMode(int mode, boolean isAllowListed) {
+    public static int getAppOptimizationMode(
+            int mode, boolean isAllowListed, boolean ignoreUnknownMode) {
         if (!isAllowListed && mode == AppOpsManager.MODE_IGNORED) {
             return MODE_RESTRICTED;
         } else if (isAllowListed && mode == AppOpsManager.MODE_ALLOWED) {
@@ -108,13 +109,15 @@
         } else if (!isAllowListed && mode == AppOpsManager.MODE_ALLOWED) {
             return MODE_OPTIMIZED;
         } else {
-            return MODE_UNKNOWN;
+            // MODE_UNKNOWN = isAllowListed + AppOpsManager.MODE_IGNORED
+            // Return Unrestricted mode for Unknown mode since it is in allowlist.
+            return ignoreUnknownMode ? MODE_UNRESTRICTED : MODE_UNKNOWN;
         }
     }
 
     /** Gets the {@link OptimizationMode} for associated app. */
     @OptimizationMode
-    public int getAppOptimizationMode(boolean refreshList) {
+    public int getAppOptimizationMode(boolean refreshList, boolean ignoreUnknownMode) {
         if (refreshList) {
             mPowerAllowListBackend.refreshList();
         }
@@ -127,13 +130,13 @@
                 String.format(
                         "refresh %s state, allowlisted = %s, mode = %d",
                         mPackageName, mAllowListed, mMode));
-        return getAppOptimizationMode(mMode, mAllowListed);
+        return getAppOptimizationMode(mMode, mAllowListed, ignoreUnknownMode);
     }
 
     /** Gets the {@link OptimizationMode} for associated app. */
     @OptimizationMode
     public int getAppOptimizationMode() {
-        return getAppOptimizationMode(true);
+        return getAppOptimizationMode(/* refreshList= */ true, /* ignoreUnknownMode= */ true);
     }
 
     /** Resets optimization mode for all applications. */
@@ -246,10 +249,11 @@
             @OptimizationMode
             final int optimizationMode =
                     getAppOptimizationMode(
-                            mode, allowlistBackend.isAllowlisted(info.packageName, info.uid));
-            // Ignores default optimized/unknown state or system/default apps.
+                            mode,
+                            allowlistBackend.isAllowlisted(info.packageName, info.uid),
+                            /* ignoreUnknownMode= */ false);
+            // Ignores default optimized state or system/default apps.
             if (optimizationMode == MODE_OPTIMIZED
-                    || optimizationMode == MODE_UNKNOWN
                     || isSystemOrDefaultApp(
                             context, allowlistBackend, info.packageName, info.uid)) {
                 continue;
@@ -374,7 +378,8 @@
                         "\tStandbyMode: %s, allowListed: %s, mode: %s",
                         appStandbyMode,
                         allowListed,
-                        getAppOptimizationMode(appStandbyMode, allowListed));
+                        getAppOptimizationMode(
+                                appStandbyMode, allowListed, /* ignoreUnknownMode= */ false));
     }
 
     private static @DataChangeReason int toChangeReason(Action action) {
diff --git a/src/com/android/settings/fuelgauge/BatterySettingsStorage.java b/src/com/android/settings/fuelgauge/BatterySettingsStorage.java
index 33a8025..eeebbec 100644
--- a/src/com/android/settings/fuelgauge/BatterySettingsStorage.java
+++ b/src/com/android/settings/fuelgauge/BatterySettingsStorage.java
@@ -347,7 +347,9 @@
                         appOptModeMap.containsKey(info.uid)
                                 ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                                 : BatteryOptimizeUtils.getAppOptimizationMode(
-                                        mode, mAllowlistedApps.contains(info.packageName));
+                                        mode,
+                                        mAllowlistedApps.contains(info.packageName),
+                                        /* ignoreUnknownMode= */ false);
                 // Ignores default optimized/unknown state or system/default apps.
                 if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
                         || optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
diff --git a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java b/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java
deleted file mode 100644
index a26ab7a..0000000
--- a/src/com/android/settings/fuelgauge/OptimizedPreferenceController.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-import android.content.Context;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-public class OptimizedPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String TAG = "OPTIMIZED_PREF";
-
-    @VisibleForTesting static final String KEY_OPTIMIZED_PREF = "optimized_preference";
-    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    public OptimizedPreferenceController(Context context, int uid, String packageName) {
-        super(context);
-        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        preference.setEnabled(mBatteryOptimizeUtils.isSelectorPreferenceEnabled());
-
-        final boolean isOptimized =
-                mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()
-                        || mBatteryOptimizeUtils.getAppOptimizationMode()
-                                == BatteryOptimizeUtils.MODE_OPTIMIZED;
-        ((SelectorWithWidgetPreference) preference).setChecked(isOptimized);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_OPTIMIZED_PREF;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return getPreferenceKey().equals(preference.getKey());
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
index e59cc4ad..dadf2e8 100644
--- a/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
+++ b/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetail.java
@@ -24,11 +24,8 @@
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
-import android.widget.CompoundButton;
-import android.widget.CompoundButton.OnCheckedChangeListener;
 
 import androidx.annotation.VisibleForTesting;
 
@@ -44,8 +41,6 @@
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.LayoutPreference;
-import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -53,8 +48,7 @@
 import java.util.concurrent.Executors;
 
 /** Allow background usage fragment for each app */
-public class PowerBackgroundUsageDetail extends DashboardFragment
-        implements SelectorWithWidgetPreference.OnClickListener, OnCheckedChangeListener {
+public class PowerBackgroundUsageDetail extends DashboardFragment {
     private static final String TAG = "PowerBackgroundUsageDetail";
 
     public static final String EXTRA_UID = "extra_uid";
@@ -63,21 +57,15 @@
     public static final String EXTRA_POWER_USAGE_AMOUNT = "extra_power_usage_amount";
     public static final String EXTRA_ICON_ID = "extra_icon_id";
     private static final String KEY_PREF_HEADER = "header_view";
-    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_preference";
-    private static final String KEY_PREF_OPTIMIZED = "optimized_preference";
-    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
     private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference";
+    private static final String KEY_BATTERY_OPTIMIZATION_MODE_CATEGORY =
+            "battery_optimization_mode_category";
 
     private final ExecutorService mExecutor = Executors.newSingleThreadExecutor();
 
-    @VisibleForTesting LayoutPreference mHeaderPreference;
     @VisibleForTesting ApplicationsState mState;
     @VisibleForTesting ApplicationsState.AppEntry mAppEntry;
     @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-    @VisibleForTesting SelectorWithWidgetPreference mOptimizePreference;
-    @VisibleForTesting SelectorWithWidgetPreference mUnrestrictedPreference;
-    @VisibleForTesting MainSwitchPreference mMainSwitchPreference;
-    @VisibleForTesting FooterPreference mFooterPreference;
     @VisibleForTesting StringBuilder mLogStringBuilder;
 
     @VisibleForTesting @BatteryOptimizeUtils.OptimizationMode
@@ -87,17 +75,11 @@
     public void onAttach(Activity activity) {
         super.onAttach(activity);
 
+        final Bundle bundle = getArguments();
+        final int uid = bundle.getInt(EXTRA_UID, 0);
+        final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
+        mBatteryOptimizeUtils = new BatteryOptimizeUtils(getContext(), uid, packageName);
         mState = ApplicationsState.getInstance(getActivity().getApplication());
-    }
-
-    @Override
-    public void onCreate(Bundle icicle) {
-        super.onCreate(icicle);
-
-        final String packageName = getArguments().getString(EXTRA_PACKAGE_NAME);
-        onCreateBackgroundUsageState(packageName);
-        mHeaderPreference = findPreference(KEY_PREF_HEADER);
-
         if (packageName != null) {
             mAppEntry = mState.getEntry(packageName, UserHandle.myUserId());
         }
@@ -107,8 +89,8 @@
     public void onResume() {
         super.onResume();
         initHeader();
-        mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
         initFooter();
+        mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
         mLogStringBuilder = new StringBuilder("onResume mode = ").append(mOptimizationMode);
     }
 
@@ -137,34 +119,16 @@
     }
 
     @Override
-    public void onRadioButtonClicked(SelectorWithWidgetPreference selected) {
-        final String selectedKey = selected == null ? null : selected.getKey();
-        updateSelectorPreferenceState(mUnrestrictedPreference, selectedKey);
-        updateSelectorPreferenceState(mOptimizePreference, selectedKey);
-        mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference(), Action.APPLY);
-    }
-
-    @Override
-    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
-        mMainSwitchPreference.setChecked(isChecked);
-        updateSelectorPreference(isChecked);
-    }
-
-    @Override
     public int getMetricsCategory() {
         return SettingsEnums.FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND;
     }
 
     @Override
     protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        final Bundle bundle = getArguments();
-        final int uid = bundle.getInt(EXTRA_UID, 0);
-        final String packageName = bundle.getString(EXTRA_PACKAGE_NAME);
-
-        controllers.add(new AllowBackgroundPreferenceController(context, uid, packageName));
-        controllers.add(new OptimizedPreferenceController(context, uid, packageName));
-        controllers.add(new UnrestrictedPreferenceController(context, uid, packageName));
+        final List<AbstractPreferenceController> controllers = new ArrayList<>(1);
+        controllers.add(
+                new BatteryOptimizationModePreferenceController(
+                        context, KEY_BATTERY_OPTIMIZATION_MODE_CATEGORY, mBatteryOptimizeUtils));
 
         return controllers;
     }
@@ -179,26 +143,6 @@
         return TAG;
     }
 
-    @VisibleForTesting
-    void updateSelectorPreference(boolean isEnabled) {
-        mOptimizePreference.setEnabled(isEnabled);
-        mUnrestrictedPreference.setEnabled(isEnabled);
-        onRadioButtonClicked(isEnabled ? mOptimizePreference : null);
-    }
-
-    @VisibleForTesting
-    int getSelectedPreference() {
-        if (!mMainSwitchPreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_RESTRICTED;
-        } else if (mUnrestrictedPreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_UNRESTRICTED;
-        } else if (mOptimizePreference.isChecked()) {
-            return BatteryOptimizeUtils.MODE_OPTIMIZED;
-        } else {
-            return BatteryOptimizeUtils.MODE_UNKNOWN;
-        }
-    }
-
     static void startPowerBackgroundUsageDetailPage(Context context, Bundle args) {
         new SubSettingLauncher(context)
                 .setDestination(PowerBackgroundUsageDetail.class.getName())
@@ -209,7 +153,11 @@
 
     @VisibleForTesting
     void initHeader() {
-        final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);
+        final LayoutPreference headerPreference = findPreference(KEY_PREF_HEADER);
+        if (headerPreference == null) {
+            return;
+        }
+        final View appSnippet = headerPreference.findViewById(R.id.entity_header);
         final Activity context = getActivity();
         final Bundle bundle = getArguments();
         EntityHeaderController controller =
@@ -239,58 +187,25 @@
 
     @VisibleForTesting
     void initFooter() {
-        final String stateString;
-        final String footerString;
-        final Context context = getContext();
-
-        if (mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()) {
-            // Present optimized only string when the package name is invalid.
-            stateString = context.getString(R.string.manager_battery_usage_optimized_only);
-            footerString =
-                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
-        } else if (mBatteryOptimizeUtils.isSystemOrDefaultApp()) {
-            // Present unrestricted only string when the package is system or default active app.
-            stateString = context.getString(R.string.manager_battery_usage_unrestricted_only);
-            footerString =
-                    context.getString(R.string.manager_battery_usage_footer_limited, stateString);
-        } else {
-            // Present default string to normal app.
-            footerString = context.getString(R.string.manager_battery_usage_footer);
+        final FooterPreference footerPreference = findPreference(KEY_FOOTER_PREFERENCE);
+        if (footerPreference == null) {
+            return;
         }
-        mFooterPreference.setTitle(footerString);
+        final Context context = getContext();
+        footerPreference.setTitle(context.getString(R.string.manager_battery_usage_footer));
         final Intent helpIntent =
                 HelpUtils.getHelpIntent(
                         context,
                         context.getString(R.string.help_url_app_usage_settings),
                         /* backupContext= */ "");
         if (helpIntent != null) {
-            mFooterPreference.setLearnMoreAction(
+            footerPreference.setLearnMoreAction(
                     v -> startActivityForResult(helpIntent, /* requestCode= */ 0));
-            mFooterPreference.setLearnMoreText(
+            footerPreference.setLearnMoreText(
                     context.getString(R.string.manager_battery_usage_link_a11y));
         }
     }
 
-    private void onCreateBackgroundUsageState(String packageName) {
-        mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
-        mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
-        mMainSwitchPreference = findPreference(KEY_ALLOW_BACKGROUND_USAGE);
-        mFooterPreference = findPreference(KEY_FOOTER_PREFERENCE);
-
-        mOptimizePreference.setOnClickListener(this);
-        mUnrestrictedPreference.setOnClickListener(this);
-        mMainSwitchPreference.addOnSwitchChangeListener(this);
-
-        mBatteryOptimizeUtils =
-                new BatteryOptimizeUtils(
-                        getContext(), getArguments().getInt(EXTRA_UID), packageName);
-    }
-
-    private void updateSelectorPreferenceState(
-            SelectorWithWidgetPreference preference, String selectedKey) {
-        preference.setChecked(TextUtils.equals(selectedKey, preference.getKey()));
-    }
-
     private void logMetricCategory(int currentOptimizeMode) {
         if (currentOptimizeMode == mOptimizationMode) {
             return;
diff --git a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
index d948cc0..9b070f9 100644
--- a/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
+++ b/src/com/android/settings/fuelgauge/RequestIgnoreBatteryOptimizations.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.fuelgauge;
 
+import static com.android.settings.fuelgauge.BatteryOptimizeUtils.MODE_UNRESTRICTED;
+
 import android.Manifest;
 import android.content.DialogInterface;
 import android.content.pm.ApplicationInfo;
@@ -24,20 +26,20 @@
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.PowerManager;
-import android.os.PowerWhitelistManager;
+import android.text.TextUtils;
 import android.util.Log;
 
 import com.android.internal.app.AlertActivity;
 import com.android.internal.app.AlertController;
 import com.android.settings.R;
+import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 
 public class RequestIgnoreBatteryOptimizations extends AlertActivity
         implements DialogInterface.OnClickListener {
     private static final String TAG = "RequestIgnoreBatteryOptimizations";
     private static final boolean DEBUG = false;
 
-    private PowerWhitelistManager mPowerWhitelistManager;
-    private String mPackageName;
+    private ApplicationInfo mApplicationInfo;
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -47,8 +49,6 @@
                         android.view.WindowManager.LayoutParams
                                 .SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS);
 
-        mPowerWhitelistManager = getSystemService(PowerWhitelistManager.class);
-
         Uri data = getIntent().getData();
         if (data == null) {
             debugLog(
@@ -56,17 +56,18 @@
             finish();
             return;
         }
-        mPackageName = data.getSchemeSpecificPart();
-        if (mPackageName == null) {
+        final String packageName = data.getSchemeSpecificPart();
+        if (TextUtils.isEmpty(packageName)) {
             debugLog(
                     "No data supplied for IGNORE_BATTERY_OPTIMIZATION_SETTINGS in: " + getIntent());
             finish();
             return;
         }
 
+        // Package in Unrestricted mode already ignoring the battery optimizations.
         PowerManager power = getSystemService(PowerManager.class);
-        if (power.isIgnoringBatteryOptimizations(mPackageName)) {
-            debugLog("Not should prompt, already ignoring optimizations: " + mPackageName);
+        if (power.isIgnoringBatteryOptimizations(packageName)) {
+            debugLog("Not should prompt, already ignoring optimizations: " + packageName);
             finish();
             return;
         }
@@ -74,29 +75,28 @@
         if (getPackageManager()
                         .checkPermission(
                                 Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS,
-                                mPackageName)
+                                packageName)
                 != PackageManager.PERMISSION_GRANTED) {
             debugLog(
                     "Requested package "
-                            + mPackageName
+                            + packageName
                             + " does not hold permission "
                             + Manifest.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
             finish();
             return;
         }
 
-        ApplicationInfo ai;
         try {
-            ai = getPackageManager().getApplicationInfo(mPackageName, 0);
+            mApplicationInfo = getPackageManager().getApplicationInfo(packageName, 0);
         } catch (PackageManager.NameNotFoundException e) {
-            debugLog("Requested package doesn't exist: " + mPackageName);
+            debugLog("Requested package doesn't exist: " + packageName);
             finish();
             return;
         }
 
         final AlertController.AlertParams p = mAlertParams;
         final CharSequence appLabel =
-                ai.loadSafeLabel(
+                mApplicationInfo.loadSafeLabel(
                         getPackageManager(),
                         PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX,
                         PackageItemInfo.SAFE_LABEL_FLAG_TRIM
@@ -114,7 +114,12 @@
     public void onClick(DialogInterface dialog, int which) {
         switch (which) {
             case BUTTON_POSITIVE:
-                mPowerWhitelistManager.addToWhitelist(mPackageName);
+                BatteryOptimizeUtils batteryOptimizeUtils =
+                        new BatteryOptimizeUtils(
+                                getApplicationContext(),
+                                mApplicationInfo.uid,
+                                mApplicationInfo.packageName);
+                batteryOptimizeUtils.setAppUsageState(MODE_UNRESTRICTED, Action.APPLY);
                 break;
             case BUTTON_NEGATIVE:
                 break;
diff --git a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java b/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java
deleted file mode 100644
index 652941b..0000000
--- a/src/com/android/settings/fuelgauge/UnrestrictedPreferenceController.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-import android.content.Context;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-public class UnrestrictedPreferenceController extends AbstractPreferenceController
-        implements PreferenceControllerMixin {
-
-    private static final String TAG = "UNRESTRICTED_PREF";
-
-    @VisibleForTesting static final String KEY_UNRESTRICTED_PREF = "unrestricted_preference";
-
-    @VisibleForTesting BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    public UnrestrictedPreferenceController(Context context, int uid, String packageName) {
-        super(context);
-        mBatteryOptimizeUtils = new BatteryOptimizeUtils(context, uid, packageName);
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        preference.setEnabled(mBatteryOptimizeUtils.isSelectorPreferenceEnabled());
-
-        final boolean isUnrestricted =
-                mBatteryOptimizeUtils.getAppOptimizationMode()
-                        == BatteryOptimizeUtils.MODE_UNRESTRICTED;
-        ((SelectorWithWidgetPreference) preference).setChecked(isUnrestricted);
-    }
-
-    @Override
-    public boolean isAvailable() {
-        return true;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY_UNRESTRICTED_PREF;
-    }
-
-    @Override
-    public boolean handlePreferenceTreeClick(Preference preference) {
-        return getPreferenceKey().equals(preference.getKey());
-    }
-}
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreen.kt b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreen.kt
new file mode 100644
index 0000000..2226e37
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreen.kt
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 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.batterysaver
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class BatterySaverScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.battery_saver
+
+    override val keywords: Int
+        get() = R.string.keywords_battery_saver
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystBatterySaverScreen()
+
+    override fun fragmentClass() = BatterySaverSettings::class.java
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "battery_saver_screen"
+    }
+}
diff --git a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
index 8e281de..df6c1d9 100644
--- a/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
+++ b/src/com/android/settings/fuelgauge/batterysaver/BatterySaverSettings.java
@@ -17,8 +17,11 @@
 package com.android.settings.fuelgauge.batterysaver;
 
 import android.app.settings.SettingsEnums;
+import android.content.Context;
 import android.text.TextUtils;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -93,4 +96,9 @@
             pref.setLearnMoreText(getString(R.string.battery_saver_link_a11y));
         }
     }
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return BatterySaverScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
index e6f622c..74c9c68 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipPreferenceController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.fuelgauge.batterytip;
 
+import android.app.Activity;
 import android.content.Context;
 import android.os.BadParcelableException;
 import android.os.Bundle;
@@ -27,7 +28,6 @@
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
-import com.android.settings.SettingsActivity;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
@@ -52,7 +52,7 @@
     private BatteryTipListener mBatteryTipListener;
     private List<BatteryTip> mBatteryTips;
     private Map<String, BatteryTip> mBatteryTipMap;
-    private SettingsActivity mSettingsActivity;
+    private Activity mActivity;
     private MetricsFeatureProvider mMetricsFeatureProvider;
     private boolean mNeedUpdate;
     @VisibleForTesting TipCardPreference mCardPreference;
@@ -66,8 +66,8 @@
         mNeedUpdate = true;
     }
 
-    public void setActivity(SettingsActivity activity) {
-        mSettingsActivity = activity;
+    public void setActivity(Activity activity) {
+        mActivity = activity;
     }
 
     public void setFragment(InstrumentedPreferenceFragment fragment) {
@@ -126,7 +126,7 @@
             } else {
                 final BatteryTipAction action =
                         BatteryTipUtils.getActionForBatteryTip(
-                                batteryTip, mSettingsActivity, mFragment);
+                                batteryTip, mActivity, mFragment);
                 if (action != null) {
                     action.handlePositiveAction(mFragment.getMetricsCategory());
                 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
index 7dc993c..c6603d7 100644
--- a/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
+++ b/src/com/android/settings/fuelgauge/batterytip/BatteryTipUtils.java
@@ -16,16 +16,15 @@
 
 package com.android.settings.fuelgauge.batterytip;
 
+import android.app.Activity;
 import android.app.AppOpsManager;
 import android.content.Context;
-import android.content.Intent;
 import android.os.UserHandle;
 import android.os.UserManager;
 
 import androidx.annotation.NonNull;
 
 import com.android.internal.util.CollectionUtils;
-import com.android.settings.SettingsActivity;
 import com.android.settings.core.InstrumentedPreferenceFragment;
 import com.android.settings.fuelgauge.batterytip.actions.BatteryTipAction;
 import com.android.settings.fuelgauge.batterytip.actions.OpenBatterySaverAction;
@@ -33,8 +32,6 @@
 import com.android.settings.fuelgauge.batterytip.actions.RestrictAppAction;
 import com.android.settings.fuelgauge.batterytip.actions.SmartBatteryAction;
 import com.android.settings.fuelgauge.batterytip.actions.UnrestrictAppAction;
-import com.android.settings.fuelgauge.batterytip.tips.AppLabelPredicate;
-import com.android.settings.fuelgauge.batterytip.tips.AppRestrictionPredicate;
 import com.android.settings.fuelgauge.batterytip.tips.BatteryTip;
 import com.android.settings.fuelgauge.batterytip.tips.RestrictAppTip;
 import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
@@ -52,7 +49,7 @@
             AppOpsManager appOpsManager, UserManager userManager) {
         final List<UserHandle> userHandles = userManager.getUserProfiles();
         final List<AppOpsManager.PackageOps> packageOpsList =
-                appOpsManager.getPackagesForOps(new int[] {AppOpsManager.OP_RUN_ANY_IN_BACKGROUND});
+                appOpsManager.getPackagesForOps(new int[]{AppOpsManager.OP_RUN_ANY_IN_BACKGROUND});
         final List<AppInfo> appInfos = new ArrayList<>();
 
         for (int i = 0, size = CollectionUtils.size(packageOpsList); i < size; i++) {
@@ -65,7 +62,7 @@
                 }
                 if (entry.getMode() != AppOpsManager.MODE_ALLOWED
                         && userHandles.contains(
-                                new UserHandle(UserHandle.getUserId(packageOps.getUid())))) {
+                            new UserHandle(UserHandle.getUserId(packageOps.getUid())))) {
                     appInfos.add(
                             new AppInfo.Builder()
                                     .setPackageName(packageOps.getPackageName())
@@ -82,34 +79,34 @@
      * Get a corresponding action based on {@code batteryTip}
      *
      * @param batteryTip used to detect which action to choose
-     * @param settingsActivity used to populate {@link BatteryTipAction}
-     * @param fragment used to populate {@link BatteryTipAction}
+     * @param activity   used to populate {@link BatteryTipAction}
+     * @param fragment   used to populate {@link BatteryTipAction}
      * @return an action for {@code batteryTip}
      */
     public static BatteryTipAction getActionForBatteryTip(
             BatteryTip batteryTip,
-            SettingsActivity settingsActivity,
+            Activity activity,
             InstrumentedPreferenceFragment fragment) {
         switch (batteryTip.getType()) {
             case BatteryTip.TipType.SMART_BATTERY_MANAGER:
-                return new SmartBatteryAction(settingsActivity, fragment);
+                return new SmartBatteryAction(activity, fragment);
             case BatteryTip.TipType.BATTERY_SAVER:
             case BatteryTip.TipType.LOW_BATTERY:
-                return new OpenBatterySaverAction(settingsActivity);
+                return new OpenBatterySaverAction(activity);
             case BatteryTip.TipType.APP_RESTRICTION:
                 if (batteryTip.getState() == BatteryTip.StateType.HANDLED) {
                     return new OpenRestrictAppFragmentAction(fragment, (RestrictAppTip) batteryTip);
                 } else {
-                    return new RestrictAppAction(settingsActivity, (RestrictAppTip) batteryTip);
+                    return new RestrictAppAction(activity, (RestrictAppTip) batteryTip);
                 }
             case BatteryTip.TipType.REMOVE_APP_RESTRICTION:
-                return new UnrestrictAppAction(settingsActivity, (UnrestrictAppTip) batteryTip);
+                return new UnrestrictAppAction(activity, (UnrestrictAppTip) batteryTip);
             default:
                 return null;
         }
     }
 
-   /** Detect and return anomaly apps after {@code timeAfterMs} */
+    /** Detect and return anomaly apps after {@code timeAfterMs} */
     public static List<AppInfo> detectAnomalies(Context context, long timeAfterMs) {
         return new ArrayList<>();
     }
diff --git a/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java b/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
index 55c0031..b2d6647 100644
--- a/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
+++ b/src/com/android/settings/fuelgauge/batterytip/actions/SmartBatteryAction.java
@@ -16,23 +16,23 @@
 
 package com.android.settings.fuelgauge.batterytip.actions;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 
 import androidx.fragment.app.Fragment;
 
 import com.android.settings.R;
-import com.android.settings.SettingsActivity;
 import com.android.settings.core.SubSettingLauncher;
 import com.android.settings.fuelgauge.SmartBatterySettings;
 import com.android.settingslib.core.instrumentation.Instrumentable;
 
 public class SmartBatteryAction extends BatteryTipAction {
-    private SettingsActivity mSettingsActivity;
+    private Activity mActivity;
     private Fragment mFragment;
 
-    public SmartBatteryAction(SettingsActivity settingsActivity, Fragment fragment) {
-        super(settingsActivity.getApplicationContext());
-        mSettingsActivity = settingsActivity;
+    public SmartBatteryAction(Activity activity, Fragment fragment) {
+        super(activity.getApplicationContext());
+        mActivity = activity;
         mFragment = fragment;
     }
 
@@ -41,7 +41,7 @@
     public void handlePositiveAction(int metricsKey) {
         mMetricsFeatureProvider.action(
                 mContext, SettingsEnums.ACTION_TIP_OPEN_SMART_BATTERY, metricsKey);
-        new SubSettingLauncher(mSettingsActivity)
+        new SubSettingLauncher(mActivity)
                 .setSourceMetricsCategory(
                         mFragment instanceof Instrumentable
                                 ? ((Instrumentable) mFragment).getMetricsCategory()
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
index 2084b66..076676d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryOptimizationModeCache.java
@@ -51,7 +51,8 @@
                     Pair.create(
                             BatteryOptimizationMode.forNumber(
                                     batteryOptimizeUtils.getAppOptimizationMode(
-                                            /* refreshList= */ false)),
+                                            /* refreshList= */ false,
+                                            /* ignoreUnknownMode= */ false)),
                             batteryOptimizeUtils.isOptimizeModeMutable()));
         }
         final Pair<BatteryOptimizationMode, Boolean> batteryOptimizeModeInfo =
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index 0836912..df84aba 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -20,8 +20,6 @@
 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;
@@ -117,11 +115,9 @@
     private static void preprocessBatteryUsageSlots(
             final Context context, final UserIdsSeries userIdsSeries) {
         final long start = System.currentTimeMillis();
-        final Handler handler = new Handler(Looper.getMainLooper());
         final BatteryLevelData batteryLevelData =
                 DataProcessManager.getBatteryLevelData(
                         context,
-                        handler,
                         userIdsSeries,
                         /* isFromPeriodJob= */ true,
                         batteryDiffDataMap -> {
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
index 0a1a547..fd548ab 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessManager.java
@@ -19,8 +19,6 @@
 import android.app.usage.UsageEvents;
 import android.content.Context;
 import android.os.AsyncTask;
-import android.os.Handler;
-import android.os.Looper;
 import android.util.ArrayMap;
 import android.util.Log;
 
@@ -82,7 +80,6 @@
     private final long mLastFullChargeTimestamp;
     private final boolean mIsFromPeriodJob;
     private final Context mContext;
-    private final Handler mHandler;
     private final UserIdsSeries mUserIdsSeries;
     private final OnBatteryDiffDataMapLoadedListener mCallbackFunction;
     private final List<AppUsageEvent> mAppUsageEventList = new ArrayList<>();
@@ -123,7 +120,6 @@
     /** Constructor when there exists battery level data. */
     DataProcessManager(
             Context context,
-            Handler handler,
             final UserIdsSeries userIdsSeries,
             final boolean isFromPeriodJob,
             final long rawStartTimestamp,
@@ -132,7 +128,6 @@
             @NonNull final List<BatteryLevelData.PeriodBatteryLevelData> hourlyBatteryLevelsPerDay,
             @NonNull final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap) {
         mContext = context.getApplicationContext();
-        mHandler = handler;
         mUserIdsSeries = userIdsSeries;
         mIsFromPeriodJob = isFromPeriodJob;
         mRawStartTimestamp = rawStartTimestamp;
@@ -145,11 +140,9 @@
     /** Constructor when there is no battery level data. */
     DataProcessManager(
             Context context,
-            Handler handler,
             final UserIdsSeries userIdsSeries,
             @NonNull final OnBatteryDiffDataMapLoadedListener callbackFunction) {
         mContext = context.getApplicationContext();
-        mHandler = handler;
         mUserIdsSeries = userIdsSeries;
         mCallbackFunction = callbackFunction;
         mIsFromPeriodJob = false;
@@ -444,12 +437,8 @@
 
             @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.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
-                            });
+                if (mCallbackFunction != null) {
+                    mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
                 }
             }
         }.execute();
@@ -534,12 +523,8 @@
 
             @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.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
-                            });
+                if (mCallbackFunction != null) {
+                    mCallbackFunction.onBatteryDiffDataMapLoaded(batteryDiffDataMap);
                 }
             }
         }.execute();
@@ -581,7 +566,6 @@
     @Nullable
     public static BatteryLevelData getBatteryLevelData(
             Context context,
-            @Nullable Handler handler,
             final UserIdsSeries userIdsSeries,
             final boolean isFromPeriodJob,
             final OnBatteryDiffDataMapLoadedListener onBatteryUsageMapLoadedListener) {
@@ -601,7 +585,6 @@
         final BatteryLevelData batteryLevelData =
                 getPeriodBatteryLevelData(
                         context,
-                        handler,
                         userIdsSeries,
                         startTimestamp,
                         lastFullChargeTime,
@@ -621,7 +604,6 @@
 
     private static BatteryLevelData getPeriodBatteryLevelData(
             Context context,
-            @Nullable Handler handler,
             final UserIdsSeries userIdsSeries,
             final long startTimestamp,
             final long lastFullChargeTime,
@@ -639,7 +621,6 @@
             return null;
         }
 
-        handler = handler != null ? handler : new Handler(Looper.getMainLooper());
         final Map<Long, Map<String, BatteryHistEntry>> batteryHistoryMap =
                 sFakeBatteryHistoryMap != null
                         ? sFakeBatteryHistoryMap
@@ -650,8 +631,7 @@
                                 lastFullChargeTime);
         if (batteryHistoryMap == null || batteryHistoryMap.isEmpty()) {
             Log.d(TAG, "batteryHistoryMap is null in getPeriodBatteryLevelData()");
-            new DataProcessManager(
-                            context, handler, userIdsSeries, onBatteryDiffDataMapLoadedListener)
+            new DataProcessManager(context, userIdsSeries, onBatteryDiffDataMapLoadedListener)
                     .start();
             return null;
         }
@@ -680,8 +660,7 @@
                 DataProcessor.getLevelDataThroughProcessedHistoryMap(
                         context, processedBatteryHistoryMap);
         if (batteryLevelData == null) {
-            new DataProcessManager(
-                            context, handler, userIdsSeries, onBatteryDiffDataMapLoadedListener)
+            new DataProcessManager(context, userIdsSeries, onBatteryDiffDataMapLoadedListener)
                     .start();
             Log.d(TAG, "getBatteryLevelData() returns null");
             return null;
@@ -690,7 +669,6 @@
         // Start the async task to compute diff usage data and load labels and icons.
         new DataProcessManager(
                         context,
-                        handler,
                         userIdsSeries,
                         isFromPeriodJob,
                         startTimestamp,
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index ad487ef..0998e2d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -31,8 +31,6 @@
 import android.os.AsyncTask;
 import android.os.BatteryManager;
 import android.os.BatteryUsageStats;
-import android.os.Handler;
-import android.os.Looper;
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.os.UserManager;
@@ -66,12 +64,6 @@
 public final class DatabaseUtils {
     private static final String TAG = "DatabaseUtils";
     private static final String SHARED_PREFS_FILE = "battery_usage_shared_prefs";
-    private static final boolean EXPLICIT_CLEAR_MEMORY_ENABLED = false;
-
-    /** Clear memory threshold for device booting phase. */
-    private static final long CLEAR_MEMORY_THRESHOLD_MS = Duration.ofMinutes(5).toMillis();
-
-    private static final long CLEAR_MEMORY_DELAYED_MS = Duration.ofSeconds(2).toMillis();
     private static final long INVALID_TIMESTAMP = 0L;
 
     static final int DATA_RETENTION_INTERVAL_DAY = 9;
@@ -593,7 +585,6 @@
                 String.format(
                         "sendAppUsageEventData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -613,7 +604,6 @@
                 String.format(
                         "sendBatteryEventData() in %d/ms",
                         (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return contentValues;
     }
 
@@ -647,7 +637,6 @@
                 String.format(
                         "sendBatteryEventData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -681,7 +670,6 @@
                 String.format(
                         "sendBatteryUsageSlotData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -695,7 +683,6 @@
         final Intent intent = BatteryUtils.getBatteryIntent(context);
         if (intent == null) {
             Log.e(TAG, "sendBatteryEntryData(): cannot fetch battery intent");
-            clearMemory();
             return null;
         }
         final int batteryLevel = BatteryStatus.getBatteryLevel(intent);
@@ -796,7 +783,6 @@
         if (isFullChargeStart) {
             recordDateTime(context, KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
         }
-        clearMemory();
         return valuesList;
     }
 
@@ -992,20 +978,4 @@
             writer.println(String.format("\t\t%s: %s", prefix, results.toString()));
         }
     }
-
-    private static void clearMemory() {
-        if (!EXPLICIT_CLEAR_MEMORY_ENABLED
-                || SystemClock.uptimeMillis() > CLEAR_MEMORY_THRESHOLD_MS) {
-            return;
-        }
-        final Handler mainHandler = new Handler(Looper.getMainLooper());
-        mainHandler.postDelayed(
-                () -> {
-                    System.gc();
-                    System.runFinalization();
-                    System.gc();
-                    Log.w(TAG, "invoke clearMemory()");
-                },
-                CLEAR_MEMORY_DELAYED_MS);
-    }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
index a9c2332..1ed6a74 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageAdvanced.java
@@ -214,20 +214,22 @@
         if (!isResumed() || mBatteryLevelData == null) {
             return;
         }
-        mBatteryUsageMap =
-                DataProcessor.generateBatteryUsageMap(
-                        getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
-        Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap);
-        DataProcessor.loadLabelAndIcon(mBatteryUsageMap);
-        onSelectedSlotDataUpdated();
-        detectAnomaly();
-        logScreenUsageTime();
-        if (mBatteryChartPreferenceController != null
-                && mBatteryLevelData.isEmpty()
-                && isBatteryUsageMapNullOrEmpty()) {
-            // No available battery usage and battery level data.
-            mBatteryChartPreferenceController.showEmptyChart();
-        }
+        mHandler.post(() -> {
+            mBatteryUsageMap =
+                    DataProcessor.generateBatteryUsageMap(
+                            getContext(), batteryDiffDataMap, mBatteryLevelData.orElse(null));
+            Log.d(TAG, "onBatteryDiffDataMapUpdate: " + mBatteryUsageMap);
+            DataProcessor.loadLabelAndIcon(mBatteryUsageMap);
+            onSelectedSlotDataUpdated();
+            detectAnomaly();
+            logScreenUsageTime();
+            if (mBatteryChartPreferenceController != null
+                    && mBatteryLevelData.isEmpty()
+                    && isBatteryUsageMapNullOrEmpty()) {
+                // No available battery usage and battery level data.
+                mBatteryChartPreferenceController.showEmptyChart();
+            }
+        });
     }
 
     private void onSelectedSlotDataUpdated() {
@@ -503,7 +505,6 @@
                 public BatteryLevelData loadInBackground() {
                     return DataProcessManager.getBatteryLevelData(
                             getContext(),
-                            mHandler,
                             new UserIdsSeries(getContext(), /* isNonUIRequest= */ false),
                             /* isFromPeriodJob= */ false,
                             PowerUsageAdvanced.this::onBatteryDiffDataMapUpdate);
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
index 5ef820c..b5581d0 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummary.java
@@ -18,6 +18,7 @@
 
 import static com.android.settings.fuelgauge.BatteryBroadcastReceiver.BatteryUpdateType;
 
+import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.database.ContentObserver;
@@ -26,13 +27,14 @@
 import android.os.Handler;
 import android.provider.Settings.Global;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.Loader;
 import androidx.preference.Preference;
 
 import com.android.settings.R;
-import com.android.settings.SettingsActivity;
 import com.android.settings.Utils;
 import com.android.settings.fuelgauge.BatteryHeaderPreferenceController;
 import com.android.settings.fuelgauge.BatteryInfo;
@@ -125,7 +127,7 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        final SettingsActivity activity = (SettingsActivity) getActivity();
+        final Activity activity = getActivity();
 
         mBatteryHeaderPreferenceController = use(BatteryHeaderPreferenceController.class);
 
@@ -270,4 +272,9 @@
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.power_usage_summary);
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return PowerUsageSummaryScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt
new file mode 100644
index 0000000..229e308
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreen.kt
@@ -0,0 +1,62 @@
+/*
+ * Copyright (C) 2024 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.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.PreferenceIconProvider
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class PowerUsageSummaryScreen : PreferenceScreenCreator,
+    PreferenceAvailabilityProvider,
+    PreferenceIconProvider {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.power_usage_summary_title
+
+    override val keywords: Int
+        get() = R.string.keywords_battery
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystPowerUsageSummaryScreen()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = PowerUsageSummary::class.java
+
+    override fun isAvailable(context: Context) =
+        context.resources.getBoolean(R.bool.config_show_top_level_battery)
+
+    override fun getIcon(context: Context): Int =
+        if (Flags.homepageRevamp()) {
+            R.drawable.ic_settings_battery_filled
+        } else {
+            R.drawable.ic_settings_battery_white
+        }
+
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "power_usage_summary_screen"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/gestures/ButtonNavigationSettingsAssistController.java b/src/com/android/settings/gestures/ButtonNavigationSettingsAssistController.java
index 4c5e28c..72f8339 100644
--- a/src/com/android/settings/gestures/ButtonNavigationSettingsAssistController.java
+++ b/src/com/android/settings/gestures/ButtonNavigationSettingsAssistController.java
@@ -16,6 +16,7 @@
 
 package com.android.settings.gestures;
 
+import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON_OVERLAY;
 import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_3BUTTON_OVERLAY;
 
@@ -50,6 +51,11 @@
 
     @Override
     public int getAvailabilityStatus() {
+        // Hide the existing assistant UI elements when contextual search is available.
+        if (mContext.getPackageManager().hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
+
         if (SystemNavigationPreferenceController.isOverlayPackageAvailable(mContext,
                 NAV_BAR_MODE_2BUTTON_OVERLAY)
                 || SystemNavigationPreferenceController.isOverlayPackageAvailable(mContext,
diff --git a/src/com/android/settings/gestures/NavigationSettingsContextualSearchController.java b/src/com/android/settings/gestures/NavigationSettingsContextualSearchController.java
new file mode 100644
index 0000000..5938b5f
--- /dev/null
+++ b/src/com/android/settings/gestures/NavigationSettingsContextualSearchController.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+
+import com.android.settings.core.TogglePreferenceController;
+
+/**
+ * Configures behaviour of Contextual Search setting.
+ */
+public class NavigationSettingsContextualSearchController extends TogglePreferenceController {
+
+    public NavigationSettingsContextualSearchController(@NonNull Context context,
+            @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public boolean isChecked() {
+        boolean onByDefault = mContext.getResources().getBoolean(
+                com.android.internal.R.bool.config_searchAllEntrypointsEnabledDefault);
+        return Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, onByDefault ? 1 : 0)
+                == 1;
+    }
+
+    @Override
+    public boolean setChecked(boolean isChecked) {
+        return Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, isChecked ? 1 : 0);
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        if (mContext.getPackageManager().hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)) {
+            return AVAILABLE;
+        }
+        return UNSUPPORTED_ON_DEVICE;
+    }
+
+    @Override
+    public boolean isSliceable() {
+        return false;
+    }
+
+    @Override
+    public int getSliceHighlightMenuRes() {
+        return NO_RES;
+    }
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index cfaee00..9b4da46 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -243,7 +243,9 @@
     protected boolean setDefaultKey(String key) {
         setCurrentSystemNavigationMode(mOverlayManager, key);
         setIllustrationVideo(mVideoPreference, key);
-        setGestureNavigationTutorialDialog(key);
+        if (!android.provider.Flags.a11yStandaloneGestureEnabled()) {
+            setGestureNavigationTutorialDialog(key);
+        }
         setIllustrationClickListener(mVideoPreference, key);
         return true;
     }
diff --git a/src/com/android/settings/inputmethod/InputSettingPreferenceController.java b/src/com/android/settings/inputmethod/InputSettingPreferenceController.java
index 6d462c2..8dda8c5 100644
--- a/src/com/android/settings/inputmethod/InputSettingPreferenceController.java
+++ b/src/com/android/settings/inputmethod/InputSettingPreferenceController.java
@@ -25,20 +25,31 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.UserHandle;
+import android.view.View;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
+import android.widget.SeekBar;
+import android.widget.TextView;
 
 import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.Preference;
 
+import com.android.settings.R;
 import com.android.settings.core.TogglePreferenceController;
 import com.android.settings.keyboard.Flags;
 
+import java.util.concurrent.TimeUnit;
+
 /**
  * Abstract class for toggle controllers of Keyboard input setting related function.
  */
 public abstract class InputSettingPreferenceController extends TogglePreferenceController implements
         LifecycleObserver {
+    private static final int CUSTOM_PROGRESS_INTERVAL = 100;
+    private static final long MILLISECOND_IN_SECONDS = TimeUnit.SECONDS.toMillis(1);
     private final ContentResolver mContentResolver;
     private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
         @Override
@@ -48,11 +59,19 @@
             }
         }
     };
+    protected AlertDialog mAlertDialog;
 
     protected abstract void onInputSettingUpdated();
 
     protected abstract Uri getSettingUri();
 
+    protected void updateInputSettingKeysValue(int thresholdTimeMillis) {
+    }
+
+    protected int getInputSettingKeysValue() {
+        return 0;
+    }
+
     public InputSettingPreferenceController(@NonNull Context context,
             @NonNull String preferenceKey) {
         super(context, preferenceKey);
@@ -100,4 +119,112 @@
     private void unregisterSettingsObserver() {
         mContentResolver.unregisterContentObserver(mContentObserver);
     }
+
+    protected void constructDialog(Context context, int titleRes, int subtitleRes) {
+        mAlertDialog = new AlertDialog.Builder(context)
+                .setView(R.layout.dialog_keyboard_a11y_input_setting_keys)
+                .setPositiveButton(android.R.string.ok,
+                        (dialog, which) -> {
+                            RadioGroup radioGroup =
+                                    mAlertDialog.findViewById(
+                                            R.id.input_setting_keys_value_group);
+                            SeekBar seekbar = mAlertDialog.findViewById(
+                                    R.id.input_setting_keys_value_custom_slider);
+                            RadioButton customRadioButton = mAlertDialog.findViewById(
+                                    R.id.input_setting_keys_value_custom);
+                            int threshold;
+                            if (customRadioButton.isChecked()) {
+                                threshold = seekbar.getProgress() * CUSTOM_PROGRESS_INTERVAL;
+                            } else {
+                                int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId();
+                                if (checkedRadioButtonId == R.id.input_setting_keys_value_600) {
+                                    threshold = 600;
+                                } else if (checkedRadioButtonId
+                                        == R.id.input_setting_keys_value_400) {
+                                    threshold = 400;
+                                } else if (checkedRadioButtonId
+                                        == R.id.input_setting_keys_value_200) {
+                                    threshold = 200;
+                                } else {
+                                    threshold = 0;
+                                }
+                            }
+                            updateInputSettingKeysValue(threshold);
+                        })
+                .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss())
+                .create();
+        mAlertDialog.setOnShowListener(dialog -> {
+            RadioGroup cannedValueRadioGroup = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_value_group);
+            RadioButton customRadioButton = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_value_custom);
+            TextView customValueTextView = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_value_custom_value);
+            SeekBar customProgressBar = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_value_custom_slider);
+            TextView titleTextView = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_dialog_title);
+            TextView subTitleTextView = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_dialog_subtitle);
+            titleTextView.setText(titleRes);
+            subTitleTextView.setText(subtitleRes);
+
+            customProgressBar.incrementProgressBy(CUSTOM_PROGRESS_INTERVAL);
+            customProgressBar.setProgress(1);
+            View customValueView = mAlertDialog.findViewById(
+                    R.id.input_setting_keys_custom_value_option);
+            customValueView.setOnClickListener(l -> customRadioButton.performClick());
+            customRadioButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
+                if (isChecked) {
+                    cannedValueRadioGroup.clearCheck();
+                }
+                customValueTextView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
+                customValueTextView.setText(
+                        progressToThresholdInSecond(customProgressBar.getProgress()));
+                customProgressBar.setVisibility(isChecked ? View.VISIBLE : View.GONE);
+                buttonView.setChecked(isChecked);
+            });
+            cannedValueRadioGroup.setOnCheckedChangeListener(
+                    (group, checkedId) -> customRadioButton.setChecked(false));
+            customProgressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+                @Override
+                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+                    customValueTextView.setText(progressToThresholdInSecond(progress));
+                }
+
+                @Override
+                public void onStartTrackingTouch(SeekBar seekBar) {
+                }
+
+                @Override
+                public void onStopTrackingTouch(SeekBar seekBar) {
+                }
+            });
+            initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView,
+                    customProgressBar);
+        });
+    }
+
+    private static String progressToThresholdInSecond(int progress) {
+        return String.valueOf((double) progress * CUSTOM_PROGRESS_INTERVAL
+                / MILLISECOND_IN_SECONDS);
+    }
+
+    private void initStateBasedOnThreshold(RadioGroup cannedValueRadioGroup,
+            RadioButton customRadioButton, TextView customValueTextView,
+            SeekBar customProgressBar) {
+        int inputSettingKeysThreshold = getInputSettingKeysValue();
+        switch (inputSettingKeysThreshold) {
+            case 600 -> cannedValueRadioGroup.check(R.id.input_setting_keys_value_600);
+            case 400 -> cannedValueRadioGroup.check(R.id.input_setting_keys_value_400);
+            case 0, 200 -> cannedValueRadioGroup.check(R.id.input_setting_keys_value_200);
+            default -> {
+                customValueTextView.setText(
+                        String.valueOf(
+                                (double) inputSettingKeysThreshold / MILLISECOND_IN_SECONDS));
+                customProgressBar.setProgress(inputSettingKeysThreshold / CUSTOM_PROGRESS_INTERVAL);
+                customRadioButton.setChecked(true);
+            }
+        }
+    }
 }
diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java
index 1652f00..6bd836f 100644
--- a/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java
+++ b/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysController.java
@@ -21,15 +21,9 @@
 import android.net.Uri;
 import android.provider.Settings;
 import android.text.TextUtils;
-import android.view.View;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
-import android.widget.SeekBar;
-import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
-import androidx.appcompat.app.AlertDialog;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
@@ -37,23 +31,19 @@
 import com.android.settings.R;
 import com.android.settingslib.PrimarySwitchPreference;
 
-import java.util.concurrent.TimeUnit;
-
 public class KeyboardAccessibilityBounceKeysController extends
         InputSettingPreferenceController implements
         LifecycleObserver {
-    private static final int CUSTOM_PROGRESS_INTERVAL = 100;
-    private static final long MILLISECOND_IN_SECONDS = TimeUnit.SECONDS.toMillis(1);
     public static final int BOUNCE_KEYS_THRESHOLD = 500;
 
-    private AlertDialog mAlertDialog;
     @Nullable
     private PrimarySwitchPreference mPrimaryPreference;
 
     public KeyboardAccessibilityBounceKeysController(@NonNull Context context,
             @NonNull String key) {
         super(context, key);
-        constructDialog(context);
+        constructDialog(context, R.string.bounce_keys_dialog_title,
+                R.string.bounce_keys_dialog_subtitle);
     }
 
     @Override
@@ -87,8 +77,7 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        InputSettings.setAccessibilityBounceKeysThreshold(mContext,
-                isChecked ? BOUNCE_KEYS_THRESHOLD : 0);
+        updateInputSettingKeysValue(isChecked ? BOUNCE_KEYS_THRESHOLD : 0);
         return true;
     }
 
@@ -106,94 +95,13 @@
                 Settings.Secure.ACCESSIBILITY_BOUNCE_KEYS);
     }
 
-    private void constructDialog(Context context) {
-        mAlertDialog = new AlertDialog.Builder(context)
-                .setView(R.layout.dialog_a11y_bounce_key)
-                .setPositiveButton(android.R.string.ok,
-                        (dialog, which) -> {
-                            RadioGroup radioGroup =
-                                    mAlertDialog.findViewById(R.id.bounce_key_value_group);
-                            SeekBar seekbar = mAlertDialog.findViewById(
-                                    R.id.bounce_key_value_custom_slider);
-                            RadioButton customRadioButton = mAlertDialog.findViewById(
-                                    R.id.bounce_key_value_custom);
-                            int threshold;
-                            if (customRadioButton.isChecked()) {
-                                threshold = seekbar.getProgress() * CUSTOM_PROGRESS_INTERVAL;
-                            } else {
-                                int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId();
-                                threshold = checkedRadioButtonId == R.id.bounce_key_value_600 ? 600
-                                        : checkedRadioButtonId == R.id.bounce_key_value_400 ? 400
-                                                : checkedRadioButtonId == R.id.bounce_key_value_200
-                                                        ? 200 : 0;
-                            }
-                            InputSettings.setAccessibilityBounceKeysThreshold(context, threshold);
-                        })
-                .setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss())
-                .create();
-        mAlertDialog.setOnShowListener(dialog -> {
-            RadioGroup cannedValueRadioGroup = mAlertDialog.findViewById(
-                    R.id.bounce_key_value_group);
-            RadioButton customRadioButton = mAlertDialog.findViewById(R.id.bounce_key_value_custom);
-            TextView customValueTextView = mAlertDialog.findViewById(
-                    R.id.bounce_key_value_custom_value);
-            SeekBar customProgressBar = mAlertDialog.findViewById(
-                    R.id.bounce_key_value_custom_slider);
-            customProgressBar.incrementProgressBy(CUSTOM_PROGRESS_INTERVAL);
-            customProgressBar.setProgress(1);
-            View customValueView = mAlertDialog.findViewById(R.id.custom_value_option);
-            customValueView.setOnClickListener(l -> customRadioButton.performClick());
-            customRadioButton.setOnCheckedChangeListener((buttonView, isChecked) -> {
-                if (isChecked) {
-                    cannedValueRadioGroup.clearCheck();
-                }
-                customValueTextView.setVisibility(isChecked ? View.VISIBLE : View.GONE);
-                customValueTextView.setText(
-                        progressToThresholdInSecond(customProgressBar.getProgress()));
-                customProgressBar.setVisibility(isChecked ? View.VISIBLE : View.GONE);
-                buttonView.setChecked(isChecked);
-            });
-            cannedValueRadioGroup.setOnCheckedChangeListener(
-                    (group, checkedId) -> customRadioButton.setChecked(false));
-            customProgressBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
-                @Override
-                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
-                    customValueTextView.setText(progressToThresholdInSecond(progress));
-                }
-
-                @Override
-                public void onStartTrackingTouch(SeekBar seekBar) {
-                }
-
-                @Override
-                public void onStopTrackingTouch(SeekBar seekBar) {
-                }
-            });
-            initStateBasedOnThreshold(cannedValueRadioGroup, customRadioButton, customValueTextView,
-                    customProgressBar);
-        });
+    @Override
+    protected void updateInputSettingKeysValue(int thresholdTimeMillis) {
+        InputSettings.setAccessibilityBounceKeysThreshold(mContext, thresholdTimeMillis);
     }
 
-    private static String progressToThresholdInSecond(int progress) {
-        return String.valueOf((double) progress * CUSTOM_PROGRESS_INTERVAL
-                / MILLISECOND_IN_SECONDS);
-    }
-
-    private void initStateBasedOnThreshold(RadioGroup cannedValueRadioGroup,
-            RadioButton customRadioButton, TextView customValueTextView,
-            SeekBar customProgressBar) {
-        int bounceKeysThreshold = InputSettings.getAccessibilityBounceKeysThreshold(mContext);
-        switch (bounceKeysThreshold) {
-            case 600 -> cannedValueRadioGroup.check(R.id.bounce_key_value_600);
-            case 400 -> cannedValueRadioGroup.check(R.id.bounce_key_value_400);
-            case 0, 200 -> cannedValueRadioGroup.check(R.id.bounce_key_value_200);
-            default -> {
-                customValueTextView.setText(
-                        String.valueOf(
-                                (double) bounceKeysThreshold / MILLISECOND_IN_SECONDS));
-                customProgressBar.setProgress(bounceKeysThreshold / CUSTOM_PROGRESS_INTERVAL);
-                customRadioButton.setChecked(true);
-            }
-        }
+    @Override
+    protected int getInputSettingKeysValue() {
+        return InputSettings.getAccessibilityBounceKeysThreshold(mContext);
     }
 }
diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java
index 57ae88a..34f53c4 100644
--- a/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java
+++ b/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysController.java
@@ -22,15 +22,23 @@
 import android.provider.Settings;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.TwoStatePreference;
+
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
 
 public class KeyboardAccessibilityMouseKeysController extends
         InputSettingPreferenceController implements
         LifecycleObserver {
+    private static final String KEY_MOUSE_KEY = "accessibility_mouse_keys";
+    private static final String KEY_MOUSE_KEY_MAIN_PAGE = "mouse_keys_main_switch";
 
-    private TwoStatePreference mTwoStatePreference;
+    @Nullable
+    private PrimarySwitchPreference mPrimaryPreference;
+    @Nullable
+    private MainSwitchPreference mMainSwitchPreference;
 
     public KeyboardAccessibilityMouseKeysController(@NonNull Context context, @NonNull String key) {
         super(context, key);
@@ -39,7 +47,11 @@
     @Override
     public void displayPreference(@NonNull PreferenceScreen screen) {
         super.displayPreference(screen);
-        mTwoStatePreference = screen.findPreference(getPreferenceKey());
+        if (KEY_MOUSE_KEY.equals(getPreferenceKey())) {
+            mPrimaryPreference = screen.findPreference(getPreferenceKey());
+        } else if (KEY_MOUSE_KEY_MAIN_PAGE.equals(getPreferenceKey())) {
+            mMainSwitchPreference = screen.findPreference(getPreferenceKey());
+        }
     }
 
     @Override
@@ -63,8 +75,11 @@
 
     @Override
     protected void onInputSettingUpdated() {
-        if (mTwoStatePreference != null) {
-            mTwoStatePreference.setChecked(
+        if (mPrimaryPreference != null) {
+            mPrimaryPreference.setChecked(
+                    InputSettings.isAccessibilityMouseKeysEnabled(mContext));
+        } else if (mMainSwitchPreference != null) {
+            mMainSwitchPreference.setChecked(
                     InputSettings.isAccessibilityMouseKeysEnabled(mContext));
         }
     }
diff --git a/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java b/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java
index d8602df..857623a 100644
--- a/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java
+++ b/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysController.java
@@ -20,27 +20,34 @@
 import android.hardware.input.InputSettings;
 import android.net.Uri;
 import android.provider.Settings;
+import android.text.TextUtils;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.lifecycle.LifecycleObserver;
+import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.TwoStatePreference;
+
+import com.android.settings.R;
+import com.android.settingslib.PrimarySwitchPreference;
 
 public class KeyboardAccessibilitySlowKeysController extends
         InputSettingPreferenceController implements
         LifecycleObserver {
     public static final int SLOW_KEYS_THRESHOLD = 500;
 
-    private TwoStatePreference mTwoStatePreference;
+    @Nullable
+    private PrimarySwitchPreference mPrimarySwitchPreference;
 
     public KeyboardAccessibilitySlowKeysController(@NonNull Context context, @NonNull String key) {
         super(context, key);
+        constructDialog(context, R.string.slow_keys, R.string.slow_keys_summary);
     }
 
     @Override
     public void displayPreference(@NonNull PreferenceScreen screen) {
         super.displayPreference(screen);
-        mTwoStatePreference = screen.findPreference(getPreferenceKey());
+        mPrimarySwitchPreference = screen.findPreference(getPreferenceKey());
     }
 
     @Override
@@ -50,8 +57,7 @@
 
     @Override
     public boolean setChecked(boolean isChecked) {
-        InputSettings.setAccessibilitySlowKeysThreshold(mContext,
-                isChecked ? SLOW_KEYS_THRESHOLD : 0);
+        updateInputSettingKeysValue(isChecked ? SLOW_KEYS_THRESHOLD : 0);
         return true;
     }
 
@@ -64,8 +70,8 @@
 
     @Override
     protected void onInputSettingUpdated() {
-        if (mTwoStatePreference != null) {
-            mTwoStatePreference.setChecked(
+        if (mPrimarySwitchPreference != null) {
+            mPrimarySwitchPreference.setChecked(
                     InputSettings.isAccessibilitySlowKeysEnabled(mContext));
         }
     }
@@ -75,4 +81,25 @@
         return Settings.Secure.getUriFor(
                 Settings.Secure.ACCESSIBILITY_SLOW_KEYS);
     }
+
+    @Override
+    public boolean handlePreferenceTreeClick(@NonNull Preference preference) {
+        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+            return false;
+        }
+        if (mAlertDialog != null) {
+            mAlertDialog.show();
+        }
+        return true;
+    }
+
+    @Override
+    protected void updateInputSettingKeysValue(int thresholdTimeMillis) {
+        InputSettings.setAccessibilitySlowKeysThreshold(mContext, thresholdTimeMillis);
+    }
+
+    @Override
+    protected int getInputSettingKeysValue() {
+        return InputSettings.getAccessibilitySlowKeysThreshold(mContext);
+    }
 }
diff --git a/src/com/android/settings/inputmethod/KeyboardRepeatKeysController.java b/src/com/android/settings/inputmethod/KeyboardRepeatKeysController.java
index a232098..28392be 100644
--- a/src/com/android/settings/inputmethod/KeyboardRepeatKeysController.java
+++ b/src/com/android/settings/inputmethod/KeyboardRepeatKeysController.java
@@ -25,14 +25,20 @@
 import androidx.annotation.Nullable;
 import androidx.lifecycle.LifecycleObserver;
 import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreferenceCompat;
+
+import com.android.settingslib.PrimarySwitchPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
 
 public class KeyboardRepeatKeysController extends
         InputSettingPreferenceController implements
         LifecycleObserver {
+    private static final String KEY_REPEAT_KEY = "physical_keyboard_repeat_keys";
+    private static final String KEY_REPEAT_KEY_MAIN_PAGE = "repeat_key_main_switch";
 
     @Nullable
-    private SwitchPreferenceCompat mSwitchPreferenceCompat;
+    private PrimarySwitchPreference mPrimarySwitchPreference;
+    @Nullable
+    private MainSwitchPreference mMainSwitchPreference;
 
     public KeyboardRepeatKeysController(@NonNull Context context,
             @NonNull String key) {
@@ -42,7 +48,11 @@
     @Override
     public void displayPreference(@NonNull PreferenceScreen screen) {
         super.displayPreference(screen);
-        mSwitchPreferenceCompat = screen.findPreference(getPreferenceKey());
+        if (KEY_REPEAT_KEY.equals(getPreferenceKey())) {
+            mPrimarySwitchPreference = screen.findPreference(getPreferenceKey());
+        } else if (KEY_REPEAT_KEY_MAIN_PAGE.equals(getPreferenceKey())) {
+            mMainSwitchPreference = screen.findPreference(getPreferenceKey());
+        }
     }
 
     @Override
@@ -63,8 +73,10 @@
 
     @Override
     protected void onInputSettingUpdated() {
-        if (mSwitchPreferenceCompat != null) {
-            mSwitchPreferenceCompat.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
+        if (mPrimarySwitchPreference != null) {
+            mPrimarySwitchPreference.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
+        } else if (mMainSwitchPreference != null) {
+            mMainSwitchPreference.setChecked(InputSettings.isRepeatKeysEnabled(mContext));
         }
     }
 
diff --git a/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceController.java b/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceController.java
new file mode 100644
index 0000000..bb074fd
--- /dev/null
+++ b/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceController.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import android.content.Context;
+import android.hardware.input.InputSettings;
+
+import androidx.annotation.NonNull;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.core.SliderPreferenceController;
+
+import com.google.common.collect.ImmutableList;
+
+public class KeyboardRepeatKeysDelayPreferenceController extends SliderPreferenceController {
+    @VisibleForTesting
+    static final ImmutableList<Integer> REPEAT_KEY_DELAY_VALUE_LIST = ImmutableList.of(2000, 1000,
+            500, 300, 200, 100, 50, 30, 20);
+
+    public KeyboardRepeatKeysDelayPreferenceController(@NonNull Context context,
+            @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getSliderPosition() {
+        return REPEAT_KEY_DELAY_VALUE_LIST.indexOf(InputSettings.getRepeatKeysDelay(mContext));
+    }
+
+    @Override
+    public boolean setSliderPosition(int position) {
+        InputSettings.setRepeatKeysDelay(mContext, REPEAT_KEY_DELAY_VALUE_LIST.get(position));
+        return true;
+    }
+
+    @Override
+    public int getMax() {
+        return REPEAT_KEY_DELAY_VALUE_LIST.size() - 1;
+    }
+
+    @Override
+    public int getMin() {
+        return 0;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return InputSettings.isRepeatKeysFeatureFlagEnabled()
+                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java b/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java
new file mode 100644
index 0000000..39e605d
--- /dev/null
+++ b/src/com/android/settings/inputmethod/KeyboardRepeatKeysMainFragment.java
@@ -0,0 +1,170 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import static com.android.settings.inputmethod.PhysicalKeyboardFragment.getHardKeyboards;
+
+import android.app.settings.SettingsEnums;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.database.ContentObserver;
+import android.hardware.input.InputManager;
+import android.hardware.input.InputSettings;
+import android.net.Uri;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.UserHandle;
+import android.provider.Settings;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+
+import com.android.internal.util.Preconditions;
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.keyboard.Flags;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settings.widget.LabeledSeekBarPreference;
+import com.android.settingslib.utils.ThreadUtils;
+
+import java.util.List;
+
+public class KeyboardRepeatKeysMainFragment extends DashboardFragment
+        implements InputManager.InputDeviceListener {
+    private static final String TAG = "RepeatKeysMainFragment";
+    private static final String TIME_OUT_KEY = "repeat_keys_timeout_preference";
+    private static final String DELAY_KEY = "repeat_keys_delay_preference";
+
+    private final Uri mRepeatKeyUri = Settings.Secure.getUriFor(
+            Settings.Secure.KEY_REPEAT_ENABLED);
+    private final ContentObserver mContentObserver = new ContentObserver(new Handler(true)) {
+        @Override
+        public void onChange(boolean selfChange, Uri uri) {
+            if (mRepeatKeyUri.equals(uri)) {
+                updatePreferencesState();
+            }
+        }
+    };
+    private InputManager mInputManager;
+    private ContentResolver mContentResolver;
+    @Nullable
+    private LabeledSeekBarPreference mRepeatTimeoutPreference;
+    @Nullable
+    private LabeledSeekBarPreference mRepeatDelayPreference;
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PHYSICAL_KEYBOARD_A11Y;
+    }
+
+    @Override
+    public void onAttach(@NonNull Context context) {
+        super.onAttach(context);
+        mInputManager = Preconditions.checkNotNull(getActivity()
+                .getSystemService(InputManager.class));
+        mContentResolver = context.getContentResolver();
+    }
+
+    @Override
+    public void onCreatePreferences(Bundle bundle, String s) {
+        super.onCreatePreferences(bundle, s);
+        mRepeatTimeoutPreference = findPreference(TIME_OUT_KEY);
+        mRepeatDelayPreference = findPreference(DELAY_KEY);
+        updatePreferencesState();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        finishEarlyIfNeeded();
+        mInputManager.registerInputDeviceListener(this, null);
+        registerSettingsObserver();
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mInputManager.unregisterInputDeviceListener(this);
+        unregisterSettingsObserver();
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.repeat_key_main_page;
+    }
+
+    private void updatePreferencesState() {
+        boolean isRepeatKeyEnabled = InputSettings.isRepeatKeysEnabled(getContext());
+        if (mRepeatTimeoutPreference != null && mRepeatDelayPreference != null) {
+            mRepeatTimeoutPreference.setEnabled(isRepeatKeyEnabled);
+            mRepeatDelayPreference.setEnabled(isRepeatKeyEnabled);
+        }
+    }
+
+    private void registerSettingsObserver() {
+        unregisterSettingsObserver();
+        mContentResolver.registerContentObserver(
+                mRepeatKeyUri,
+                false,
+                mContentObserver,
+                UserHandle.myUserId());
+    }
+
+    private void unregisterSettingsObserver() {
+        mContentResolver.unregisterContentObserver(mContentObserver);
+    }
+
+    @Override
+    public void onInputDeviceAdded(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    @Override
+    public void onInputDeviceRemoved(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    @Override
+    public void onInputDeviceChanged(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    private void finishEarlyIfNeeded() {
+        final Context context = getContext();
+        ThreadUtils.postOnBackgroundThread(() -> {
+            final List<PhysicalKeyboardFragment.HardKeyboardDeviceInfo> newHardKeyboards =
+                    getHardKeyboards(context);
+            if (newHardKeyboards.isEmpty()) {
+                getActivity().finish();
+            }
+        });
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.repeat_key_main_page) {
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return Flags.keyboardAndTouchpadA11yNewPageEnabled()
+                            && !getHardKeyboards(context).isEmpty();
+                }
+            };
+}
diff --git a/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceController.java b/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceController.java
new file mode 100644
index 0000000..e766d48
--- /dev/null
+++ b/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceController.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import android.content.Context;
+import android.hardware.input.InputSettings;
+
+import androidx.annotation.NonNull;
+
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.settings.core.SliderPreferenceController;
+
+import com.google.common.collect.ImmutableList;
+
+public class KeyboardRepeatKeysTimeOutPreferenceController extends SliderPreferenceController {
+    @VisibleForTesting
+    static final ImmutableList<Integer> REPEAT_KEY_TIMEOUT_VALUE_LIST = ImmutableList.of(2000, 1500,
+            1000, 400, 300, 200, 150);
+
+    public KeyboardRepeatKeysTimeOutPreferenceController(
+            @NonNull Context context,
+            @NonNull String preferenceKey) {
+        super(context, preferenceKey);
+    }
+
+    @Override
+    public int getSliderPosition() {
+        return REPEAT_KEY_TIMEOUT_VALUE_LIST.indexOf(InputSettings.getRepeatKeysTimeout(mContext));
+    }
+
+    @Override
+    public boolean setSliderPosition(int position) {
+        InputSettings.setRepeatKeysTimeout(mContext, REPEAT_KEY_TIMEOUT_VALUE_LIST.get(position));
+        return true;
+    }
+
+    @Override
+    public int getMax() {
+        return REPEAT_KEY_TIMEOUT_VALUE_LIST.size() - 1;
+    }
+
+    @Override
+    public int getMin() {
+        return 0;
+    }
+
+    @Override
+    public int getAvailabilityStatus() {
+        return InputSettings.isRepeatKeysFeatureFlagEnabled()
+                ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+    }
+}
diff --git a/src/com/android/settings/inputmethod/MouseKeysImageListAdapter.java b/src/com/android/settings/inputmethod/MouseKeysImageListAdapter.java
new file mode 100644
index 0000000..65024b1
--- /dev/null
+++ b/src/com/android/settings/inputmethod/MouseKeysImageListAdapter.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import android.content.Context;
+import android.view.InputDevice;
+import android.view.KeyEvent;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.settings.R;
+
+import com.google.common.collect.ImmutableList;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class MouseKeysImageListAdapter extends
+        RecyclerView.Adapter<MouseKeysImageListAdapter.MouseKeyImageViewHolder> {
+    private static final ImmutableList<Integer> DRAWABLE_LIST = ImmutableList.of(
+            R.drawable.mouse_keys_directional, R.drawable.mouse_keys_click,
+            R.drawable.mouse_keys_press_hold, R.drawable.mouse_keys_release,
+            R.drawable.mouse_keys_toggle_scroll, R.drawable.mouse_keys_release2);
+    private static final ImmutableList<Integer> DIRECTIONAL_CHAR_KEYCODE_LIST = ImmutableList.of(
+            KeyEvent.KEYCODE_7, KeyEvent.KEYCODE_8, KeyEvent.KEYCODE_9, KeyEvent.KEYCODE_U,
+            KeyEvent.KEYCODE_O, KeyEvent.KEYCODE_J, KeyEvent.KEYCODE_K, KeyEvent.KEYCODE_L
+    );
+    private static final int LEFT_CLICK_CHAR_KEYCODE =
+            KeyEvent.KEYCODE_I;
+    private static final int PRESS_HOLD_CHAR_KEYCODE =
+            KeyEvent.KEYCODE_M;
+    private static final int RELEASE_CHAR_KEYCODE =
+            KeyEvent.KEYCODE_COMMA;
+    private static final ImmutableList<Integer> TOGGLE_SCROLL_CHAR_KEYCODE_LIST = ImmutableList.of(
+            KeyEvent.KEYCODE_PERIOD, KeyEvent.KEYCODE_8, KeyEvent.KEYCODE_K, KeyEvent.KEYCODE_O,
+            KeyEvent.KEYCODE_U
+    );
+    private static final int RIGHT_CLICK_CHAR_KEYCODE =
+            KeyEvent.KEYCODE_SLASH;
+    private final List<String> mComposedSummaryList = new ArrayList<>();
+
+    public MouseKeysImageListAdapter(@NonNull Context context,
+            @Nullable InputDevice currentInputDevice) {
+        composeSummaryForImages(context, currentInputDevice);
+    }
+
+    @NonNull
+    @Override
+    public MouseKeyImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(parent.getContext())
+                .inflate(R.layout.mouse_keys_image_item, parent, false);
+        return new MouseKeyImageViewHolder(view, parent.getContext());
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull MouseKeyImageViewHolder holder, int position) {
+        ((MouseKeyImageViewHolder) holder).bindView(DRAWABLE_LIST.get(position),
+                mComposedSummaryList.get(position));
+    }
+
+    @Override
+    public int getItemCount() {
+        return DRAWABLE_LIST.size();
+    }
+
+    private void composeSummaryForImages(Context context,
+            @Nullable InputDevice currentInputDevice) {
+        if (currentInputDevice == null) {
+            return;
+        }
+        mComposedSummaryList.clear();
+        List<String> directionalLabelList = DIRECTIONAL_CHAR_KEYCODE_LIST.stream().map(
+                (key) -> getDisplayLabel(currentInputDevice, key)).toList();
+        mComposedSummaryList.add(context.getString(R.string.mouse_keys_directional_summary,
+                String.join(",", directionalLabelList)));
+        String leftClickLabel = getDisplayLabel(currentInputDevice, LEFT_CLICK_CHAR_KEYCODE);
+        mComposedSummaryList.add(
+                context.getString(R.string.mouse_keys_click_summary, leftClickLabel));
+        String pressHoldLabel = getDisplayLabel(currentInputDevice, PRESS_HOLD_CHAR_KEYCODE);
+        mComposedSummaryList.add(
+                context.getString(R.string.mouse_keys_press_hold_summary, pressHoldLabel));
+        String releaseLabel = getDisplayLabel(currentInputDevice, RELEASE_CHAR_KEYCODE);
+        mComposedSummaryList.add(
+                context.getString(R.string.mouse_keys_release_summary, releaseLabel));
+        List<String> toggleScrollLabelList = TOGGLE_SCROLL_CHAR_KEYCODE_LIST.stream().map(
+                (key) -> getDisplayLabel(currentInputDevice, key)).toList();
+        mComposedSummaryList.add(context.getString(R.string.mouse_keys_toggle_scroll_summary,
+                toggleScrollLabelList.getFirst(),
+                String.join(",", toggleScrollLabelList.subList(1, toggleScrollLabelList.size()))
+        ));
+        String rightClickLabel = getDisplayLabel(currentInputDevice, RIGHT_CLICK_CHAR_KEYCODE);
+        mComposedSummaryList.add(
+                context.getString(R.string.mouse_keys_release2_summary, rightClickLabel));
+    }
+
+    private String getDisplayLabel(InputDevice currentInputDevice, int keycode) {
+        return String.valueOf(currentInputDevice.getKeyCharacterMap().getDisplayLabel(
+                currentInputDevice.getKeyCodeForKeyLocation(keycode))).toLowerCase(Locale.ROOT);
+    }
+
+    public static class MouseKeyImageViewHolder extends RecyclerView.ViewHolder {
+        private final TextView mTextView;
+        private final Context mContext;
+
+        public MouseKeyImageViewHolder(View itemView, Context context) {
+            super(itemView);
+            mTextView = (TextView) itemView;
+            mContext = context;
+        }
+
+        void bindView(int drawableRes, String summary) {
+            mTextView.setText(summary);
+            mTextView.setCompoundDrawablesWithIntrinsicBounds(null,
+                    mContext.getDrawable(drawableRes), null, null);
+        }
+    }
+}
diff --git a/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java b/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java
new file mode 100644
index 0000000..dd9c1dd
--- /dev/null
+++ b/src/com/android/settings/inputmethod/MouseKeysMainPageFragment.java
@@ -0,0 +1,163 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import static com.android.settings.inputmethod.PhysicalKeyboardFragment.getHardKeyboards;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.hardware.input.InputManager;
+import android.os.Bundle;
+import android.view.InputDevice;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.preference.PreferenceScreen;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.util.Preconditions;
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.keyboard.Flags;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+import com.android.settingslib.utils.ThreadUtils;
+import com.android.settingslib.widget.LayoutPreference;
+
+import java.util.List;
+
+@SearchIndexable
+public class MouseKeysMainPageFragment extends DashboardFragment
+        implements InputManager.InputDeviceListener {
+
+    private static final String TAG = "MouseKeysMainPageFragment";
+    private static final String KEY_MOUSE_KEY_LIST = "mouse_keys_list";
+
+    private InputManager mInputManager;
+    private LayoutPreference mMouseKeyImagesPreference;
+    @Nullable
+    private InputDevice mCurrentInputDevice;
+
+    @Override
+    public void onCreate(@NonNull Bundle bundle) {
+        super.onCreate(bundle);
+        mCurrentInputDevice = getInputDevice();
+        final PreferenceScreen screen = getPreferenceScreen();
+        mMouseKeyImagesPreference = screen.findPreference(KEY_MOUSE_KEY_LIST);
+        mInputManager = Preconditions.checkNotNull(getActivity()
+                .getSystemService(InputManager.class));
+        String title = mCurrentInputDevice == null ? getActivity().getString(R.string.mouse_keys)
+                : getActivity().getString(R.string.mouse_key_main_page_title,
+                        mCurrentInputDevice.getName());
+        getActivity().setTitle(title);
+        configureImagesPreference();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+        finishEarlyIfNeeded();
+        mInputManager.registerInputDeviceListener(this, null);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+        mInputManager.unregisterInputDeviceListener(this);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return SettingsEnums.PHYSICAL_KEYBOARD_A11Y;
+    }
+
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.mouse_keys_main_page;
+    }
+
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
+    @Override
+    public void onInputDeviceAdded(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    @Override
+    public void onInputDeviceRemoved(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    @Override
+    public void onInputDeviceChanged(int deviceId) {
+        finishEarlyIfNeeded();
+    }
+
+    private void finishEarlyIfNeeded() {
+        final Context context = getContext();
+        ThreadUtils.postOnBackgroundThread(() -> {
+            final List<PhysicalKeyboardFragment.HardKeyboardDeviceInfo> newHardKeyboards =
+                    getHardKeyboards(context);
+            if (newHardKeyboards.isEmpty()) {
+                getActivity().finish();
+            }
+        });
+    }
+
+    private void configureImagesPreference() {
+        final RecyclerView recyclerView = mMouseKeyImagesPreference.findViewById(
+                R.id.mouse_keys_image_recycler_list);
+        recyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));
+        recyclerView.setAdapter(new MouseKeysImageListAdapter(getActivity(), mCurrentInputDevice));
+    }
+
+    /**
+     * Priority of picking input device:
+     * 1. internal keyboard(built-in keyboard)
+     * 2. first keyboard in the list
+     */
+    @Nullable
+    private InputDevice getInputDevice() {
+        InputDevice inputDevice = null;
+        for (int deviceId : InputDevice.getDeviceIds()) {
+            final InputDevice device = InputDevice.getDevice(deviceId);
+            if (device == null || device.isVirtual() || !device.isFullKeyboard()) {
+                continue;
+            }
+            if (inputDevice == null) {
+                inputDevice = device;
+            } else if (!device.isExternal()) {
+                inputDevice = device;
+                break;
+            }
+        }
+        return inputDevice;
+    }
+
+    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+            new BaseSearchIndexProvider(R.xml.mouse_keys_main_page) {
+                @Override
+                protected boolean isPageSearchEnabled(Context context) {
+                    return Flags.keyboardAndTouchpadA11yNewPageEnabled()
+                            && !getHardKeyboards(context).isEmpty();
+                }
+            };
+}
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 48100a3..edc9989 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -289,11 +289,12 @@
                 getActivity().finish();
                 return;
             }
-            ThreadUtils.postOnMainThread(() -> updateHardKeyboards(newHardKeyboards));
+            ThreadUtils.postOnMainThread(() -> updateHardKeyboards(context, newHardKeyboards));
         });
     }
 
-    private void updateHardKeyboards(@NonNull List<HardKeyboardDeviceInfo> newHardKeyboards) {
+    private void updateHardKeyboards(@NonNull Context context,
+                                     @NonNull List<HardKeyboardDeviceInfo> newHardKeyboards) {
         if (Objects.equals(mLastHardKeyboards, newHardKeyboards)) {
             // Nothing has changed.  Ignore.
             return;
@@ -316,7 +317,7 @@
             final Preference pref = new Preference(getPrefContext());
             pref.setTitle(hardKeyboardDeviceInfo.mDeviceName);
             String currentLayout =
-                    NewKeyboardSettingsUtils.getSelectedKeyboardLayoutLabelForUser(getContext(),
+                    NewKeyboardSettingsUtils.getSelectedKeyboardLayoutLabelForUser(context,
                             UserHandle.myUserId(), hardKeyboardDeviceInfo.mDeviceIdentifier);
             if (currentLayout != null) {
                 pref.setSummary(currentLayout);
@@ -336,7 +337,7 @@
             vendorAndProductId.append("-");
             vendorAndProductId.append(productId);
             mMetricsFeatureProvider.action(
-                    getContext(),
+                    context,
                     SettingsEnums.ACTION_USE_SPECIFIC_KEYBOARD,
                     vendorAndProductId.toString());
         }
@@ -352,10 +353,10 @@
                 || InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
             Objects.requireNonNull(mKeyboardA11yCategory).setOrder(2);
             preferenceScreen.addPreference(mKeyboardA11yCategory);
-            updateAccessibilityBounceKeysSwitch();
-            updateAccessibilitySlowKeysSwitch();
-            updateAccessibilityStickyKeysSwitch();
-            updateAccessibilityMouseKeysSwitch();
+            updateAccessibilityBounceKeysSwitch(context);
+            updateAccessibilitySlowKeysSwitch(context);
+            updateAccessibilityStickyKeysSwitch(context);
+            updateAccessibilityMouseKeysSwitch(context);
         }
     }
 
@@ -413,46 +414,47 @@
                     mContentObserver,
                     UserHandle.myUserId());
         }
-        updateAccessibilityBounceKeysSwitch();
-        updateAccessibilitySlowKeysSwitch();
-        updateAccessibilityStickyKeysSwitch();
-        updateAccessibilityMouseKeysSwitch();
+        final Context context = getContext();
+        updateAccessibilityBounceKeysSwitch(context);
+        updateAccessibilitySlowKeysSwitch(context);
+        updateAccessibilityStickyKeysSwitch(context);
+        updateAccessibilityMouseKeysSwitch(context);
     }
 
     private void unregisterSettingsObserver() {
         getActivity().getContentResolver().unregisterContentObserver(mContentObserver);
     }
 
-    private void updateAccessibilityBounceKeysSwitch() {
+    private void updateAccessibilityBounceKeysSwitch(@NonNull Context context) {
         if (!InputSettings.isAccessibilityBounceKeysFeatureEnabled()) {
             return;
         }
         Objects.requireNonNull(mAccessibilityBounceKeys).setChecked(
-                InputSettings.isAccessibilityBounceKeysEnabled(getContext()));
+                InputSettings.isAccessibilityBounceKeysEnabled(context));
     }
 
-    private void updateAccessibilitySlowKeysSwitch() {
+    private void updateAccessibilitySlowKeysSwitch(@NonNull Context context) {
         if (!InputSettings.isAccessibilitySlowKeysFeatureFlagEnabled()) {
             return;
         }
         Objects.requireNonNull(mAccessibilitySlowKeys).setChecked(
-                InputSettings.isAccessibilitySlowKeysEnabled(getContext()));
+                InputSettings.isAccessibilitySlowKeysEnabled(context));
     }
 
-    private void updateAccessibilityStickyKeysSwitch() {
+    private void updateAccessibilityStickyKeysSwitch(@NonNull Context context) {
         if (!InputSettings.isAccessibilityStickyKeysFeatureEnabled()) {
             return;
         }
         Objects.requireNonNull(mAccessibilityStickyKeys).setChecked(
-                InputSettings.isAccessibilityStickyKeysEnabled(getContext()));
+                InputSettings.isAccessibilityStickyKeysEnabled(context));
     }
 
-    private void updateAccessibilityMouseKeysSwitch() {
+    private void updateAccessibilityMouseKeysSwitch(@NonNull Context context) {
         if (!InputSettings.isAccessibilityMouseKeysFeatureFlagEnabled()) {
             return;
         }
         Objects.requireNonNull(mAccessibilityMouseKeys).setChecked(
-                InputSettings.isAccessibilityMouseKeysEnabled(getContext()));
+                InputSettings.isAccessibilityMouseKeysEnabled(context));
     }
 
     private void toggleKeyboardShortcutsMenu() {
@@ -489,13 +491,13 @@
         @Override
         public void onChange(boolean selfChange, Uri uri) {
             if (sAccessibilityBounceKeysUri.equals(uri)) {
-                updateAccessibilityBounceKeysSwitch();
+                updateAccessibilityBounceKeysSwitch(getContext());
             } else if (sAccessibilitySlowKeysUri.equals(uri)) {
-                updateAccessibilitySlowKeysSwitch();
+                updateAccessibilitySlowKeysSwitch(getContext());
             } else if (sAccessibilityStickyKeysUri.equals(uri)) {
-                updateAccessibilityStickyKeysSwitch();
+                updateAccessibilityStickyKeysSwitch(getContext());
             } else if (sAccessibilityMouseKeysUri.equals(uri)) {
-                updateAccessibilityMouseKeysSwitch();
+                updateAccessibilityMouseKeysSwitch(getContext());
             }
         }
     };
diff --git a/src/com/android/settings/location/LocationScreen.kt b/src/com/android/settings/location/LocationScreen.kt
new file mode 100644
index 0000000..d45b762
--- /dev/null
+++ b/src/com/android/settings/location/LocationScreen.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2024 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.location
+
+import android.content.Context
+import android.location.LocationManager
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.PreferenceIconProvider
+import com.android.settingslib.metadata.PreferenceSummaryProvider
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class LocationScreen : PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceIconProvider {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.location_settings_title
+
+    override val keywords: Int
+        get() = R.string.keywords_location
+
+    override fun getSummary(context: Context): CharSequence? {
+        var locationManager = context.getSystemService(Context.LOCATION_SERVICE) as LocationManager
+        return if (locationManager.isLocationEnabled) {
+            context.getString(R.string.location_settings_loading_app_permission_stats)
+        } else {
+            context.getString(R.string.location_settings_summary_location_off)
+        }
+    }
+
+    override fun getIcon(context: Context) =
+        when {
+            Flags.homepageRevamp() -> R.drawable.ic_settings_location_filled
+            else -> R.drawable.ic_settings_location
+        }
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystLocationSettings()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = LocationSettings::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "location_settings"
+    }
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 87e8817..6a1d3d2 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -29,6 +29,8 @@
 import android.provider.Settings;
 import android.util.Log;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceGroup;
 
@@ -185,4 +187,9 @@
                     R.string.location_settings_tooltip_text_for_chrome));
         }
     }
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return LocationScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/network/AdaptiveConnectivityScreen.kt b/src/com/android/settings/network/AdaptiveConnectivityScreen.kt
new file mode 100644
index 0000000..99f402f
--- /dev/null
+++ b/src/com/android/settings/network/AdaptiveConnectivityScreen.kt
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class AdaptiveConnectivityScreen : PreferenceScreenCreator {
+    override val key
+        get() = KEY
+
+    override val title
+        get() = R.string.adaptive_connectivity_title
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystAdaptiveConnectivity()
+
+    override fun fragmentClass() = AdaptiveConnectivitySettings::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    override fun hasCompleteHierarchy() = false
+
+    companion object {
+        const val KEY = "adaptive_connectivity"
+    }
+}
diff --git a/src/com/android/settings/network/AdaptiveConnectivitySettings.java b/src/com/android/settings/network/AdaptiveConnectivitySettings.java
index 5e1dc12..a4e872c 100644
--- a/src/com/android/settings/network/AdaptiveConnectivitySettings.java
+++ b/src/com/android/settings/network/AdaptiveConnectivitySettings.java
@@ -16,6 +16,10 @@
 package com.android.settings.network;
 
 import android.app.settings.SettingsEnums;
+import android.content.Context;
+
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 
 import com.android.settings.R;
 import com.android.settings.dashboard.DashboardFragment;
@@ -30,8 +34,6 @@
 
     private static final String TAG = "AdaptiveConnectivitySettings";
 
-    private static final String KEY_ADAPTIVE_CONNECTIVITY_PREFERENCE = "adaptive_connectivity";
-
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.ADAPTIVE_CONNECTIVITY_CATEGORY;
@@ -49,4 +51,9 @@
 
     public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider(R.xml.adaptive_connectivity_settings);
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return AdaptiveConnectivityScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/network/MobileNetworkListFragment.kt b/src/com/android/settings/network/MobileNetworkListFragment.kt
index 3118088..a0da636 100644
--- a/src/com/android/settings/network/MobileNetworkListFragment.kt
+++ b/src/com/android/settings/network/MobileNetworkListFragment.kt
@@ -92,4 +92,6 @@
                 simRepositoryFactory(context).canEnterMobileNetworkPage()
         }
     }
+
+    override fun getPreferenceScreenBindingKey(context: Context) = MobileNetworkListScreen.KEY
 }
diff --git a/src/com/android/settings/network/MobileNetworkListScreen.kt b/src/com/android/settings/network/MobileNetworkListScreen.kt
new file mode 100644
index 0000000..93d8ee6
--- /dev/null
+++ b/src/com/android/settings/network/MobileNetworkListScreen.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class MobileNetworkListScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.provider_network_settings_title
+
+    override val icon: Int
+        get() = R.drawable.ic_sim_card
+
+    override val keywords: Int
+        get() = R.string.keywords_more_mobile_networks
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystMobileNetworkList()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = MobileNetworkListFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "mobile_network_list"
+    }
+}
diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java
index ee7d440..2585d04 100644
--- a/src/com/android/settings/network/NetworkDashboardFragment.java
+++ b/src/com/android/settings/network/NetworkDashboardFragment.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 import android.content.Intent;
 
+import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
 import com.android.settings.R;
@@ -115,4 +116,9 @@
                     return buildPreferenceControllers(context, null /* lifecycle */);
                 }
             };
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return NetworkDashboardScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/network/NetworkDashboardScreen.kt b/src/com/android/settings/network/NetworkDashboardScreen.kt
new file mode 100644
index 0000000..ad4ca41
--- /dev/null
+++ b/src/com/android/settings/network/NetworkDashboardScreen.kt
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.PreferenceIconProvider
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class NetworkDashboardScreen : PreferenceScreenCreator, PreferenceIconProvider {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.network_dashboard_title
+
+    override fun getIcon(context: Context) =
+        when {
+            Flags.homepageRevamp() -> R.drawable.ic_settings_wireless_filled
+            else -> R.drawable.ic_settings_wireless
+        }
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystNetworkProviderAndInternetScreen()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = NetworkDashboardFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "network_provider_and_internet_screen"
+    }
+}
diff --git a/src/com/android/settings/network/NetworkProviderScreen.kt b/src/com/android/settings/network/NetworkProviderScreen.kt
new file mode 100644
index 0000000..fa3ed78
--- /dev/null
+++ b/src/com/android/settings/network/NetworkProviderScreen.kt
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+class NetworkProviderScreen : PreferenceScreenCreator, PreferenceAvailabilityProvider {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.provider_internet_settings
+
+    override val icon: Int
+        get() = R.drawable.ic_settings_wireless
+
+    override val keywords: Int
+        get() = R.string.keywords_internet
+
+    override fun isAvailable(context: Context) =
+        context.resources.getBoolean(R.bool.config_show_internet_settings)
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystInternetSettings()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = NetworkProviderSettings::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+
+    companion object {
+        const val KEY = "internet_settings"
+    }
+}
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 69183ff..455201a 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -64,8 +64,8 @@
 
 import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.R;
-import com.android.settings.RestrictedSettingsFragment;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.RestrictedDashboardFragment;
 import com.android.settings.datausage.DataUsagePreference;
 import com.android.settings.datausage.DataUsageUtils;
 import com.android.settings.location.WifiScanningFragment;
@@ -104,7 +104,7 @@
  * UI for Mobile network and Wi-Fi network settings.
  */
 @SearchIndexable
-public class NetworkProviderSettings extends RestrictedSettingsFragment
+public class NetworkProviderSettings extends RestrictedDashboardFragment
         implements Indexable, WifiPickerTracker.WifiPickerTrackerCallback,
         WifiDialog2.WifiDialog2Listener, DialogInterface.OnDismissListener,
         AirplaneModeEnabler.OnAirplaneModeChangedListener, InternetUpdater.InternetChangeListener {
@@ -356,9 +356,17 @@
         mIsGuest = userManager.isGuestUser();
     }
 
-    private void addPreferences() {
-        addPreferencesFromResource(R.xml.network_provider_settings);
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
 
+    @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.network_provider_settings;
+    }
+
+    private void addPreferences() {
         mAirplaneModeMsgPreference = findPreference(PREF_KEY_AIRPLANE_MODE_MSG);
         updateAirplaneModeMsgPreference(mAirplaneModeEnabler.isAirplaneModeOn() /* visible */);
         mConnectedWifiEntryPreferenceCategory = findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS);
@@ -1500,4 +1508,9 @@
             return android.R.attr.colorControlNormal;
         }
     }
+
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return NetworkProviderScreen.KEY;
+    }
 }
diff --git a/src/com/android/settings/network/apn/ApnEditor.java b/src/com/android/settings/network/apn/ApnEditor.java
index dc9741d..533fd29 100644
--- a/src/com/android/settings/network/apn/ApnEditor.java
+++ b/src/com/android/settings/network/apn/ApnEditor.java
@@ -16,153 +16,33 @@
 
 package com.android.settings.network.apn;
 
-import android.app.Dialog;
+import static com.android.settings.network.apn.ApnEditPageProviderKt.EDIT_URL;
+import static com.android.settings.network.apn.ApnEditPageProviderKt.INSERT_URL;
+
 import android.app.settings.SettingsEnums;
-import android.content.ContentValues;
-import android.content.Context;
 import android.content.Intent;
-import android.database.Cursor;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.PersistableBundle;
 import android.os.UserManager;
 import android.provider.Telephony;
 import android.telephony.CarrierConfigManager;
-import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
-import android.telephony.TelephonyManager;
-import android.text.TextUtils;
 import android.util.Log;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.View.OnKeyListener;
 
-import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
-import androidx.appcompat.app.AlertDialog;
-import androidx.preference.EditTextPreference;
-import androidx.preference.ListPreference;
-import androidx.preference.MultiSelectListPreference;
-import androidx.preference.Preference;
-import androidx.preference.Preference.OnPreferenceChangeListener;
-import androidx.preference.TwoStatePreference;
 
 import com.android.internal.util.ArrayUtils;
-import com.android.settings.R;
 import com.android.settings.SettingsPreferenceFragment;
-import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
-import com.android.settings.network.ProxySubscriptionManager;
-import com.android.settingslib.utils.ThreadUtils;
+import com.android.settings.spa.SpaActivity;
 
 import java.util.Arrays;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Objects;
-import java.util.Set;
 
 /** Use to edit apn settings. */
-public class ApnEditor extends SettingsPreferenceFragment
-        implements OnPreferenceChangeListener, OnKeyListener {
+public class ApnEditor extends SettingsPreferenceFragment {
 
     private static final String TAG = ApnEditor.class.getSimpleName();
-    private static final boolean VDBG = false;   // STOPSHIP if true
-
-    private static final String KEY_AUTH_TYPE = "auth_type";
-    private static final String KEY_APN_TYPE = "apn_type";
-    private static final String KEY_PROTOCOL = "apn_protocol";
-    private static final String KEY_ROAMING_PROTOCOL = "apn_roaming_protocol";
-    private static final String KEY_CARRIER_ENABLED = "carrier_enabled";
-    private static final String KEY_BEARER_MULTI = "bearer_multi";
-    private static final String KEY_MVNO_TYPE = "mvno_type";
-    private static final String KEY_PASSWORD = "apn_password";
-
-    @VisibleForTesting
-    static final int MENU_DELETE = Menu.FIRST;
-    private static final int MENU_SAVE = Menu.FIRST + 1;
-    private static final int MENU_CANCEL = Menu.FIRST + 2;
-
-    @VisibleForTesting
-    static String sNotSet;
-    @VisibleForTesting
-    EditTextPreference mName;
-    @VisibleForTesting
-    EditTextPreference mApn;
-    @VisibleForTesting
-    EditTextPreference mProxy;
-    @VisibleForTesting
-    EditTextPreference mPort;
-    @VisibleForTesting
-    EditTextPreference mUser;
-    @VisibleForTesting
-    EditTextPreference mServer;
-    @VisibleForTesting
-    EditTextPreference mPassword;
-    @VisibleForTesting
-    EditTextPreference mMmsc;
-    @VisibleForTesting
-    EditTextPreference mMcc;
-    @VisibleForTesting
-    EditTextPreference mMnc;
-    @VisibleForTesting
-    EditTextPreference mMmsProxy;
-    @VisibleForTesting
-    EditTextPreference mMmsPort;
-    @VisibleForTesting
-    ListPreference mAuthType;
-    @VisibleForTesting
-    EditTextPreference mApnType;
-    @VisibleForTesting
-    ListPreference mProtocol;
-    @VisibleForTesting
-    ListPreference mRoamingProtocol;
-    @VisibleForTesting
-    TwoStatePreference mCarrierEnabled;
-    @VisibleForTesting
-    MultiSelectListPreference mBearerMulti;
-    @VisibleForTesting
-    ListPreference mMvnoType;
-    @VisibleForTesting
-    EditTextPreference mMvnoMatchData;
-
-    @VisibleForTesting
-    ApnData mApnData;
-
-    private String mCurMnc;
-    private String mCurMcc;
-
-    private boolean mNewApn;
-    private int mSubId;
-    @VisibleForTesting
-    ProxySubscriptionManager mProxySubscriptionMgr;
-    private int mBearerInitialVal = 0;
-    private String mMvnoTypeStr;
-    private String mMvnoMatchDataStr;
-    @VisibleForTesting
-    String[] mReadOnlyApnTypes;
-    @VisibleForTesting
-    String[] mDefaultApnTypes;
-    @VisibleForTesting
-    String mDefaultApnProtocol;
-    @VisibleForTesting
-    String mDefaultApnRoamingProtocol;
-    private String[] mReadOnlyApnFields;
-    private boolean mReadOnlyApn;
-    /**
-     * The APN deletion feature within menu is aligned with the APN adding feature.
-     * Having only one of them could lead to a UX which not that make sense from user's
-     * perspective.
-     *
-     * mIsAddApnAllowed stores the configuration value reading from
-     * CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL to support the presentation
-     * control of the menu options. When false, delete option would be invisible to
-     * the end user.
-     */
-    private boolean mIsAddApnAllowed;
-    private Uri mCarrierUri;
-    private boolean mIsCarrierIdApn;
 
     /**
      * APN types for data connections.  These are usage categories for an APN
@@ -225,150 +105,41 @@
         APN_TYPE_OEM_PRIVATE,
     };
 
-    /**
-     * Standard projection for the interesting columns of a normal note.
-     */
-    private static final String[] sProjection = new String[] {
-            Telephony.Carriers._ID,     // 0
-            Telephony.Carriers.NAME,    // 1
-            Telephony.Carriers.APN,     // 2
-            Telephony.Carriers.PROXY,   // 3
-            Telephony.Carriers.PORT,    // 4
-            Telephony.Carriers.USER,    // 5
-            Telephony.Carriers.SERVER,  // 6
-            Telephony.Carriers.PASSWORD, // 7
-            Telephony.Carriers.MMSC, // 8
-            Telephony.Carriers.MCC, // 9
-            Telephony.Carriers.MNC, // 10
-            Telephony.Carriers.NUMERIC, // 11
-            Telephony.Carriers.MMSPROXY, // 12
-            Telephony.Carriers.MMSPORT, // 13
-            Telephony.Carriers.AUTH_TYPE, // 14
-            Telephony.Carriers.TYPE, // 15
-            Telephony.Carriers.PROTOCOL, // 16
-            Telephony.Carriers.CARRIER_ENABLED, // 17
-            Telephony.Carriers.BEARER, // 18
-            Telephony.Carriers.BEARER_BITMASK, // 19
-            Telephony.Carriers.ROAMING_PROTOCOL, // 20
-            Telephony.Carriers.MVNO_TYPE,   // 21
-            Telephony.Carriers.MVNO_MATCH_DATA,  // 22
-            Telephony.Carriers.EDITED_STATUS,   // 23
-            Telephony.Carriers.USER_EDITABLE,   // 24
-            Telephony.Carriers.CARRIER_ID       // 25
-    };
-
-    private static final int ID_INDEX = 0;
-    @VisibleForTesting
-    static final int NAME_INDEX = 1;
-    @VisibleForTesting
-    static final int APN_INDEX = 2;
-    private static final int PROXY_INDEX = 3;
-    private static final int PORT_INDEX = 4;
-    private static final int USER_INDEX = 5;
-    private static final int SERVER_INDEX = 6;
-    private static final int PASSWORD_INDEX = 7;
-    private static final int MMSC_INDEX = 8;
-    @VisibleForTesting
-    static final int MCC_INDEX = 9;
-    @VisibleForTesting
-    static final int MNC_INDEX = 10;
-    private static final int MMSPROXY_INDEX = 12;
-    private static final int MMSPORT_INDEX = 13;
-    private static final int AUTH_TYPE_INDEX = 14;
-    @VisibleForTesting
-    static final int TYPE_INDEX = 15;
-    @VisibleForTesting
-    static final int PROTOCOL_INDEX = 16;
-    @VisibleForTesting
-    static final int CARRIER_ENABLED_INDEX = 17;
-    private static final int BEARER_INDEX = 18;
-    private static final int BEARER_BITMASK_INDEX = 19;
-    @VisibleForTesting
-    static final int ROAMING_PROTOCOL_INDEX = 20;
-    private static final int MVNO_TYPE_INDEX = 21;
-    private static final int MVNO_MATCH_DATA_INDEX = 22;
-    private static final int EDITED_INDEX = 23;
-    private static final int USER_EDITABLE_INDEX = 24;
-    private static final int CARRIER_ID_INDEX = 25;
-
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        maybeRedirectToNewPage();
+        finish();
+    }
+
+    private void maybeRedirectToNewPage() {
         if (isUserRestricted()) {
             Log.e(TAG, "This setting isn't available due to user restriction.");
-            finish();
             return;
         }
 
-        setLifecycleForAllControllers();
-
         final Intent intent = getIntent();
         final String action = intent.getAction();
-        if (TextUtils.isEmpty(action)) {
-            finish();
-            return;
-        }
-        mSubId = intent.getIntExtra(ApnSettings.SUB_ID,
-                SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
-        initApnEditorUi();
-        getCarrierCustomizedConfig(getContext());
+        int subId =
+                intent.getIntExtra(ApnSettings.SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID);
 
-        Uri uri = null;
-        if (action.equals(Intent.ACTION_EDIT)) {
-            uri = intent.getData();
+        Uri uri = intent.getData();
+        if (Intent.ACTION_EDIT.equals(action)) {
             if (!uri.isPathPrefixMatch(Telephony.Carriers.CONTENT_URI)) {
                 Log.e(TAG, "Edit request not for carrier table. Uri: " + uri);
-                finish();
-                return;
+            } else {
+                String route = ApnEditPageProvider.INSTANCE.getRoute(EDIT_URL, uri, subId);
+                SpaActivity.startSpaActivity(requireContext(), route);
             }
-        } else if (action.equals(Intent.ACTION_INSERT)) {
-            mCarrierUri = intent.getData();
-            if (!mCarrierUri.isPathPrefixMatch(Telephony.Carriers.CONTENT_URI)) {
-                Log.e(TAG, "Insert request not for carrier table. Uri: " + mCarrierUri);
-                finish();
-                return;
+        } else if (Intent.ACTION_INSERT.equals(action)) {
+            if (!uri.isPathPrefixMatch(Telephony.Carriers.CONTENT_URI)) {
+                Log.e(TAG, "Insert request not for carrier table. Uri: " + uri);
+            } else {
+                String route = ApnEditPageProvider.INSTANCE.getRoute(
+                        INSERT_URL, Telephony.Carriers.CONTENT_URI, subId);
+                SpaActivity.startSpaActivity(getContext(), route);
             }
-            mNewApn = true;
-            mMvnoTypeStr = intent.getStringExtra(ApnSettings.MVNO_TYPE);
-            mMvnoMatchDataStr = intent.getStringExtra(ApnSettings.MVNO_MATCH_DATA);
-        } else {
-            finish();
-            return;
-        }
-
-        // Creates an ApnData to store the apn data temporary, so that we don't need the cursor to
-        // get the apn data. The uri is null if the action is ACTION_INSERT, that mean there is no
-        // record in the database, so create a empty ApnData to represent a empty row of database.
-        if (uri != null) {
-            mApnData = getApnDataFromUri(uri);
-        } else {
-            mApnData = new ApnData(sProjection.length);
-        }
-        final int carrierId = mApnData.getInteger(CARRIER_ID_INDEX,
-                TelephonyManager.UNKNOWN_CARRIER_ID);
-        mIsCarrierIdApn = (carrierId > TelephonyManager.UNKNOWN_CARRIER_ID);
-
-        final boolean isUserEdited = mApnData.getInteger(EDITED_INDEX,
-                Telephony.Carriers.USER_EDITED) == Telephony.Carriers.USER_EDITED;
-
-        Log.d(TAG, "onCreate: EDITED " + isUserEdited);
-        // if it's not a USER_EDITED apn, check if it's read-only
-        if (!isUserEdited && (mApnData.getInteger(USER_EDITABLE_INDEX, 1) == 0
-                || apnTypesMatch(mReadOnlyApnTypes, mApnData.getString(TYPE_INDEX)))) {
-            Log.d(TAG, "onCreate: apnTypesMatch; read-only APN");
-            mReadOnlyApn = true;
-            disableAllFields();
-        } else if (!ArrayUtils.isEmpty(mReadOnlyApnFields)) {
-            disableFields(mReadOnlyApnFields);
-        }
-        // Make sure that a user cannot break carrier id APN matching
-        if (mIsCarrierIdApn) {
-            disableFieldsForCarrieridApn();
-        }
-
-        for (int i = 0; i < getPreferenceScreen().getPreferenceCount(); i++) {
-            getPreferenceScreen().getPreference(i).setOnPreferenceChangeListener(this);
         }
     }
 
@@ -385,44 +156,6 @@
     }
 
     /**
-     * Enable ProxySubscriptionMgr with Lifecycle support for all controllers
-     * live within this fragment
-     */
-    private void setLifecycleForAllControllers() {
-        if (mProxySubscriptionMgr == null) {
-            mProxySubscriptionMgr = ProxySubscriptionManager.getInstance(getContext());
-        }
-        mProxySubscriptionMgr.setLifecycle(getLifecycle());
-    }
-
-    @Override
-    public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
-        super.onViewStateRestored(savedInstanceState);
-        fillUI(savedInstanceState == null);
-        setCarrierCustomizedConfigToUi();
-    }
-
-    @VisibleForTesting
-    static String formatInteger(String value) {
-        try {
-            final int intValue = Integer.parseInt(value);
-            return String.format(getCorrectDigitsFormat(value), intValue);
-        } catch (NumberFormatException e) {
-            return value;
-        }
-    }
-
-    /**
-     * Get the digits format so we preserve leading 0's.
-     * MCCs are 3 digits and MNCs are either 2 or 3.
-     */
-    static String getCorrectDigitsFormat(String value) {
-        if (value.length() == 2) return "%02d";
-        else return "%03d";
-    }
-
-
-    /**
      * Check if passed in array of APN types indicates all APN types
      * @param apnTypes array of APN types. "*" indicates all types.
      * @return true if all apn types are included in the array, false otherwise
@@ -447,1046 +180,12 @@
         return true;
     }
 
-    /**
-     * Check if APN types overlap.
-     * @param apnTypesArray1 array of APNs. Empty array indicates no APN type; "*" indicates all
-     *                       types
-     * @param apnTypes2 comma separated string of APN types. Empty string represents all types.
-     * @return if any apn type matches return true, otherwise return false
-     */
-    private boolean apnTypesMatch(String[] apnTypesArray1, String apnTypes2) {
-        if (ArrayUtils.isEmpty(apnTypesArray1)) {
-            return false;
-        }
-
-        final String[] apnTypesArray1LowerCase = new String[apnTypesArray1.length];
-        for (int i = 0; i < apnTypesArray1.length; i++) {
-            apnTypesArray1LowerCase[i] = apnTypesArray1[i].toLowerCase();
-        }
-
-        if (hasAllApns(apnTypesArray1LowerCase) || TextUtils.isEmpty(apnTypes2)) {
-            return true;
-        }
-
-        final List apnTypesList1 = Arrays.asList(apnTypesArray1LowerCase);
-        final String[] apnTypesArray2 = apnTypes2.split(",");
-
-        for (String apn : apnTypesArray2) {
-            if (apnTypesList1.contains(apn.trim().toLowerCase())) {
-                Log.d(TAG, "apnTypesMatch: true because match found for " + apn.trim());
-                return true;
-            }
-        }
-
-        Log.d(TAG, "apnTypesMatch: false");
-        return false;
-    }
-
-    /**
-     * Function to get Preference obj corresponding to an apnField
-     * @param apnField apn field name for which pref is needed
-     * @return Preference obj corresponding to passed in apnField
-     */
-    private Preference getPreferenceFromFieldName(String apnField) {
-        switch (apnField) {
-            case Telephony.Carriers.NAME:
-                return mName;
-            case Telephony.Carriers.APN:
-                return mApn;
-            case Telephony.Carriers.PROXY:
-                return mProxy;
-            case Telephony.Carriers.PORT:
-                return mPort;
-            case Telephony.Carriers.USER:
-                return mUser;
-            case Telephony.Carriers.SERVER:
-                return mServer;
-            case Telephony.Carriers.PASSWORD:
-                return mPassword;
-            case Telephony.Carriers.MMSPROXY:
-                return mMmsProxy;
-            case Telephony.Carriers.MMSPORT:
-                return mMmsPort;
-            case Telephony.Carriers.MMSC:
-                return mMmsc;
-            case Telephony.Carriers.MCC:
-                return mMcc;
-            case Telephony.Carriers.MNC:
-                return mMnc;
-            case Telephony.Carriers.TYPE:
-                return mApnType;
-            case Telephony.Carriers.AUTH_TYPE:
-                return mAuthType;
-            case Telephony.Carriers.PROTOCOL:
-                return mProtocol;
-            case Telephony.Carriers.ROAMING_PROTOCOL:
-                return mRoamingProtocol;
-            case Telephony.Carriers.CARRIER_ENABLED:
-                return mCarrierEnabled;
-            case Telephony.Carriers.BEARER:
-            case Telephony.Carriers.BEARER_BITMASK:
-                return mBearerMulti;
-            case Telephony.Carriers.MVNO_TYPE:
-                return mMvnoType;
-            case Telephony.Carriers.MVNO_MATCH_DATA:
-                return mMvnoMatchData;
-        }
-        return null;
-    }
-
-    /**
-     * Disables given fields so that user cannot modify them
-     *
-     * @param apnFields fields to be disabled
-     */
-    private void disableFields(String[] apnFields) {
-        for (String apnField : apnFields) {
-            final Preference preference = getPreferenceFromFieldName(apnField);
-            if (preference != null) {
-                preference.setEnabled(false);
-            }
-        }
-    }
-
-    /**
-     * Disables all fields so that user cannot modify the APN
-     */
-    private void disableAllFields() {
-        mName.setEnabled(false);
-        mApn.setEnabled(false);
-        mProxy.setEnabled(false);
-        mPort.setEnabled(false);
-        mUser.setEnabled(false);
-        mServer.setEnabled(false);
-        mPassword.setEnabled(false);
-        mMmsProxy.setEnabled(false);
-        mMmsPort.setEnabled(false);
-        mMmsc.setEnabled(false);
-        mMcc.setEnabled(false);
-        mMnc.setEnabled(false);
-        mApnType.setEnabled(false);
-        mAuthType.setEnabled(false);
-        mProtocol.setEnabled(false);
-        mRoamingProtocol.setEnabled(false);
-        mCarrierEnabled.setEnabled(false);
-        mBearerMulti.setEnabled(false);
-        mMvnoType.setEnabled(false);
-        mMvnoMatchData.setEnabled(false);
-    }
-
-    /**
-     * Disables fields for a carrier id APN to avoid breaking the match criteria
-     */
-    private void disableFieldsForCarrieridApn() {
-        mMcc.setEnabled(false);
-        mMnc.setEnabled(false);
-        mMvnoType.setEnabled(false);
-        mMvnoMatchData.setEnabled(false);
-    }
-
     @Override
     public int getMetricsCategory() {
         return SettingsEnums.APN_EDITOR;
     }
 
     @VisibleForTesting
-    void fillUI(boolean firstTime) {
-        if (firstTime) {
-            // Fill in all the values from the db in both text editor and summary
-            mName.setText(mApnData.getString(NAME_INDEX));
-            mApn.setText(mApnData.getString(APN_INDEX));
-            mProxy.setText(mApnData.getString(PROXY_INDEX));
-            mPort.setText(mApnData.getString(PORT_INDEX));
-            mUser.setText(mApnData.getString(USER_INDEX));
-            mServer.setText(mApnData.getString(SERVER_INDEX));
-            mPassword.setText(mApnData.getString(PASSWORD_INDEX));
-            mMmsProxy.setText(mApnData.getString(MMSPROXY_INDEX));
-            mMmsPort.setText(mApnData.getString(MMSPORT_INDEX));
-            mMmsc.setText(mApnData.getString(MMSC_INDEX));
-            mMcc.setText(mApnData.getString(MCC_INDEX));
-            mMnc.setText(mApnData.getString(MNC_INDEX));
-            mApnType.setText(mApnData.getString(TYPE_INDEX));
-            if (mNewApn) {
-                final SubscriptionInfo subInfo =
-                        mProxySubscriptionMgr.getAccessibleSubscriptionInfo(mSubId);
-
-                // Country code
-                final String mcc = (subInfo == null) ? null : subInfo.getMccString();
-                // Network code
-                final String mnc = (subInfo == null) ? null : subInfo.getMncString();
-
-                if (!TextUtils.isEmpty(mcc)) {
-                    // Auto populate MNC and MCC for new entries, based on what SIM reports
-                    mMcc.setText(mcc);
-                    mMnc.setText(mnc);
-                    mCurMnc = mnc;
-                    mCurMcc = mcc;
-                }
-            }
-            final int authVal = mApnData.getInteger(AUTH_TYPE_INDEX, -1);
-            if (authVal != -1) {
-                mAuthType.setValueIndex(authVal);
-            } else {
-                mAuthType.setValue(null);
-            }
-
-            mProtocol.setValue(mApnData.getString(PROTOCOL_INDEX));
-            mRoamingProtocol.setValue(mApnData.getString(ROAMING_PROTOCOL_INDEX));
-            mCarrierEnabled.setChecked(mApnData.getInteger(CARRIER_ENABLED_INDEX, 1) == 1);
-            mBearerInitialVal = mApnData.getInteger(BEARER_INDEX, 0);
-
-            final HashSet<String> bearers = new HashSet<String>();
-            int bearerBitmask = mApnData.getInteger(BEARER_BITMASK_INDEX, 0);
-            if (bearerBitmask == 0) {
-                if (mBearerInitialVal == 0) {
-                    bearers.add("" + 0);
-                }
-            } else {
-                int i = 1;
-                while (bearerBitmask != 0) {
-                    if ((bearerBitmask & 1) == 1) {
-                        bearers.add("" + i);
-                    }
-                    bearerBitmask >>= 1;
-                    i++;
-                }
-            }
-
-            if (mBearerInitialVal != 0 && !bearers.contains("" + mBearerInitialVal)) {
-                // add mBearerInitialVal to bearers
-                bearers.add("" + mBearerInitialVal);
-            }
-            mBearerMulti.setValues(bearers);
-
-            mMvnoType.setValue(mApnData.getString(MVNO_TYPE_INDEX));
-            mMvnoMatchData.setEnabled(false);
-            mMvnoMatchData.setText(mApnData.getString(MVNO_MATCH_DATA_INDEX));
-            if (mNewApn && mMvnoTypeStr != null && mMvnoMatchDataStr != null) {
-                mMvnoType.setValue(mMvnoTypeStr);
-                mMvnoMatchData.setText(mMvnoMatchDataStr);
-            }
-        }
-
-        mName.setSummary(checkNull(mName.getText()));
-        mApn.setSummary(checkNull(mApn.getText()));
-        mProxy.setSummary(checkNull(mProxy.getText()));
-        mPort.setSummary(checkNull(mPort.getText()));
-        mUser.setSummary(checkNull(mUser.getText()));
-        mServer.setSummary(checkNull(mServer.getText()));
-        mPassword.setSummary(starify(mPassword.getText()));
-        mMmsProxy.setSummary(checkNull(mMmsProxy.getText()));
-        mMmsPort.setSummary(checkNull(mMmsPort.getText()));
-        mMmsc.setSummary(checkNull(mMmsc.getText()));
-        mMcc.setSummary(formatInteger(checkNull(mMcc.getText())));
-        mMnc.setSummary(formatInteger(checkNull(mMnc.getText())));
-        mApnType.setSummary(checkNull(mApnType.getText()));
-
-        final String authVal = mAuthType.getValue();
-        if (authVal != null) {
-            final int authValIndex = Integer.parseInt(authVal);
-            mAuthType.setValueIndex(authValIndex);
-
-            final String[] values = getResources().getStringArray(R.array.apn_auth_entries);
-            mAuthType.setSummary(values[authValIndex]);
-        } else {
-            mAuthType.setSummary(sNotSet);
-        }
-
-        mProtocol.setSummary(checkNull(protocolDescription(mProtocol.getValue(), mProtocol)));
-        mRoamingProtocol.setSummary(
-                checkNull(protocolDescription(mRoamingProtocol.getValue(), mRoamingProtocol)));
-        mBearerMulti.setSummary(
-                checkNull(bearerMultiDescription(mBearerMulti.getValues())));
-        mMvnoType.setSummary(
-                checkNull(mvnoDescription(mMvnoType.getValue())));
-        mMvnoMatchData.setSummary(checkNullforMvnoValue(mMvnoMatchData.getText()));
-        // allow user to edit carrier_enabled for some APN
-        final boolean ceEditable = getResources().getBoolean(
-                R.bool.config_allow_edit_carrier_enabled);
-        if (ceEditable) {
-            mCarrierEnabled.setEnabled(true);
-        } else {
-            mCarrierEnabled.setEnabled(false);
-        }
-    }
-
-    /**
-     * Returns the UI choice (e.g., "IPv4/IPv6") corresponding to the given
-     * raw value of the protocol preference (e.g., "IPV4V6"). If unknown,
-     * return null.
-     */
-    private String protocolDescription(String raw, ListPreference protocol) {
-        String uRaw = checkNull(raw).toUpperCase();
-        uRaw = uRaw.equals("IPV4") ? "IP" : uRaw;
-        final int protocolIndex = protocol.findIndexOfValue(uRaw);
-        if (protocolIndex == -1) {
-            return null;
-        } else {
-            final String[] values = getResources().getStringArray(R.array.apn_protocol_entries);
-            try {
-                return values[protocolIndex];
-            } catch (ArrayIndexOutOfBoundsException e) {
-                return null;
-            }
-        }
-    }
-
-    private String bearerMultiDescription(Set<String> raw) {
-        final String[] values = getResources().getStringArray(R.array.bearer_entries);
-        final StringBuilder retVal = new StringBuilder();
-        boolean first = true;
-        for (String bearer : raw) {
-            int bearerIndex = mBearerMulti.findIndexOfValue(bearer);
-            try {
-                if (first) {
-                    retVal.append(values[bearerIndex]);
-                    first = false;
-                } else {
-                    retVal.append(", " + values[bearerIndex]);
-                }
-            } catch (ArrayIndexOutOfBoundsException e) {
-                // ignore
-            }
-        }
-        final String val = retVal.toString();
-        if (!TextUtils.isEmpty(val)) {
-            return val;
-        }
-        return null;
-    }
-
-    private String mvnoDescription(String newValue) {
-        final int mvnoIndex = mMvnoType.findIndexOfValue(newValue);
-        final String oldValue = mMvnoType.getValue();
-
-        if (mvnoIndex == -1) {
-            return null;
-        } else {
-            final String[] values = getResources().getStringArray(R.array.mvno_type_entries);
-            final boolean mvnoMatchDataUneditable =
-                    mReadOnlyApn || (mReadOnlyApnFields != null
-                            && Arrays.asList(mReadOnlyApnFields)
-                            .contains(Telephony.Carriers.MVNO_MATCH_DATA));
-            mMvnoMatchData.setEnabled(!mvnoMatchDataUneditable && mvnoIndex != 0);
-            if (newValue != null && !newValue.equals(oldValue)) {
-                if (values[mvnoIndex].equals("SPN")) {
-                    TelephonyManager telephonyManager = (TelephonyManager)
-                            getContext().getSystemService(TelephonyManager.class);
-                    final TelephonyManager telephonyManagerForSubId =
-                            telephonyManager.createForSubscriptionId(mSubId);
-                    if (telephonyManagerForSubId != null) {
-                        telephonyManager = telephonyManagerForSubId;
-                    }
-                    mMvnoMatchData.setText(telephonyManager.getSimOperatorName());
-                } else if (values[mvnoIndex].equals("IMSI")) {
-                    final SubscriptionInfo subInfo =
-                            mProxySubscriptionMgr.getAccessibleSubscriptionInfo(mSubId);
-                    final String mcc = (subInfo == null) ? "" :
-                            Objects.toString(subInfo.getMccString(), "");
-                    final String mnc = (subInfo == null) ? "" :
-                            Objects.toString(subInfo.getMncString(), "");
-                    mMvnoMatchData.setText(mcc + mnc + "x");
-                } else if (values[mvnoIndex].equals("GID")) {
-                    TelephonyManager telephonyManager = (TelephonyManager)
-                            getContext().getSystemService(TelephonyManager.class);
-                    final TelephonyManager telephonyManagerForSubId =
-                            telephonyManager.createForSubscriptionId(mSubId);
-                    if (telephonyManagerForSubId != null) {
-                        telephonyManager = telephonyManagerForSubId;
-                    }
-                    mMvnoMatchData.setText(telephonyManager.getGroupIdLevel1());
-                } else {
-                    // mvno type 'none' case. At this time, mvnoIndex should be 0.
-                    mMvnoMatchData.setText("");
-                }
-            }
-
-            try {
-                return values[mvnoIndex];
-            } catch (ArrayIndexOutOfBoundsException e) {
-                return null;
-            }
-        }
-    }
-    /**
-     * Callback when preference status changed.
-     */
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        String key = preference.getKey();
-        if (KEY_AUTH_TYPE.equals(key)) {
-            try {
-                final int index = Integer.parseInt((String) newValue);
-                mAuthType.setValueIndex(index);
-
-                final String[] values = getResources().getStringArray(R.array.apn_auth_entries);
-                mAuthType.setSummary(values[index]);
-            } catch (NumberFormatException e) {
-                return false;
-            }
-        } else if (KEY_APN_TYPE.equals(key)) {
-            String data = (TextUtils.isEmpty((String) newValue)
-                    && !ArrayUtils.isEmpty(mDefaultApnTypes))
-                    ? getEditableApnType(mDefaultApnTypes) : (String) newValue;
-            if (!TextUtils.isEmpty(data)) {
-                mApnType.setSummary(data);
-            }
-        } else if (KEY_PROTOCOL.equals(key)) {
-            final String protocol = protocolDescription((String) newValue, mProtocol);
-            if (protocol == null) {
-                return false;
-            }
-            mProtocol.setSummary(protocol);
-            mProtocol.setValue((String) newValue);
-        } else if (KEY_ROAMING_PROTOCOL.equals(key)) {
-            final String protocol = protocolDescription((String) newValue, mRoamingProtocol);
-            if (protocol == null) {
-                return false;
-            }
-            mRoamingProtocol.setSummary(protocol);
-            mRoamingProtocol.setValue((String) newValue);
-        } else if (KEY_BEARER_MULTI.equals(key)) {
-            final String bearer = bearerMultiDescription((Set<String>) newValue);
-            if (bearer == null) {
-                return false;
-            }
-            mBearerMulti.setValues((Set<String>) newValue);
-            mBearerMulti.setSummary(bearer);
-        } else if (KEY_MVNO_TYPE.equals(key)) {
-            final String mvno = mvnoDescription((String) newValue);
-            if (mvno == null) {
-                return false;
-            }
-            mMvnoType.setValue((String) newValue);
-            mMvnoType.setSummary(mvno);
-            mMvnoMatchData.setSummary(checkNullforMvnoValue(mMvnoMatchData.getText()));
-        } else if (KEY_PASSWORD.equals(key)) {
-            mPassword.setSummary(starify(newValue != null ? String.valueOf(newValue) : ""));
-        } else if (KEY_CARRIER_ENABLED.equals(key)) {
-            // do nothing
-        } else {
-            preference.setSummary(checkNull(newValue != null ? String.valueOf(newValue) : null));
-        }
-        return true;
-    }
-
-    @Override
-    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        super.onCreateOptionsMenu(menu, inflater);
-        // If it's a new APN, then cancel will delete the new entry in onPause
-        // If APN add is not allowed, delete might lead to issue regarding recovery
-        if (!mNewApn && !mReadOnlyApn && mIsAddApnAllowed) {
-            menu.add(0, MENU_DELETE, 0, R.string.menu_delete)
-                .setIcon(R.drawable.ic_delete);
-        }
-        if (!mReadOnlyApn) {
-            menu.add(0, MENU_SAVE, 0, R.string.menu_save)
-                .setIcon(android.R.drawable.ic_menu_save);
-        }
-        menu.add(0, MENU_CANCEL, 0, R.string.menu_cancel)
-            .setIcon(android.R.drawable.ic_menu_close_clear_cancel);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case MENU_DELETE:
-                deleteApn();
-                finish();
-                return true;
-            case MENU_SAVE:
-                if (validateAndSaveApnData()) {
-                    finish();
-                }
-                return true;
-            case MENU_CANCEL:
-                finish();
-                return true;
-            default:
-                return super.onOptionsItemSelected(item);
-        }
-    }
-
-    @Override
-    public void onViewCreated(View view, Bundle savedInstanceState) {
-        super.onViewCreated(view, savedInstanceState);
-        view.setOnKeyListener(this);
-        view.setFocusableInTouchMode(true);
-        view.requestFocus();
-    }
-
-    /**
-     * Try to save the apn data when pressed the back button. An error message will be displayed if
-     * the apn data is invalid.
-     *
-     * TODO(b/77339593): Try to keep the same behavior between back button and up navigate button.
-     * We will save the valid apn data to the database when pressed the back button, but discard all
-     * user changed when pressed the up navigate button.
-     */
-    @Override
-    public boolean onKey(View v, int keyCode, KeyEvent event) {
-        if (event.getAction() != KeyEvent.ACTION_DOWN) return false;
-        switch (keyCode) {
-            case KeyEvent.KEYCODE_BACK: {
-                if (validateAndSaveApnData()) {
-                    finish();
-                }
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Add key, value to {@code cv} and compare the value against the value at index in
-     * {@link #mApnData}.
-     *
-     * <p>
-     * The key, value will not add to {@code cv} if value is null.
-     *
-     * @return true if values are different. {@code assumeDiff} indicates if values can be assumed
-     * different in which case no comparison is needed.
-     */
-    boolean setStringValueAndCheckIfDiff(
-            ContentValues cv, String key, String value, boolean assumeDiff, int index) {
-        final String valueFromLocalCache = mApnData.getString(index);
-        if (VDBG) {
-            Log.d(TAG, "setStringValueAndCheckIfDiff: assumeDiff: " + assumeDiff
-                    + " key: " + key
-                    + " value: '" + value
-                    + "' valueFromDb: '" + valueFromLocalCache + "'");
-        }
-        final boolean isDiff = assumeDiff
-                || !((TextUtils.isEmpty(value) && TextUtils.isEmpty(valueFromLocalCache))
-                || (value != null && value.equals(valueFromLocalCache)));
-
-        if (isDiff && value != null) {
-            cv.put(key, value);
-        }
-        return isDiff;
-    }
-
-    /**
-     * Add key, value to {@code cv} and compare the value against the value at index in
-     * {@link #mApnData}.
-     *
-     * @return true if values are different. {@code assumeDiff} indicates if values can be assumed
-     * different in which case no comparison is needed.
-     */
-    boolean setIntValueAndCheckIfDiff(
-            ContentValues cv, String key, int value, boolean assumeDiff, int index) {
-        final Integer valueFromLocalCache = mApnData.getInteger(index);
-        if (VDBG) {
-            Log.d(TAG, "setIntValueAndCheckIfDiff: assumeDiff: " + assumeDiff
-                    + " key: " + key
-                    + " value: '" + value
-                    + "' valueFromDb: '" + valueFromLocalCache + "'");
-        }
-
-        final boolean isDiff = assumeDiff || value != valueFromLocalCache;
-        if (isDiff) {
-            cv.put(key, value);
-        }
-        return isDiff;
-    }
-
-    /**
-     * Validates the apn data and save it to the database if it's valid.
-     *
-     * <p>
-     * A dialog with error message will be displayed if the APN data is invalid.
-     *
-     * @return true if there is no error
-     */
-    @VisibleForTesting
-    boolean validateAndSaveApnData() {
-        // Nothing to do if it's a read only APN
-        if (mReadOnlyApn) {
-            return true;
-        }
-
-        final String name = checkNotSet(mName.getText());
-        final String apn = checkNotSet(mApn.getText());
-        final String mcc = checkNotSet(mMcc.getText());
-        final String mnc = checkNotSet(mMnc.getText());
-
-        final String errorMsg = validateApnData();
-        if (errorMsg != null) {
-            showError();
-            return false;
-        }
-
-        final ContentValues values = new ContentValues();
-        // call update() if it's a new APN. If not, check if any field differs from the db value;
-        // if any diff is found update() should be called
-        boolean callUpdate = mNewApn;
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.NAME,
-                name,
-                callUpdate,
-                NAME_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.APN,
-                apn,
-                callUpdate,
-                APN_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.PROXY,
-                checkNotSet(mProxy.getText()),
-                callUpdate,
-                PROXY_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.PORT,
-                checkNotSet(mPort.getText()),
-                callUpdate,
-                PORT_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MMSPROXY,
-                checkNotSet(mMmsProxy.getText()),
-                callUpdate,
-                MMSPROXY_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MMSPORT,
-                checkNotSet(mMmsPort.getText()),
-                callUpdate,
-                MMSPORT_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.USER,
-                checkNotSet(mUser.getText()),
-                callUpdate,
-                USER_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.SERVER,
-                checkNotSet(mServer.getText()),
-                callUpdate,
-                SERVER_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.PASSWORD,
-                checkNotSet(mPassword.getText()),
-                callUpdate,
-                PASSWORD_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MMSC,
-                checkNotSet(mMmsc.getText()),
-                callUpdate,
-                MMSC_INDEX);
-
-        final String authVal = mAuthType.getValue();
-        if (authVal != null) {
-            callUpdate = setIntValueAndCheckIfDiff(values,
-                    Telephony.Carriers.AUTH_TYPE,
-                    Integer.parseInt(authVal),
-                    callUpdate,
-                    AUTH_TYPE_INDEX);
-        }
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.PROTOCOL,
-                checkNotSet(mProtocol.getValue()),
-                callUpdate,
-                PROTOCOL_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.ROAMING_PROTOCOL,
-                checkNotSet(mRoamingProtocol.getValue()),
-                callUpdate,
-                ROAMING_PROTOCOL_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.TYPE,
-                checkNotSet(getUserEnteredApnType()),
-                callUpdate,
-                TYPE_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MCC,
-                mcc,
-                callUpdate,
-                MCC_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MNC,
-                mnc,
-                callUpdate,
-                MNC_INDEX);
-
-        values.put(Telephony.Carriers.NUMERIC, mcc + mnc);
-
-        if (mCurMnc != null && mCurMcc != null) {
-            if (mCurMnc.equals(mnc) && mCurMcc.equals(mcc)) {
-                values.put(Telephony.Carriers.CURRENT, 1);
-            }
-        }
-
-        final Set<String> bearerSet = mBearerMulti.getValues();
-        int bearerBitmask = 0;
-        for (String bearer : bearerSet) {
-            if (Integer.parseInt(bearer) == 0) {
-                bearerBitmask = 0;
-                break;
-            } else {
-                bearerBitmask |= getBitmaskForTech(Integer.parseInt(bearer));
-            }
-        }
-        callUpdate = setIntValueAndCheckIfDiff(values,
-                Telephony.Carriers.BEARER_BITMASK,
-                bearerBitmask,
-                callUpdate,
-                BEARER_BITMASK_INDEX);
-
-        int bearerVal;
-        if (bearerBitmask == 0 || mBearerInitialVal == 0) {
-            bearerVal = 0;
-        } else if (bitmaskHasTech(bearerBitmask, mBearerInitialVal)) {
-            bearerVal = mBearerInitialVal;
-        } else {
-            // bearer field was being used but bitmask has changed now and does not include the
-            // initial bearer value -- setting bearer to 0 but maybe better behavior is to choose a
-            // random tech from the new bitmask??
-            bearerVal = 0;
-        }
-        callUpdate = setIntValueAndCheckIfDiff(values,
-                Telephony.Carriers.BEARER,
-                bearerVal,
-                callUpdate,
-                BEARER_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MVNO_TYPE,
-                checkNotSet(mMvnoType.getValue()),
-                callUpdate,
-                MVNO_TYPE_INDEX);
-
-        callUpdate = setStringValueAndCheckIfDiff(values,
-                Telephony.Carriers.MVNO_MATCH_DATA,
-                checkNotSet(mMvnoMatchData.getText()),
-                callUpdate,
-                MVNO_MATCH_DATA_INDEX);
-
-        callUpdate = setIntValueAndCheckIfDiff(values,
-                Telephony.Carriers.CARRIER_ENABLED,
-                mCarrierEnabled.isChecked() ? 1 : 0,
-                callUpdate,
-                CARRIER_ENABLED_INDEX);
-
-        values.put(Telephony.Carriers.EDITED_STATUS, Telephony.Carriers.USER_EDITED);
-
-        if (callUpdate) {
-            final Uri uri = mApnData.getUri() == null ? mCarrierUri : mApnData.getUri();
-            updateApnDataToDatabase(uri, values);
-        } else {
-            if (VDBG) Log.d(TAG, "validateAndSaveApnData: not calling update()");
-        }
-
-        return true;
-    }
-
-    private void updateApnDataToDatabase(Uri uri, ContentValues values) {
-        ThreadUtils.postOnBackgroundThread(() -> {
-            if (uri.equals(mCarrierUri)) {
-                // Add a new apn to the database
-                final Uri newUri = getContentResolver().insert(mCarrierUri, values);
-                if (newUri == null) {
-                    Log.e(TAG, "Can't add a new apn to database " + mCarrierUri);
-                }
-            } else {
-                // Update the existing apn
-                getContentResolver().update(
-                        uri, values, null /* where */, null /* selection Args */);
-            }
-        });
-    }
-
-    /**
-     * Validates whether the apn data is valid.
-     *
-     * @return An error message if the apn data is invalid, otherwise return null.
-     */
-    @VisibleForTesting
-    String validateApnData() {
-        String errorMsg = null;
-
-        final String name = checkNotSet(mName.getText());
-        final String apn = checkNotSet(mApn.getText());
-        final String mcc = checkNotSet(mMcc.getText());
-        final String mnc = checkNotSet(mMnc.getText());
-        boolean doNotCheckMccMnc = mIsCarrierIdApn && TextUtils.isEmpty(mcc)
-                && TextUtils.isEmpty(mnc);
-        if (TextUtils.isEmpty(name)) {
-            errorMsg = getResources().getString(R.string.error_name_empty);
-        } else if (TextUtils.isEmpty(apn)) {
-            errorMsg = getResources().getString(R.string.error_apn_empty);
-        } else if (doNotCheckMccMnc) {
-            Log.d(TAG, "validateApnData: carrier id APN does not have mcc/mnc defined");
-            // no op, skip mcc mnc null check
-        } else if (mcc == null || mcc.length() != 3) {
-            errorMsg = getResources().getString(R.string.error_mcc_not3);
-        } else if ((mnc == null || (mnc.length() & 0xFFFE) != 2)) {
-            errorMsg = getResources().getString(R.string.error_mnc_not23);
-        }
-
-        if (errorMsg == null) {
-            // if carrier does not allow editing certain apn types, make sure type does not include
-            // those
-            if (!ArrayUtils.isEmpty(mReadOnlyApnTypes)
-                    && apnTypesMatch(mReadOnlyApnTypes, getUserEnteredApnType())) {
-                final StringBuilder stringBuilder = new StringBuilder();
-                for (String type : mReadOnlyApnTypes) {
-                    stringBuilder.append(type).append(", ");
-                    Log.d(TAG, "validateApnData: appending type: " + type);
-                }
-                // remove last ", "
-                if (stringBuilder.length() >= 2) {
-                    stringBuilder.delete(stringBuilder.length() - 2, stringBuilder.length());
-                }
-                errorMsg = String.format(getResources().getString(R.string.error_adding_apn_type),
-                        stringBuilder);
-            }
-        }
-
-        return errorMsg;
-    }
-
-    @VisibleForTesting
-    void showError() {
-        ErrorDialog.showError(this);
-    }
-
-    private void deleteApn() {
-        if (mApnData.getUri() != null) {
-            getContentResolver().delete(mApnData.getUri(), null, null);
-            mApnData = new ApnData(sProjection.length);
-        }
-    }
-
-    private String starify(String value) {
-        if (value == null || value.length() == 0) {
-            return sNotSet;
-        } else {
-            final char[] password = new char[value.length()];
-            for (int i = 0; i < password.length; i++) {
-                password[i] = '*';
-            }
-            return new String(password);
-        }
-    }
-
-    /**
-     * Returns {@link #sNotSet} if the given string {@code value} is null or empty. The string
-     * {@link #sNotSet} typically used as the default display when an entry in the preference is
-     * null or empty.
-     */
-    private String checkNull(String value) {
-        return TextUtils.isEmpty(value) ? sNotSet : value;
-    }
-
-    /**
-     * To make traslation be diversity, use another string id for MVNO value.
-     */
-    private String checkNullforMvnoValue(String value) {
-        String notSetForMvnoValue = getResources().getString(R.string.apn_not_set_for_mvno);
-        return TextUtils.isEmpty(value) ? notSetForMvnoValue : value;
-    }
-
-    /**
-     * Returns null if the given string {@code value} equals to {@link #sNotSet}. This method
-     * should be used when convert a string value from preference to database.
-     */
-    private String checkNotSet(String value) {
-        return sNotSet.equals(value) ? null : value;
-    }
-
-    @VisibleForTesting
-    String getUserEnteredApnType() {
-        // if user has not specified a type, map it to "ALL APN TYPES THAT ARE NOT READ-ONLY"
-        // but if user enter empty type, map it just for default
-        String userEnteredApnType = mApnType.getText();
-        if (userEnteredApnType != null) userEnteredApnType = userEnteredApnType.trim();
-        if ((TextUtils.isEmpty(userEnteredApnType)
-                || APN_TYPE_ALL.equals(userEnteredApnType))) {
-            userEnteredApnType = getEditableApnType(APN_TYPES);
-        }
-        Log.d(TAG, "getUserEnteredApnType: changed apn type to editable apn types: "
-                + userEnteredApnType);
-        return userEnteredApnType;
-    }
-
-    private String getEditableApnType(String[] apnTypeList) {
-        final StringBuilder editableApnTypes = new StringBuilder();
-        final List<String> readOnlyApnTypes = Arrays.asList(mReadOnlyApnTypes);
-        boolean first = true;
-        for (String apnType : apnTypeList) {
-            // add APN type if it is not read-only and is not wild-cardable
-            if (!readOnlyApnTypes.contains(apnType)
-                    && !apnType.equals(APN_TYPE_IA)
-                    && !apnType.equals(APN_TYPE_EMERGENCY)
-                    && !apnType.equals(APN_TYPE_MCX)
-                    && !apnType.equals(APN_TYPE_IMS)) {
-                if (first) {
-                    first = false;
-                } else {
-                    editableApnTypes.append(",");
-                }
-                editableApnTypes.append(apnType);
-            }
-        }
-        return editableApnTypes.toString();
-    }
-
-    private void initApnEditorUi() {
-        addPreferencesFromResource(R.xml.apn_editor);
-
-        sNotSet = getResources().getString(R.string.apn_not_set);
-        mName = (EditTextPreference) findPreference("apn_name");
-        mApn = (EditTextPreference) findPreference("apn_apn");
-        mProxy = (EditTextPreference) findPreference("apn_http_proxy");
-        mPort = (EditTextPreference) findPreference("apn_http_port");
-        mUser = (EditTextPreference) findPreference("apn_user");
-        mServer = (EditTextPreference) findPreference("apn_server");
-        mPassword = (EditTextPreference) findPreference(KEY_PASSWORD);
-        mMmsProxy = (EditTextPreference) findPreference("apn_mms_proxy");
-        mMmsPort = (EditTextPreference) findPreference("apn_mms_port");
-        mMmsc = (EditTextPreference) findPreference("apn_mmsc");
-        mMcc = (EditTextPreference) findPreference("apn_mcc");
-        mMnc = (EditTextPreference) findPreference("apn_mnc");
-        mApnType = (EditTextPreference) findPreference("apn_type");
-        mAuthType = (ListPreference) findPreference(KEY_AUTH_TYPE);
-        mProtocol = (ListPreference) findPreference(KEY_PROTOCOL);
-        mRoamingProtocol = (ListPreference) findPreference(KEY_ROAMING_PROTOCOL);
-        mCarrierEnabled = (TwoStatePreference) findPreference(KEY_CARRIER_ENABLED);
-        mBearerMulti = (MultiSelectListPreference) findPreference(KEY_BEARER_MULTI);
-        mMvnoType = (ListPreference) findPreference(KEY_MVNO_TYPE);
-        mMvnoMatchData = (EditTextPreference) findPreference("mvno_match_data");
-    }
-
-    @VisibleForTesting
-    protected void getCarrierCustomizedConfig(Context context) {
-        mReadOnlyApn = false;
-        mReadOnlyApnTypes = null;
-        mReadOnlyApnFields = null;
-        mIsAddApnAllowed = true;
-
-        final CarrierConfigManager configManager = (CarrierConfigManager)
-            context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        if (configManager != null) {
-            final PersistableBundle b = configManager.getConfigForSubId(mSubId);
-            if (b != null) {
-                mReadOnlyApnTypes = getReadOnlyApnTypes(b);
-                if (!ArrayUtils.isEmpty(mReadOnlyApnTypes)) {
-                    Log.d(TAG,
-                            "onCreate: read only APN type: " + Arrays.toString(mReadOnlyApnTypes));
-                }
-                mReadOnlyApnFields = b.getStringArray(
-                        CarrierConfigManager.KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY);
-
-                mDefaultApnTypes = b.getStringArray(
-                        CarrierConfigManager.KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY);
-
-                if (!ArrayUtils.isEmpty(mDefaultApnTypes)) {
-                    Log.d(TAG, "onCreate: default apn types: " + Arrays.toString(mDefaultApnTypes));
-                }
-
-                mDefaultApnProtocol = b.getString(
-                        CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_PROTOCOL_STRING);
-                if (!TextUtils.isEmpty(mDefaultApnProtocol)) {
-                    Log.d(TAG, "onCreate: default apn protocol: " + mDefaultApnProtocol);
-                }
-
-                mDefaultApnRoamingProtocol = b.getString(
-                        CarrierConfigManager.Apn.KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING);
-                if (!TextUtils.isEmpty(mDefaultApnRoamingProtocol)) {
-                    Log.d(TAG, "onCreate: default apn roaming protocol: "
-                            + mDefaultApnRoamingProtocol);
-                }
-
-                mIsAddApnAllowed = b.getBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL);
-                if (!mIsAddApnAllowed) {
-                    Log.d(TAG, "onCreate: not allow to add new APN");
-                }
-            }
-        }
-    }
-
-    private void setCarrierCustomizedConfigToUi() {
-        if (TextUtils.isEmpty(mApnType.getText()) && !ArrayUtils.isEmpty(mDefaultApnTypes)) {
-            String value = getEditableApnType(mDefaultApnTypes);
-            mApnType.setText(value);
-            mApnType.setSummary(value);
-        }
-
-        String protocol = protocolDescription(mDefaultApnProtocol, mProtocol);
-        if (TextUtils.isEmpty(mProtocol.getValue()) && !TextUtils.isEmpty(protocol)) {
-            mProtocol.setValue(mDefaultApnProtocol);
-            mProtocol.setSummary(protocol);
-        }
-
-        String roamingProtocol = protocolDescription(mDefaultApnRoamingProtocol, mRoamingProtocol);
-        if (TextUtils.isEmpty(mRoamingProtocol.getValue()) && !TextUtils.isEmpty(roamingProtocol)) {
-            mRoamingProtocol.setValue(mDefaultApnRoamingProtocol);
-            mRoamingProtocol.setSummary(roamingProtocol);
-        }
-    }
-
-    /**
-     * Dialog of error message.
-     */
-    public static class ErrorDialog extends InstrumentedDialogFragment {
-        /**
-         * Show error dialog.
-         */
-        public static void showError(ApnEditor editor) {
-            final ErrorDialog dialog = new ErrorDialog();
-            dialog.setTargetFragment(editor, 0);
-            dialog.show(editor.getFragmentManager(), "error");
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
-            final String msg = ((ApnEditor) getTargetFragment()).validateApnData();
-
-            return new AlertDialog.Builder(getContext())
-                    .setTitle(R.string.error_title)
-                    .setPositiveButton(android.R.string.ok, null)
-                    .setMessage(msg)
-                    .create();
-        }
-
-        @Override
-        public int getMetricsCategory() {
-            return SettingsEnums.DIALOG_APN_EDITOR_ERROR;
-        }
-    }
-
-    @VisibleForTesting
-    ApnData getApnDataFromUri(Uri uri) {
-        ApnData apnData = null;
-        try (Cursor cursor = getContentResolver().query(
-                uri,
-                sProjection,
-                null /* selection */,
-                null /* selectionArgs */,
-                null /* sortOrder */)) {
-            if (cursor != null && cursor.moveToFirst()) {
-                apnData = new ApnData(uri, cursor);
-            }
-        }
-
-        if (apnData == null) {
-            Log.d(TAG, "Can't get apnData from Uri " + uri);
-        }
-
-        return apnData;
-    }
-
-    @VisibleForTesting
     boolean isUserRestricted() {
         UserManager userManager = getContext().getSystemService(UserManager.class);
         if (userManager == null) {
@@ -1502,80 +201,4 @@
         }
         return false;
     }
-
-    @VisibleForTesting
-    static class ApnData {
-        /**
-         * The uri correspond to a database row of the apn data. This should be null if the apn
-         * is not in the database.
-         */
-        Uri mUri;
-
-        /** Each element correspond to a column of the database row. */
-        Object[] mData;
-
-        ApnData(int numberOfField) {
-            mData = new Object[numberOfField];
-        }
-
-        ApnData(Uri uri, Cursor cursor) {
-            mUri = uri;
-            mData = new Object[cursor.getColumnCount()];
-            for (int i = 0; i < mData.length; i++) {
-                switch (cursor.getType(i)) {
-                    case Cursor.FIELD_TYPE_FLOAT:
-                        mData[i] = cursor.getFloat(i);
-                        break;
-                    case Cursor.FIELD_TYPE_INTEGER:
-                        mData[i] = cursor.getInt(i);
-                        break;
-                    case Cursor.FIELD_TYPE_STRING:
-                        mData[i] = cursor.getString(i);
-                        break;
-                    case Cursor.FIELD_TYPE_BLOB:
-                        mData[i] = cursor.getBlob(i);
-                        break;
-                    default:
-                        mData[i] = null;
-                }
-            }
-        }
-
-        Uri getUri() {
-            return mUri;
-        }
-
-        void setUri(Uri uri) {
-            mUri = uri;
-        }
-
-        Integer getInteger(int index) {
-            return (Integer) mData[index];
-        }
-
-        Integer getInteger(int index, Integer defaultValue) {
-            final Integer val = getInteger(index);
-            return val == null ? defaultValue : val;
-        }
-
-        String getString(int index) {
-            return (String) mData[index];
-        }
-    }
-
-    private static int getBitmaskForTech(int radioTech) {
-        if (radioTech >= 1) {
-            return (1 << (radioTech - 1));
-        }
-        return 0;
-    }
-
-    private static boolean bitmaskHasTech(int bearerBitmask, int radioTech) {
-        if (bearerBitmask == 0) {
-            return true;
-        } else if (radioTech >= 1) {
-            return ((bearerBitmask & (1 << (radioTech - 1))) != 0);
-        }
-        return false;
-    }
 }
diff --git a/src/com/android/settings/network/telephony/CarrierConfigRepository.kt b/src/com/android/settings/network/telephony/CarrierConfigRepository.kt
index 99683a8..77f4e1c 100644
--- a/src/com/android/settings/network/telephony/CarrierConfigRepository.kt
+++ b/src/com/android/settings/network/telephony/CarrierConfigRepository.kt
@@ -224,7 +224,10 @@
         }
 
         private val BooleanKeysWhichNotFollowingsNamingConventions =
-            listOf(CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS)
+            listOf(
+                CarrierConfigManager.KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS,
+                CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL,
+            )
 
         private fun checkBooleanKey(key: String) {
             check(key.endsWith("_bool") || key in BooleanKeysWhichNotFollowingsNamingConventions) {
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
index 7d5230d..c428f98 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceController.java
@@ -26,6 +26,7 @@
 import android.content.res.Resources;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.RadioAccessFamily;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyCallback;
@@ -445,7 +446,7 @@
         }
 
         private int getPreferredNetworkMode() {
-            int networkMode = MobileNetworkUtils.getNetworkTypeFromRaf(
+            int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
                     (int) mTelephonyManager.getAllowedNetworkTypesForReason(
                             TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
             if (!showNrList()) {
diff --git a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
index d297e1c..9af6437 100644
--- a/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
+++ b/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerHelper.kt
@@ -18,6 +18,7 @@
 
 import android.content.Context
 import android.telephony.CarrierConfigManager
+import android.telephony.RadioAccessFamily
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import androidx.lifecycle.LifecycleOwner
@@ -35,7 +36,7 @@
     viewLifecycleOwner.lifecycleScope.launch(Dispatchers.Default) {
         setAllowedNetworkTypesForReason(
             TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
-            MobileNetworkUtils.getRafFromNetworkType(newPreferredNetworkMode),
+            RadioAccessFamily.getRafFromNetworkType(newPreferredNetworkMode).toLong(),
         )
     }
 }
diff --git a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
index 220218c..a37a12b 100644
--- a/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
+++ b/src/com/android/settings/network/telephony/MmsMessagePreferenceController.kt
@@ -17,6 +17,7 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
+import android.telephony.CarrierConfigManager
 import android.telephony.SubscriptionManager
 import android.telephony.TelephonyManager
 import android.telephony.data.ApnSetting
@@ -45,7 +46,7 @@
     private var subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID
     private var telephonyManager: TelephonyManager =
         context.getSystemService(TelephonyManager::class.java)!!
-
+    private val carrierConfigRepository = CarrierConfigRepository(context)
     private var preferenceScreen: PreferenceScreen? = null
 
     fun init(subId: Int) {
@@ -54,7 +55,13 @@
     }
 
     override fun getAvailabilityStatus() =
-        if (getAvailabilityStatus(telephonyManager, subId, getDefaultDataSubId)) AVAILABLE
+        if (getAvailabilityStatus(
+                telephonyManager,
+                subId,
+                getDefaultDataSubId,
+                carrierConfigRepository
+            )
+        ) AVAILABLE
         else CONDITIONALLY_UNAVAILABLE
 
     override fun displayPreference(screen: PreferenceScreen) {
@@ -92,11 +99,14 @@
             telephonyManager: TelephonyManager,
             subId: Int,
             getDefaultDataSubId: () -> Int,
+            carrierConfigRepository: CarrierConfigRepository,
         ): Boolean {
             return SubscriptionManager.isValidSubscriptionId(subId) &&
                 !telephonyManager.isDataEnabled &&
                 telephonyManager.isApnMetered(ApnSetting.TYPE_MMS) &&
-                !isFallbackDataEnabled(telephonyManager, subId, getDefaultDataSubId())
+                !isFallbackDataEnabled(telephonyManager, subId, getDefaultDataSubId()) &&
+                carrierConfigRepository.getBoolean(
+                    subId, CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL)
         }
 
         private fun isFallbackDataEnabled(
@@ -118,11 +128,16 @@
         ) : MobileNetworkSettingsSearchItem {
             private var telephonyManager: TelephonyManager =
                 context.getSystemService(TelephonyManager::class.java)!!
+            private val carrierConfigRepository = CarrierConfigRepository(context)
 
             @VisibleForTesting
             fun isAvailable(subId: Int): Boolean =
                 getAvailabilityStatus(
-                    telephonyManager.createForSubscriptionId(subId), subId, getDefaultDataSubId)
+                    telephonyManager.createForSubscriptionId(subId),
+                    subId,
+                    getDefaultDataSubId,
+                    carrierConfigRepository
+                )
 
             override fun getSearchResult(subId: Int): MobileNetworkSettingsSearchResult? {
                 if (!isAvailable(subId)) return null
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 82083b5..341f7a1b 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -18,14 +18,6 @@
 
 import static android.provider.Telephony.Carriers.ENFORCE_MANAGED_URI;
 
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.CDMA;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.EVDO;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.LTE;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.NR;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_TD_SCDMA;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.RAF_UNKNOWN;
-import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.WCDMA;
 import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO;
 import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA;
 import static com.android.settings.network.telephony.TelephonyConstants.TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
@@ -56,11 +48,11 @@
 import android.telecom.PhoneAccountHandle;
 import android.telecom.TelecomManager;
 import android.telephony.CarrierConfigManager;
+import android.telephony.RadioAccessFamily;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionInfo;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
-import android.telephony.euicc.EuiccManager;
 import android.telephony.ims.ImsManager;
 import android.telephony.ims.ImsRcsManager;
 import android.telephony.ims.ProvisioningManager;
@@ -89,9 +81,7 @@
 import com.android.settingslib.graph.SignalDrawable;
 import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity;
 
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 public class MobileNetworkUtils {
 
@@ -334,7 +324,7 @@
         }
 
         if (isWorldMode(context, subId)) {
-            final int settingsNetworkMode = getNetworkTypeFromRaf(
+            final int settingsNetworkMode = RadioAccessFamily.getNetworkTypeFromRaf(
                     (int) telephonyManager.getAllowedNetworkTypesForReason(
                             TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
 
@@ -365,7 +355,7 @@
         }
         final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
-        final int networkMode = getNetworkTypeFromRaf(
+        final int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
                 (int) telephonyManager.getAllowedNetworkTypesForReason(
                         TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
         if (isWorldMode(context, subId)) {
@@ -433,7 +423,7 @@
         }
 
         if (isWorldMode(context, subId)) {
-            final int networkMode = getNetworkTypeFromRaf(
+            final int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
                     (int) telephonyManager.getAllowedNetworkTypesForReason(
                             TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
             if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO) {
@@ -548,7 +538,7 @@
         }
         final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class)
                 .createForSubscriptionId(subId);
-        final int networkMode = getNetworkTypeFromRaf(
+        final int networkMode = RadioAccessFamily.getNetworkTypeFromRaf(
                 (int) telephonyManager.getAllowedNetworkTypesForReason(
                         TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
         if (networkMode == TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM
@@ -648,197 +638,6 @@
     }
 
     /**
-     * Loop through all the device logical slots to check whether the user's current country
-     * supports eSIM.
-     */
-    private static boolean isCurrentCountrySupported(Context context) {
-        final EuiccManager em = (EuiccManager) context.getSystemService(EuiccManager.class);
-        final TelephonyManager tm =
-                (TelephonyManager) context.getSystemService(TelephonyManager.class);
-
-        Set<String> countrySet = new HashSet<>();
-        for (int i = 0; i < tm.getPhoneCount(); i++) {
-            String countryCode = tm.getNetworkCountryIso(i);
-            if (!TextUtils.isEmpty(countryCode)) {
-                countrySet.add(countryCode);
-            }
-        }
-        boolean isSupported = countrySet.stream().anyMatch(em::isSupportedCountry);
-        Log.i(TAG, "isCurrentCountrySupported countryCodes: " + countrySet
-                + " eSIMSupported: " + isSupported);
-        return isSupported;
-    }
-
-    /**
-     *  Imported from {@link android.telephony.RadioAccessFamily}
-     */
-    public static long getRafFromNetworkType(int type) {
-        switch (type) {
-            case TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF:
-                return GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY:
-                return GSM;
-            case TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY:
-                return WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_GSM_UMTS:
-                return GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO:
-                return CDMA | EVDO;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO:
-                return LTE | CDMA | EVDO;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA:
-                return LTE | GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA:
-                return LTE | CDMA | EVDO | GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY:
-                return LTE;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA:
-                return LTE | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO:
-                return CDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA:
-                return EVDO;
-            case TelephonyManagerConstants.NETWORK_MODE_GLOBAL:
-                return GSM | WCDMA | CDMA | EVDO;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY:
-                return RAF_TD_SCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA:
-                return RAF_TD_SCDMA | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA:
-                return LTE | RAF_TD_SCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM:
-                return RAF_TD_SCDMA | GSM;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM:
-                return LTE | RAF_TD_SCDMA | GSM;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA:
-                return RAF_TD_SCDMA | GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA:
-                return LTE | RAF_TD_SCDMA | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA:
-                return LTE | RAF_TD_SCDMA | GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                return RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
-            case TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA:
-                return LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_ONLY):
-                return NR;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE):
-                return NR | LTE;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO):
-                return NR | LTE | CDMA | EVDO;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA):
-                return NR | LTE | GSM | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA):
-                return NR | LTE | CDMA | EVDO | GSM | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA):
-                return NR | LTE | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA):
-                return NR | LTE | RAF_TD_SCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM):
-                return NR | LTE | RAF_TD_SCDMA | GSM;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA):
-                return NR | LTE | RAF_TD_SCDMA | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA):
-                return NR | LTE | RAF_TD_SCDMA | GSM | WCDMA;
-            case (TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA):
-                return NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA;
-            default:
-                return RAF_UNKNOWN;
-        }
-    }
-
-    /**
-     *  Imported from {@link android.telephony.RadioAccessFamily}
-     */
-    public static int getNetworkTypeFromRaf(int raf) {
-        raf = getAdjustedRaf(raf);
-
-        switch (raf) {
-            case (GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_WCDMA_PREF;
-            case GSM:
-                return TelephonyManagerConstants.NETWORK_MODE_GSM_ONLY;
-            case WCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_WCDMA_ONLY;
-            case (CDMA | EVDO):
-                return TelephonyManagerConstants.NETWORK_MODE_CDMA_EVDO;
-            case (LTE | CDMA | EVDO):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO;
-            case (LTE | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA;
-            case (LTE | CDMA | EVDO | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA;
-            case LTE:
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_ONLY;
-            case (LTE | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_WCDMA;
-            case CDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_CDMA_NO_EVDO;
-            case EVDO:
-                return TelephonyManagerConstants.NETWORK_MODE_EVDO_NO_CDMA;
-            case (GSM | WCDMA | CDMA | EVDO):
-                return TelephonyManagerConstants.NETWORK_MODE_GLOBAL;
-            case RAF_TD_SCDMA:
-                return TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_ONLY;
-            case (RAF_TD_SCDMA | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_WCDMA;
-            case (LTE | RAF_TD_SCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA;
-            case (RAF_TD_SCDMA | GSM):
-                return TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM;
-            case (LTE | RAF_TD_SCDMA | GSM):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM;
-            case (RAF_TD_SCDMA | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_GSM_WCDMA;
-            case (LTE | RAF_TD_SCDMA | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_WCDMA;
-            case (LTE | RAF_TD_SCDMA | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_GSM_WCDMA;
-            case (RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
-            case (LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
-            case (NR):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_ONLY;
-            case (NR | LTE):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE;
-            case (NR | LTE | CDMA | EVDO):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO;
-            case (NR | LTE | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_GSM_WCDMA;
-            case (NR | LTE | CDMA | EVDO | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA;
-            case (NR | LTE | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_WCDMA;
-            case (NR | LTE | RAF_TD_SCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA;
-            case (NR | LTE | RAF_TD_SCDMA | GSM):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM;
-            case (NR | LTE | RAF_TD_SCDMA | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_WCDMA;
-            case (NR | LTE | RAF_TD_SCDMA | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_GSM_WCDMA;
-            case (NR | LTE | RAF_TD_SCDMA | CDMA | EVDO | GSM | WCDMA):
-                return TelephonyManagerConstants.NETWORK_MODE_NR_LTE_TDSCDMA_CDMA_EVDO_GSM_WCDMA;
-            default:
-                return TelephonyManagerConstants.NETWORK_MODE_UNKNOWN;
-        }
-    }
-
-    /**
-     *  Imported from {@link android.telephony.RadioAccessFamily}
-     */
-    private static int getAdjustedRaf(int raf) {
-        raf = ((GSM & raf) > 0) ? (GSM | raf) : raf;
-        raf = ((WCDMA & raf) > 0) ? (WCDMA | raf) : raf;
-        raf = ((CDMA & raf) > 0) ? (CDMA | raf) : raf;
-        raf = ((EVDO & raf) > 0) ? (EVDO | raf) : raf;
-        raf = ((LTE & raf) > 0) ? (LTE | raf) : raf;
-        raf = ((NR & raf) > 0) ? (NR | raf) : raf;
-        return raf;
-    }
-
-    /**
      * Copied from SubscriptionsPreferenceController#activeNetworkIsCellular()
      */
     public static boolean activeNetworkIsCellular(Context context) {
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index a16f4b5..4ae51ab 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -219,7 +219,7 @@
         setProgressBarVisible(true);
         mNetworkScanJob = mNetworkScanRepository.launchNetworkScan(getViewLifecycleOwner(),
                 (networkScanResult) -> {
-                    if (isPreferenceScreenEnabled()) {
+                    if (isPreferenceScreenEnabled() && !isFinishingOrDestroyed()) {
                         scanResultHandler(networkScanResult);
                     }
 
diff --git a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
index 210cd87..2d567af 100644
--- a/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
+++ b/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceController.java
@@ -21,6 +21,7 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.RadioAccessFamily;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import android.util.Log;
@@ -72,7 +73,7 @@
 
         mTelephonyManager.setAllowedNetworkTypesForReason(
                 TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
-                MobileNetworkUtils.getRafFromNetworkType(newPreferredNetworkMode));
+                RadioAccessFamily.getRafFromNetworkType(newPreferredNetworkMode));
 
             final ListPreference listPreference = (ListPreference) preference;
             listPreference.setSummary(getPreferredNetworkModeSummaryResId(newPreferredNetworkMode));
@@ -94,7 +95,7 @@
             Log.w(TAG, "TelephonyManager is null");
             return TelephonyManagerConstants.NETWORK_MODE_UNKNOWN;
         }
-        return MobileNetworkUtils.getNetworkTypeFromRaf(
+        return RadioAccessFamily.getNetworkTypeFromRaf(
                 (int) mTelephonyManager.getAllowedNetworkTypesForReason(
                         TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER));
     }
diff --git a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
index 4f4c35d..fe702e4 100644
--- a/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/cdma/CdmaSystemSelectPreferenceController.java
@@ -22,14 +22,13 @@
 
 import android.content.Context;
 import android.provider.Settings;
+import android.telephony.RadioAccessFamily;
 import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 
-import com.android.settings.network.telephony.MobileNetworkUtils;
-
 /**
  * Preference controller for "System Select"
  */
@@ -65,7 +64,7 @@
             }
 
             final int settingsNetworkMode =
-                    hasTelephonyMgr ? MobileNetworkUtils.getNetworkTypeFromRaf(
+                    hasTelephonyMgr ? RadioAccessFamily.getNetworkTypeFromRaf(
                             (int) mTelephonyManager.getAllowedNetworkTypesForReason(
                                     TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER))
                             : NETWORK_MODE_UNKNOWN;
diff --git a/src/com/android/settings/notification/DialPadTonePreference.kt b/src/com/android/settings/notification/DialPadTonePreference.kt
new file mode 100644
index 0000000..32bc42e
--- /dev/null
+++ b/src/com/android/settings/notification/DialPadTonePreference.kt
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2024 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.notification
+
+import android.content.Context
+import android.provider.Settings.System.DTMF_TONE_WHEN_DIALING
+import com.android.settings.R
+import com.android.settings.Utils
+import com.android.settingslib.datastore.SettingsSystemStore
+import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.SwitchPreference
+
+// LINT.IfChange
+class DialPadTonePreference :
+    SwitchPreference(DTMF_TONE_WHEN_DIALING, R.string.dial_pad_tones_title),
+    PreferenceAvailabilityProvider {
+
+    override fun storage(context: Context) = SettingsSystemStore.get(context)
+
+    override fun isAvailable(context: Context) = Utils.isVoiceCapable(context)
+}
+// LINT.ThenChange(DialPadTonePreferenceController.java)
diff --git a/src/com/android/settings/notification/DialPadTonePreferenceController.java b/src/com/android/settings/notification/DialPadTonePreferenceController.java
index 1b05ce2..bfbf120 100644
--- a/src/com/android/settings/notification/DialPadTonePreferenceController.java
+++ b/src/com/android/settings/notification/DialPadTonePreferenceController.java
@@ -16,24 +16,24 @@
 
 package com.android.settings.notification;
 
+import static android.provider.Settings.System.DTMF_TONE_WHEN_DIALING;
+
 import static com.android.settings.notification.SettingPref.TYPE_SYSTEM;
 
 import android.content.Context;
-import android.provider.Settings.System;
 
 import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
+// LINT.IfChange
 public class DialPadTonePreferenceController extends SettingPrefController {
 
-    private static final String KEY_DIAL_PAD_TONES = "dial_pad_tones";
-
     public DialPadTonePreferenceController(Context context, SettingsPreferenceFragment parent,
             Lifecycle lifecycle) {
         super(context, parent, lifecycle);
-        mPreference = new SettingPref(
-            TYPE_SYSTEM, KEY_DIAL_PAD_TONES, System.DTMF_TONE_WHEN_DIALING, DEFAULT_ON) {
+        mPreference = new SettingPref(TYPE_SYSTEM, DTMF_TONE_WHEN_DIALING, DTMF_TONE_WHEN_DIALING,
+                DEFAULT_ON) {
             @Override
             public boolean isApplicable(Context context) {
                 return Utils.isVoiceCapable(context);
@@ -42,3 +42,4 @@
     }
 
 }
+// LINT.ThenChange(DialPadTonePreference.kt)
diff --git a/src/com/android/settings/notification/SoundScreen.kt b/src/com/android/settings/notification/SoundScreen.kt
index f1f2749..6b60967 100644
--- a/src/com/android/settings/notification/SoundScreen.kt
+++ b/src/com/android/settings/notification/SoundScreen.kt
@@ -19,12 +19,13 @@
 import androidx.fragment.app.Fragment
 import com.android.settings.R
 import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.PreferenceIconProvider
 import com.android.settingslib.metadata.ProvidePreferenceScreen
 import com.android.settingslib.metadata.preferenceHierarchy
 import com.android.settingslib.preference.PreferenceScreenCreator
 
 @ProvidePreferenceScreen
-class SoundScreen : PreferenceScreenCreator {
+class SoundScreen : PreferenceScreenCreator, PreferenceIconProvider {
     override val key: String
         get() = KEY
 
@@ -34,13 +35,22 @@
     override val keywords: Int
         get() = R.string.keywords_sounds
 
+    override fun getIcon(context: Context) =
+        when {
+            Flags.homepageRevamp() -> R.drawable.ic_volume_up_filled
+            else -> R.drawable.ic_volume_up_24dp
+        }
+
     override fun isFlagEnabled(context: Context): Boolean = Flags.catalystSoundScreen()
 
     override fun hasCompleteHierarchy() = false
 
     override fun fragmentClass(): Class<out Fragment>? = SoundSettings::class.java
 
-    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}
+    override fun getPreferenceHierarchy(context: Context) =
+        preferenceHierarchy(this) {
+            +DialPadTonePreference()
+        }
 
     companion object {
         const val KEY = "sound_screen"
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 596f19b..b069c7e 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -195,23 +195,21 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        if (!isCatalystEnabled()) {
-            ArrayList<VolumeSeekBarPreferenceController> volumeControllers = new ArrayList<>();
-            volumeControllers.add(use(AlarmVolumePreferenceController.class));
-            volumeControllers.add(use(MediaVolumePreferenceController.class));
-            volumeControllers.add(use(SeparateRingVolumePreferenceController.class));
-            volumeControllers.add(use(NotificationVolumePreferenceController.class));
-            volumeControllers.add(use(CallVolumePreferenceController.class));
+        ArrayList<VolumeSeekBarPreferenceController> volumeControllers = new ArrayList<>();
+        volumeControllers.add(use(AlarmVolumePreferenceController.class));
+        volumeControllers.add(use(MediaVolumePreferenceController.class));
+        volumeControllers.add(use(SeparateRingVolumePreferenceController.class));
+        volumeControllers.add(use(NotificationVolumePreferenceController.class));
+        volumeControllers.add(use(CallVolumePreferenceController.class));
 
-            use(HandsFreeProfileOutputPreferenceController.class).setCallback(listPreference ->
-                    onPreferenceDataChanged(listPreference));
-            mHfpOutputControllerKey =
-                    use(HandsFreeProfileOutputPreferenceController.class).getPreferenceKey();
+        use(HandsFreeProfileOutputPreferenceController.class).setCallback(listPreference ->
+                onPreferenceDataChanged(listPreference));
+        mHfpOutputControllerKey =
+                use(HandsFreeProfileOutputPreferenceController.class).getPreferenceKey();
 
-            for (VolumeSeekBarPreferenceController controller : volumeControllers) {
-                controller.setCallback(mVolumeCallback);
-                getSettingsLifecycle().addObserver(controller);
-            }
+        for (VolumeSeekBarPreferenceController controller : volumeControllers) {
+            controller.setCallback(mVolumeCallback);
+            getSettingsLifecycle().addObserver(controller);
         }
     }
 
diff --git a/src/com/android/settings/security/LockScreenPreferenceScreen.kt b/src/com/android/settings/security/LockScreenPreferenceScreen.kt
new file mode 100644
index 0000000..0c7877f
--- /dev/null
+++ b/src/com/android/settings/security/LockScreenPreferenceScreen.kt
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.security
+
+import android.content.Context
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.metadata.ProvidePreferenceScreen
+import com.android.settingslib.metadata.preferenceHierarchy
+import com.android.settingslib.preference.PreferenceScreenCreator
+
+@ProvidePreferenceScreen
+open class LockScreenPreferenceScreen : PreferenceScreenCreator {
+    override val key: String
+        get() = KEY
+
+    override val title: Int
+        get() = R.string.lockscreen_settings_title
+
+    override val keywords: Int
+        get() = R.string.keywords_ambient_display_screen
+
+    override fun isFlagEnabled(context: Context) = Flags.catalystLockscreenFromDisplaySettings()
+
+    override fun hasCompleteHierarchy() = false
+
+    override fun fragmentClass() = LockscreenDashboardFragment::class.java
+
+    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {
+        // add hierarchy here
+    }
+
+    companion object {
+        const val KEY = "lockscreen_from_display_settings"
+    }
+}
\ No newline at end of file
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 2e4a1f2..1e299a3 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -29,6 +29,8 @@
 import android.os.Looper;
 import android.provider.Settings;
 
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
 
 import com.android.settings.R;
@@ -160,6 +162,11 @@
         }
     }
 
+    @Override
+    public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
+        return LockScreenPreferenceScreen.KEY;
+    }
+
     private AmbientDisplayConfiguration getConfig(Context context) {
         if (mConfig == null) {
             mConfig = new AmbientDisplayConfiguration(context);
diff --git a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
index fa9cee2..f7e53ec 100644
--- a/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
+++ b/src/com/android/settings/spa/app/appinfo/AppInfoSettings.kt
@@ -140,18 +140,20 @@
 
         AppButtons(packageInfoPresenter, isHibernationSwitchEnabledStateFlow)
 
-        AppSettingsPreference(app)
-        AppAllServicesPreference(app)
-        AppNotificationPreference(app)
-        AppPermissionPreference(app)
-        AppStoragePreference(app)
-        InstantAppDomainsPreference(app)
-        AppDataUsagePreference(app)
-        AppTimeSpentPreference(app)
-        AppBatteryPreference(app)
-        AppLocalePreference(app)
-        AppOpenByDefaultPreference(app)
-        DefaultAppShortcuts(app)
+        Category {
+            AppSettingsPreference(app)
+            AppAllServicesPreference(app)
+            AppNotificationPreference(app)
+            AppPermissionPreference(app)
+            AppStoragePreference(app)
+            InstantAppDomainsPreference(app)
+            AppDataUsagePreference(app)
+            AppTimeSpentPreference(app)
+            AppBatteryPreference(app)
+            AppLocalePreference(app)
+            AppOpenByDefaultPreference(app)
+            DefaultAppShortcuts(app)
+        }
 
         Category(title = stringResource(R.string.unused_apps_category)) {
             HibernationSwitchPreference(app, isHibernationSwitchEnabledStateFlow)
diff --git a/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt b/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt
index f077506..5c27f5b 100644
--- a/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt
+++ b/src/com/android/settings/spa/app/battery/BatteryOptimizationModeAppListPageProvider.kt
@@ -107,7 +107,7 @@
         PowerAllowlistBackend.getInstance(context).refreshList()
         return recordListFlow.filterItem {
             val appOptimizationMode = BatteryOptimizeUtils(context, it.app.uid, it.app.packageName)
-                .getAppOptimizationMode(/* refreshList */ false);
+                .getAppOptimizationMode(/* refreshList */ false, /* ignoreUnknownMode */ true);
             when (OptimizationModeSpinnerItem.entries.getOrNull(option)) {
                 OptimizationModeSpinnerItem.Restricted ->
                     appOptimizationMode == BatteryOptimizeUtils.MODE_RESTRICTED
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index fe90a2a..2dc5b2d 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -46,8 +46,6 @@
                 restrictedSwitchPreference.setVisible(true);
                 if (mUserCaps.mDisallowAddUserSetByAdmin) {
                     restrictedSwitchPreference.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
-                } else if (mUserCaps.mDisallowAddUser) {
-                    restrictedSwitchPreference.setVisible(false);
                 }
             } else {
                 restrictedSwitchPreference.setDisabledByAdmin(
@@ -62,7 +60,11 @@
         if (!mUserCaps.isAdmin()) {
             return DISABLED_FOR_USER;
         } else if (android.multiuser.Flags.newMultiuserSettingsUx()) {
-            return AVAILABLE;
+            if (mUserCaps.mDisallowAddUser && !mUserCaps.mDisallowAddUserSetByAdmin) {
+                return DISABLED_FOR_USER;
+            } else {
+                return AVAILABLE;
+            }
         } else if (mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin()) {
             return DISABLED_FOR_USER;
         } else {
diff --git a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
index e5581d3..dddbd63 100644
--- a/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
+++ b/src/com/android/settings/wifi/calling/WifiCallingSettingsForSub.java
@@ -54,9 +54,9 @@
 import com.android.internal.telephony.flags.Flags;
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
-import com.android.settings.SettingsPreferenceFragment;
 import com.android.settings.Utils;
 import com.android.settings.core.SubSettingLauncher;
+import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.network.ims.WifiCallingQueryImsState;
 import com.android.settings.network.telephony.wificalling.IWifiCallingRepository;
 import com.android.settings.network.telephony.wificalling.WifiCallingRepository;
@@ -70,7 +70,7 @@
  * This is the inner class of {@link WifiCallingSettings} fragment.
  * The preference screen lets you enable/disable Wi-Fi Calling and change Wi-Fi Calling mode.
  */
-public class WifiCallingSettingsForSub extends SettingsPreferenceFragment
+public class WifiCallingSettingsForSub extends DashboardFragment
         implements OnCheckedChangeListener,
         Preference.OnPreferenceChangeListener {
     private static final String TAG = "WifiCallingForSub";
@@ -266,8 +266,6 @@
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
 
-        addPreferencesFromResource(R.xml.wifi_calling_settings);
-
         // SubId should always be specified when creating this fragment. Either through
         // fragment.setArguments() or through savedInstanceState.
         if (getArguments() != null && getArguments().containsKey(FRAGMENT_BUNDLE_SUBID)) {
@@ -447,6 +445,11 @@
     }
 
     @Override
+    protected int getPreferenceScreenResId() {
+        return R.xml.wifi_calling_settings;
+    }
+
+    @Override
     public void onPause() {
         super.onPause();
         Context context = getActivity();
@@ -571,6 +574,11 @@
         }
     }
 
+    @Override
+    protected String getLogTag() {
+        return TAG;
+    }
+
     private void updateButtonWfcMode(boolean wfcEnabled,
             int wfcMode, int wfcRoamingMode) {
         mButtonWfcMode.setSummary(getWfcModeSummary(wfcMode));
diff --git a/tests/Enable16KbTests/Android.bp b/tests/Enable16KbTests/Android.bp
index 7e1d32c..72826bb 100644
--- a/tests/Enable16KbTests/Android.bp
+++ b/tests/Enable16KbTests/Android.bp
@@ -53,7 +53,7 @@
         "compatibility-host-util",
         "compatibility-tradefed",
     ],
-    data: [
+    device_common_data: [
         ":test_16kb_app",
     ],
     test_suites: ["general-tests"],
diff --git a/tests/robotests/Android.bp b/tests/robotests/Android.bp
index 84c84b0..1cac363 100644
--- a/tests/robotests/Android.bp
+++ b/tests/robotests/Android.bp
@@ -109,7 +109,10 @@
 
 java_library {
     name: "Settings-robo-testutils",
-    srcs: ["testutils/**/*.java"],
+    srcs: [
+        "testutils/**/*.java",
+        "testutils/**/*.kt",
+    ],
     libs: [
         "Robolectric_all-target_upstream",
         "Settings-core",
diff --git a/tests/robotests/OWNERS b/tests/robotests/OWNERS
index 8a7a27e..e15af1c 100644
--- a/tests/robotests/OWNERS
+++ b/tests/robotests/OWNERS
@@ -1,2 +1,3 @@
 # We do not guard tests - everyone is welcomed to contribute to tests.
-per-file *.java=*
\ No newline at end of file
+per-file *.java=*
+per-file *.kt=*
diff --git a/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionScreenTest.kt b/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionScreenTest.kt
new file mode 100644
index 0000000..67fbc1a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/ColorAndMotionScreenTest.kt
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.accessibility
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.android.settingslib.preference.PreferenceScreenCreator
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class ColorAndMotionScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator: PreferenceScreenCreator = ColorAndMotionScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_ACCESSIBILITY_COLOR_AND_MOTION
+
+    override fun migration() {}
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(ColorAndMotionScreen.KEY)
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/TextReadingScreenTest.kt b/tests/robotests/src/com/android/settings/accessibility/TextReadingScreenTest.kt
new file mode 100644
index 0000000..bdc69c9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/TextReadingScreenTest.kt
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accessibility
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class TextReadingScreenTest : CatalystScreenTestCase() {
+
+    override val preferenceScreenCreator = TextReadingScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_TEXT_READING_SCREEN
+
+    override fun migration() {}
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(TextReadingScreen.KEY)
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityScreenTest.kt b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityScreenTest.kt
new file mode 100644
index 0000000..99851de
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/accessibility/VibrationIntensityScreenTest.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.accessibility
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class VibrationIntensityScreenTest : CatalystScreenTestCase() {
+
+    override val preferenceScreenCreator = VibrationIntensityScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_VIBRATION_INTENSITY_SCREEN
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(VibrationIntensityScreen.KEY)
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
index 414fe63..b3270e9 100644
--- a/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/shortcuts/EditShortcutsPreferenceFragmentTest.java
@@ -16,6 +16,9 @@
 
 package com.android.settings.accessibility.shortcuts;
 
+import static android.provider.Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS;
+
+import static com.android.internal.accessibility.AccessibilityShortcutController.DALTONIZER_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_COMPONENT_NAME;
 import static com.android.internal.accessibility.AccessibilityShortcutController.MAGNIFICATION_CONTROLLER_NAME;
 import static com.android.internal.accessibility.common.ShortcutConstants.UserShortcutType.SOFTWARE;
@@ -45,6 +48,7 @@
 import android.view.accessibility.AccessibilityManager;
 import android.view.accessibility.Flags;
 
+import androidx.annotation.Nullable;
 import androidx.fragment.app.FragmentActivity;
 import androidx.fragment.app.testing.FragmentScenario;
 import androidx.lifecycle.Lifecycle;
@@ -160,7 +164,7 @@
     public void showEditShortcutScreen_inSuw_launchSubSettingWithSuw() {
         EditShortcutsPreferenceFragment.showEditShortcutScreen(
                 mActivity, METRICS_CATEGORY, SCREEN_TITLE,
-                TARGET_FAKE_COMPONENT, createSuwIntent(new Intent(), /* isInSuw= */ true));
+                TARGET_FAKE_COMPONENT, setIntentInSuw(new Intent(), /* isInSuw= */ true));
 
         assertLaunchSubSettingWithCurrentTargetComponents(
                 TARGET_FAKE_COMPONENT.flattenToString(), /* isInSuw= */ true);
@@ -199,6 +203,53 @@
     }
 
     @Test
+    @EnableFlags(
+            com.android.settings.accessibility.Flags.FLAG_TOGGLE_FEATURE_FRAGMENT_COLLECTION_INFO)
+    public void shortcutDescriptionPref_defaultLaunch_notVisible() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, TARGET);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_description_pref));
+            assertThat(preference.isVisible()).isFalse();
+        });
+    }
+
+    @Test
+    @EnableFlags(
+            com.android.settings.accessibility.Flags.FLAG_TOGGLE_FEATURE_FRAGMENT_COLLECTION_INFO)
+    public void shortcutDescriptionPref_launchFromAction_singleTarget_notVisible() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false, List.of(TARGET),
+                ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_description_pref));
+            assertThat(preference.isVisible()).isFalse();
+        });
+    }
+
+    @Test
+    @EnableFlags(
+            com.android.settings.accessibility.Flags.FLAG_TOGGLE_FEATURE_FRAGMENT_COLLECTION_INFO)
+    public void shortcutDescriptionPref_launchFromAction_multipleTargets_isVisible() {
+        mFragmentScenario = createFragScenario(/* isInSuw= */ false,
+                // Both of these components are system components with known labels, so we don't
+                // need to mock AccessibilityManager with fake labels.
+                List.of(TARGET, DALTONIZER_COMPONENT_NAME.flattenToString()),
+                ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS);
+        mFragmentScenario.moveToState(Lifecycle.State.CREATED);
+
+        mFragmentScenario.onFragment(fragment -> {
+            Preference preference = fragment.findPreference(
+                    mContext.getString(R.string.accessibility_shortcut_description_pref));
+            assertThat(preference.isVisible()).isTrue();
+        });
+    }
+
+    @Test
     public void fragmentCreated_settingsObserversAreRegistered() {
         ShadowContentResolver contentResolver = shadowOf(mContext.getContentResolver());
         for (Uri uri : SHORTCUT_SETTINGS) {
@@ -654,9 +705,14 @@
 
     private FragmentScenario<EditShortcutsPreferenceFragment> createFragScenario(
             boolean isInSuw, String target) {
+        return createFragScenario(isInSuw, List.of(target), null);
+    }
+    private FragmentScenario<EditShortcutsPreferenceFragment> createFragScenario(
+            boolean isInSuw, List<String> targets, @Nullable String intentAction) {
         Bundle args = new Bundle();
         args.putStringArray(
-                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS, new String[]{target});
+                EditShortcutsPreferenceFragment.ARG_KEY_SHORTCUT_TARGETS,
+                targets.toArray(new String[0]));
         FragmentScenario<EditShortcutsPreferenceFragment> scenario =
                 FragmentScenario.launch(
                         EditShortcutsPreferenceFragment.class, args,
@@ -664,7 +720,11 @@
         scenario.onFragment(fragment -> {
             Intent intent = fragment.requireActivity().getIntent();
             intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE, SCREEN_TITLE);
-            fragment.requireActivity().setIntent(createSuwIntent(intent, isInSuw));
+            setIntentInSuw(intent, isInSuw);
+            if (intentAction != null) {
+                intent.setAction(intentAction);
+            }
+            fragment.requireActivity().setIntent(intent);
             // Since the fragment is attached before we have a chance
             // to modify the activity's intent; initialize controllers again
             fragment.initializePreferenceControllerArguments();
@@ -672,11 +732,7 @@
         return scenario;
     }
 
-    private Intent createSuwIntent(Intent intent, boolean isInSuw) {
-
-        if (intent == null) {
-            intent = new Intent();
-        }
+    private Intent setIntentInSuw(Intent intent, boolean isInSuw) {
         intent.putExtra(EXTRA_IS_SETUP_FLOW, isInSuw);
         intent.putExtra(EXTRA_IS_FIRST_RUN, isInSuw);
         intent.putExtra(EXTRA_IS_PRE_DEFERRED_SETUP, isInSuw);
diff --git a/tests/robotests/src/com/android/settings/applications/contacts/ContactsStoragePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/contacts/ContactsStoragePreferenceControllerTest.java
index a934cba..f55cbb4 100644
--- a/tests/robotests/src/com/android/settings/applications/contacts/ContactsStoragePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/contacts/ContactsStoragePreferenceControllerTest.java
@@ -16,8 +16,9 @@
 
 package com.android.settings.applications.contacts;
 
-import static android.provider.ContactsContract.Settings.KEY_DEFAULT_ACCOUNT;
-import static android.provider.ContactsContract.Settings.QUERY_DEFAULT_ACCOUNT_METHOD;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.KEY_DEFAULT_ACCOUNT_STATE;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD;
+import static android.provider.ContactsContract.Settings;
 
 import static com.android.settings.core.BasePreferenceController.AVAILABLE;
 import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
@@ -28,25 +29,26 @@
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
 
-
 import android.accounts.Account;
 import android.accounts.AccountManager;
+import android.content.ContentProviderClient;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.platform.test.annotations.EnableFlags;
+import android.platform.test.annotations.RequiresFlagsDisabled;
+import android.platform.test.flag.junit.CheckFlagsRule;
+import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import android.platform.test.flag.junit.SetFlagsRule;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState;
 
 import com.android.settings.R;
 import com.android.settings.flags.Flags;
 import com.android.settings.testutils.shadow.ShadowAuthenticationHelper;
 
 import org.junit.Before;
-import android.platform.test.annotations.RequiresFlagsDisabled;
-import android.platform.test.flag.junit.CheckFlagsRule;
-import android.platform.test.flag.junit.DeviceFlagsValueProvider;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -62,11 +64,6 @@
 
     private static final String CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY =
             "contacts_default_account";
-    private static final Account TEST_ACCOUNT1 = new Account("test@gmail.com", "type1");
-
-    private static final Account TEST_ACCOUNT2 = new Account("test@samsung.com", "type2");
-
-    private static final Account TEST_ACCOUNT3 = new Account("LABEL3", "type3");
 
     @Rule
     public final MockitoRule mockito = MockitoJUnit.rule();
@@ -84,6 +81,9 @@
     private ContentResolver mContentResolver;
 
     @Mock
+    private ContentProviderClient mContentProviderClient;
+
+    @Mock
     private Resources mResources;
 
     @Mock
@@ -94,9 +94,15 @@
     @Before
     public void setUp() throws Exception {
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
+        when(mContentResolver.acquireContentProviderClient(
+                eq(ContactsContract.AUTHORITY_URI))).thenReturn(mContentProviderClient);
         when(mContext.getSystemService(eq(Context.ACCOUNT_SERVICE))).thenReturn(mAccountManager);
         when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[]{});
-
+        Bundle bundle = new Bundle();
+        bundle.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_NOT_SET);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(bundle);
         mPreferenceController = new ContactsStoragePreferenceController(mContext,
                 CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
     }
@@ -104,13 +110,39 @@
     @Test
     @EnableFlags(Flags.FLAG_ENABLE_CONTACTS_DEFAULT_ACCOUNT_IN_SETTINGS)
     public void getAvailabilityStatus_flagIsOn_shouldReturnAvailable() {
-
         assertThat(mPreferenceController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
     }
 
     @Test
     @RequiresFlagsDisabled(Flags.FLAG_ENABLE_CONTACTS_DEFAULT_ACCOUNT_IN_SETTINGS)
     public void getAvailabilityStatus_flagIsOff_shouldReturnConditionallyUnavailable() {
+        assertThat(mPreferenceController.getAvailabilityStatus()).isEqualTo(
+                CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_CONTACTS_DEFAULT_ACCOUNT_IN_SETTINGS)
+    public void getAvailabilityStatus_illegalStateExceptionThrown_shouldReturnConditionallyUnavailable()
+            throws Exception {
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenThrow(new IllegalStateException());
+
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
+
+        assertThat(mPreferenceController.getAvailabilityStatus()).isEqualTo(
+                CONDITIONALLY_UNAVAILABLE);
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_ENABLE_CONTACTS_DEFAULT_ACCOUNT_IN_SETTINGS)
+    public void getAvailabilityStatus_runtimeExceptionThrown_shouldReturnConditionallyUnavailable()
+            throws Exception {
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenThrow(new RuntimeException());
+
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
 
         assertThat(mPreferenceController.getAvailabilityStatus()).isEqualTo(
                 CONDITIONALLY_UNAVAILABLE);
@@ -118,43 +150,77 @@
 
     @Test
     public void getSummary_noAccountIsSetAsDefault_shouldReturnNoAccountSetSummary() {
-        Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, null);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
         when(mContext.getResources()).thenReturn(mResources);
-        when(mResources.getString(eq(R.string.contacts_storage_no_account_set))).thenReturn(
+        when(mResources.getString(eq(R.string.contacts_storage_no_account_set_summary))).thenReturn(
                 "No default set");
 
+        // Fetch the default account from CP2.
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
+
         assertThat(mPreferenceController.getSummary()).isEqualTo("No default set");
     }
 
     @Test
-    public void getSummary_googleAccountIsSetAsDefault_shouldReturnGoogleAccountTypeAndAccountName() {
+    public void getSummary_localAccountIsSetAsDefault_shouldReturnLocalAccountSetSummary()
+            throws Exception {
         Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, TEST_ACCOUNT1);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
+        bundle.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_LOCAL);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(bundle);
+        when(mContext.getResources()).thenReturn(mResources);
+        when(mResources.getString(eq(R.string.contacts_storage_local_account_summary))).thenReturn(
+                "Device only");
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
+
+        assertThat(mPreferenceController.getSummary()).isEqualTo("Device only");
+    }
+
+    @Test
+    public void getSummary_googleAccountIsSetAsDefault_shouldReturnGoogleAccountTypeAndAccountName()
+            throws Exception {
+        Bundle bundle = new Bundle();
+        bundle.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_CLOUD);
+        bundle.putString(Settings.ACCOUNT_TYPE, "type1");
+        bundle.putString(Settings.ACCOUNT_NAME, "test@gmail.com");
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(bundle);
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
 
         assertThat(mPreferenceController.getSummary()).isEqualTo("LABEL1 | test@gmail.com");
     }
 
     @Test
-    public void getSummary_samsungAccountIsSetAsDefault_shouldReturnSamsungAccountTypeAndAccountName() {
+    public void getSummary_samsungAccountIsSetAsDefault_shouldReturnSamsungAccountTypeAndAccountName()
+            throws Exception {
         Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, TEST_ACCOUNT2);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
+        bundle.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_CLOUD);
+        bundle.putString(Settings.ACCOUNT_TYPE, "type2");
+        bundle.putString(Settings.ACCOUNT_NAME, "test@samsung.com");
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(bundle);
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
 
         assertThat(mPreferenceController.getSummary()).isEqualTo("LABEL2 | test@samsung.com");
     }
 
     @Test
-    public void getSummary_accountLabelSameAsAccountName_onlyReturnAccountName() {
+    public void getSummary_accountLabelSameAsAccountName_onlyReturnAccountName() throws Exception {
         Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, TEST_ACCOUNT3);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
+        bundle.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_CLOUD);
+        bundle.putString(Settings.ACCOUNT_TYPE, "type3");
+        bundle.putString(Settings.ACCOUNT_NAME, "LABEL3");
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(bundle);
+        mPreferenceController = new ContactsStoragePreferenceController(mContext,
+                CONTACTS_DEFAULT_ACCOUNT_PREFERENCE_KEY);
 
         // Since package name and account name is the same, we only return account name.
         assertThat(mPreferenceController.getSummary()).isEqualTo("LABEL3");
diff --git a/tests/robotests/src/com/android/settings/applications/contacts/ContactsStorageSettingsTest.java b/tests/robotests/src/com/android/settings/applications/contacts/ContactsStorageSettingsTest.java
index 785ef4a..a8c86e1 100644
--- a/tests/robotests/src/com/android/settings/applications/contacts/ContactsStorageSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/applications/contacts/ContactsStorageSettingsTest.java
@@ -15,16 +15,17 @@
  */
 package com.android.settings.applications.contacts;
 
-import static android.provider.ContactsContract.Settings.KEY_DEFAULT_ACCOUNT;
-import static android.provider.ContactsContract.Settings.QUERY_DEFAULT_ACCOUNT_METHOD;
-import static android.provider.ContactsContract.Settings.SET_DEFAULT_ACCOUNT_METHOD;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.KEY_DEFAULT_ACCOUNT_STATE;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.KEY_ELIGIBLE_DEFAULT_ACCOUNTS;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD;
+import static android.provider.ContactsContract.RawContacts.DefaultAccount.SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD;
 import static android.provider.Settings.ACTION_ADD_ACCOUNT;
 import static android.provider.Settings.EXTRA_ACCOUNT_TYPES;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -33,14 +34,17 @@
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.app.settings.SettingsEnums;
+import android.content.ContentProviderClient;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.res.Resources;
 import android.os.Bundle;
 import android.provider.ContactsContract;
+import android.provider.ContactsContract.RawContacts.DefaultAccount.DefaultAccountAndState;
 import android.provider.SearchIndexableResource;
 
+import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
 import androidx.preference.PreferenceScreen;
 import androidx.test.core.app.ApplicationProvider;
@@ -63,6 +67,7 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @RunWith(RobolectricTestRunner.class)
@@ -76,6 +81,8 @@
 
     private static final Account TEST_ACCOUNT2 = new Account("test@samsung.com", "type2");
 
+    private static final Account TEST_ACCOUNT3 = new Account("test@outlook.com", "type3");
+
     @Rule
     public final MockitoRule mockito = MockitoJUnit.rule();
     @Spy
@@ -83,8 +90,7 @@
     @Mock
     private ContentResolver mContentResolver;
     @Mock
-    private AccountManager mAccountManager;
-
+    private ContentProviderClient mContentProviderClient;
     private PreferenceManager mPreferenceManager;
     private TestContactsStorageSettings mContactsStorageSettings;
     private PreferenceScreen mScreen;
@@ -92,8 +98,8 @@
     @Before
     public void setUp() throws Exception {
         mContactsStorageSettings = spy(new TestContactsStorageSettings(mContext, mContentResolver));
-        when(mContext.getSystemService(eq(Context.ACCOUNT_SERVICE))).thenReturn(mAccountManager);
-        when(mAccountManager.getAccountsAsUser(anyInt())).thenReturn(new Account[]{});
+        when(mContentResolver.acquireContentProviderClient(
+                eq(ContactsContract.AUTHORITY_URI))).thenReturn(mContentProviderClient);
         mPreferenceManager = new PreferenceManager(mContext);
         when(mContactsStorageSettings.getPreferenceManager()).thenReturn(mPreferenceManager);
         mScreen = spy(new PreferenceScreen(mContext, /* attrs= */ null));
@@ -115,12 +121,17 @@
     }
 
     @Test
-    public void verifyDeviceOnlyPreference_onClick_setDefaultAccountToNull() {
-        when(mAccountManager.getAccounts()).thenReturn(new Account[]{});
-        Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, null);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
+    public void verifyDeviceOnlyPreference_onClick_setDefaultAccountToNull() throws Exception {
+        Bundle currentDefaultAccount = new Bundle();
+        currentDefaultAccount.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_NOT_SET);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(currentDefaultAccount);
+        Bundle eligibleAccountBundle = new Bundle();
+        eligibleAccountBundle.putParcelableArrayList(KEY_ELIGIBLE_DEFAULT_ACCOUNTS,
+                new ArrayList<>());
+        when(mContentProviderClient.call(eq(QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD), any(),
+                any())).thenReturn(eligibleAccountBundle);
 
         PreferenceScreen settingScreen = mPreferenceManager.inflateFromResource(mContext,
                 R.xml.contacts_storage_settings, mScreen);
@@ -139,18 +150,27 @@
 
         assertThat(deviceOnlyPreference.isChecked()).isTrue();
         ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class);
-        verify(mContentResolver).call(eq(ContactsContract.AUTHORITY_URI),
-                eq(SET_DEFAULT_ACCOUNT_METHOD), any(), captor.capture());
+        verify(mContentProviderClient).call(eq(SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                captor.capture());
         Bundle accountBundle = captor.getValue();
         assertThat(accountBundle.getString(ContactsContract.Settings.ACCOUNT_NAME)).isNull();
         assertThat(accountBundle.getString(ContactsContract.Settings.ACCOUNT_TYPE)).isNull();
     }
 
     @Test
-    public void verifyAddAccountPreference_onClick_startAddAccountActivity() {
-        when(mAccountManager.getAccounts()).thenReturn(new Account[]{});
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(Bundle.EMPTY);
+    public void verifyAddAccountPreference_eligibleAccountsAvailable_startAddAccountActivityOnClick()
+            throws Exception {
+        Bundle currentDefaultAccount = new Bundle();
+        currentDefaultAccount.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_NOT_SET);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(currentDefaultAccount);
+        Bundle eligibleAccountBundle = new Bundle();
+        eligibleAccountBundle.putParcelableArrayList(KEY_ELIGIBLE_DEFAULT_ACCOUNTS,
+                new ArrayList<>());
+        when(mContentProviderClient.call(eq(QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD), any(),
+                any())).thenReturn(eligibleAccountBundle);
+        mContactsStorageSettings.setEligibleAccountTypes(new String[]{"com.google"});
 
         mContactsStorageSettings.refreshUI();
 
@@ -167,16 +187,45 @@
         assertThat(addAccountIntent.getComponent().getClassName()).isEqualTo(
                 AddAccountSettings.class.getCanonicalName());
         String[] eligibleAccounts = (String[]) addAccountIntent.getExtra(EXTRA_ACCOUNT_TYPES);
-        assertThat(eligibleAccounts).isEmpty();
+        assertThat(List.of(eligibleAccounts)).containsExactly("com.google");
     }
 
     @Test
-    public void verifyEligibleAccountPreference_onClick_setSelectedDefaultAccount() {
-        when(mAccountManager.getAccounts()).thenReturn(new Account[]{TEST_ACCOUNT1, TEST_ACCOUNT2});
-        Bundle bundle = new Bundle();
-        bundle.putParcelable(KEY_DEFAULT_ACCOUNT, TEST_ACCOUNT2);
-        when(mContentResolver.call(eq(ContactsContract.AUTHORITY_URI),
-                eq(QUERY_DEFAULT_ACCOUNT_METHOD), any(), any())).thenReturn(bundle);
+    public void verifyAddAccountPreference_noEligibleAccountsAvailable_dontShowPreference()
+            throws Exception {
+        Bundle currentDefaultAccount = new Bundle();
+        currentDefaultAccount.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_NOT_SET);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(currentDefaultAccount);
+        Bundle eligibleAccountBundle = new Bundle();
+        eligibleAccountBundle.putParcelableArrayList(KEY_ELIGIBLE_DEFAULT_ACCOUNTS,
+                new ArrayList<>());
+        when(mContentProviderClient.call(eq(QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD), any(),
+                any())).thenReturn(eligibleAccountBundle);
+        mContactsStorageSettings.setEligibleAccountTypes(new String[]{});
+
+        mContactsStorageSettings.refreshUI();
+
+        Preference addAccountPreference = mScreen.findPreference(PREF_KEY_ADD_ACCOUNT);
+        assertThat(addAccountPreference).isNull();
+    }
+
+    @Test
+    public void verifyEligibleAccountPreference_onClick_setSelectedDefaultAccount()
+            throws Exception {
+        Bundle currentDefaultAccount = new Bundle();
+        currentDefaultAccount.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_LOCAL);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(currentDefaultAccount);
+        Bundle eligibleAccountBundle = new Bundle();
+        ArrayList<Account> eligibleAccounts = new ArrayList<>(
+                List.of(TEST_ACCOUNT1, TEST_ACCOUNT2));
+        eligibleAccountBundle.putParcelableArrayList(KEY_ELIGIBLE_DEFAULT_ACCOUNTS,
+                eligibleAccounts);
+        when(mContentProviderClient.call(eq(QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD), any(),
+                any())).thenReturn(eligibleAccountBundle);
 
         mContactsStorageSettings.refreshUI();
 
@@ -197,8 +246,8 @@
         assertThat(account2Preference.isChecked()).isTrue();
 
         ArgumentCaptor<Bundle> captor = ArgumentCaptor.forClass(Bundle.class);
-        verify(mContentResolver).call(eq(ContactsContract.AUTHORITY_URI),
-                eq(SET_DEFAULT_ACCOUNT_METHOD), any(), captor.capture());
+        verify(mContentProviderClient).call(eq(SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                captor.capture());
         Bundle setAccountBundle = captor.getValue();
         assertThat(setAccountBundle.getString(ContactsContract.Settings.ACCOUNT_NAME)).isEqualTo(
                 "test@samsung.com");
@@ -207,6 +256,49 @@
     }
 
     @Test
+    public void verifyAccountPreference_defaultAccountIsNotEligibleCloudAccount_createNewDefaultAccountPreference()
+            throws Exception {
+        Bundle currentDefaultAccount = new Bundle();
+        currentDefaultAccount.putInt(KEY_DEFAULT_ACCOUNT_STATE,
+                DefaultAccountAndState.DEFAULT_ACCOUNT_STATE_CLOUD);
+        currentDefaultAccount.putString(ContactsContract.Settings.ACCOUNT_NAME, TEST_ACCOUNT3.name);
+        currentDefaultAccount.putString(ContactsContract.Settings.ACCOUNT_TYPE, TEST_ACCOUNT3.type);
+        when(mContentProviderClient.call(eq(QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD), any(),
+                any())).thenReturn(currentDefaultAccount);
+        Bundle eligibleAccountBundle = new Bundle();
+        ArrayList<Account> eligibleAccounts = new ArrayList<>(
+                List.of(TEST_ACCOUNT1, TEST_ACCOUNT2));
+        eligibleAccountBundle.putParcelableArrayList(KEY_ELIGIBLE_DEFAULT_ACCOUNTS,
+                eligibleAccounts);
+        when(mContentProviderClient.call(eq(QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD), any(),
+                any())).thenReturn(eligibleAccountBundle);
+
+        mContactsStorageSettings.refreshUI();
+
+        SelectorWithWidgetPreference account1Preference = mScreen.findPreference(
+                String.valueOf(TEST_ACCOUNT1.hashCode()));
+        assertThat(account1Preference.getTitle()).isEqualTo("LABEL1");
+        assertThat(account1Preference.getSummary()).isEqualTo("test@gmail.com");
+        assertThat(account1Preference.getIcon()).isNotNull();
+
+        SelectorWithWidgetPreference account2Preference = mScreen.findPreference(
+                String.valueOf(TEST_ACCOUNT2.hashCode()));
+        assertThat(account2Preference.getTitle()).isEqualTo("LABEL2");
+        assertThat(account2Preference.getSummary()).isEqualTo("test@samsung.com");
+        assertThat(account2Preference.getIcon()).isNotNull();
+
+        SelectorWithWidgetPreference account3Preference = mScreen.findPreference(
+                String.valueOf(TEST_ACCOUNT3.hashCode()));
+        assertThat(account3Preference.getTitle()).isEqualTo("LABEL3");
+        assertThat(account3Preference.getSummary()).isEqualTo("test@outlook.com");
+        assertThat(account3Preference.getIcon()).isNotNull();
+
+        assertThat(account1Preference.isChecked()).isFalse();
+        assertThat(account2Preference.isChecked()).isFalse();
+        assertThat(account3Preference.isChecked()).isTrue();
+    }
+
+    @Test
     public void searchIndexProvider_shouldIndexResource() {
         final List<SearchIndexableResource> indexRes =
                 ContactsStorageSettings.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(
@@ -220,6 +312,7 @@
     private static class TestContactsStorageSettings extends ContactsStorageSettings {
         private final Context mContext;
         private final ContentResolver mContentResolver;
+        private String[] mEligibleAccountTypes;
 
         TestContactsStorageSettings(Context context, ContentResolver contentResolver) {
             mContext = context;
@@ -236,5 +329,16 @@
             // Override it so we can access this method in test
             return mContentResolver;
         }
+
+        @Override
+        String[] getEligibleAccountTypes() {
+            return mEligibleAccountTypes == null ? Resources.getSystem().getStringArray(
+                    com.android.internal.R.array.config_rawContactsEligibleDefaultAccountTypes)
+                    : mEligibleAccountTypes;
+        }
+
+        public void setEligibleAccountTypes(String[] eligibleAccountTypes) {
+            mEligibleAccountTypes = eligibleAccountTypes;
+        }
     }
 }
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
index 8f983de..df2ab45 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrollingTest.java
@@ -63,12 +63,14 @@
 
 import com.android.settings.R;
 import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settings.testutils.SystemProperty;
 import com.android.settings.widget.RingProgressBar;
 
 import com.airbnb.lottie.LottieAnimationView;
 import com.airbnb.lottie.LottieTask;
 import com.google.android.setupdesign.GlifLayout;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -111,15 +113,23 @@
     private final int[] mSfpsStageThresholds = new int[]{0, 9, 13, 19, 25};
     private final int[] mUdfpsStageThresholds = new int[]{0, 13, 17, 22};
 
+    private final SystemProperty mSystemProperty = new SystemProperty();
+
     private FingerprintEnrollEnrolling mActivity;
     private Context mContext;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        mSystemProperty.override("robolectric.createActivityContexts", "true");
         FakeFeatureFactory.setupForTest();
     }
 
+    @After
+    public void tearDown() {
+        mSystemProperty.close();
+    }
+
     @Test
     public void fingerprintUdfpsEnrollSuccessProgress_shouldNotVibrate() {
         initializeActivityFor(TYPE_UDFPS_OPTICAL);
@@ -645,7 +655,6 @@
     }
 
     private void createActivity() {
-        System.setProperty("robolectric.createActivityContexts", "true");
         final Bundle savedInstanceState = new Bundle();
         savedInstanceState.putInt(KEY_STATE_PREVIOUS_ROTATION, Surface.ROTATION_90);
 
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt
new file mode 100644
index 0000000..16db841
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/connecteddevice/BluetoothDashboardScreenTest.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2024 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.connecteddevice
+
+import android.content.Intent
+import android.provider.Settings.Global
+import androidx.preference.PreferenceFragmentCompat
+import androidx.test.core.app.ActivityScenario
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.Settings.BluetoothDashboardActivity
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class BluetoothDashboardScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = BluetoothDashboardScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_BLUETOOTH_SWITCHBAR_SCREEN
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(BluetoothDashboardScreen.KEY)
+    }
+
+    override fun launchFragment(
+        fragmentClass: Class<PreferenceFragmentCompat>,
+        action: (PreferenceFragmentCompat) -> Unit,
+    ) {
+        Global.putInt(appContext.contentResolver, Global.DEVICE_PROVISIONED, 1)
+        val intent = Intent(appContext, BluetoothDashboardActivity::class.java)
+        ActivityScenario.launch<BluetoothDashboardActivity>(intent).use {
+            it.onActivity { activity ->
+                val fragment = activity.supportFragmentManager.fragments[0]
+                assertThat(fragment.javaClass).isEqualTo(fragmentClass)
+                action(fragment as PreferenceFragmentCompat)
+            }
+        }
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/development/LinuxTerminalPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/LinuxTerminalPreferenceControllerTest.java
new file mode 100644
index 0000000..96b6d6a
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/development/LinuxTerminalPreferenceControllerTest.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2024 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.development;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+import android.content.pm.PackageManager.NameNotFoundException;
+
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+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;
+
+@RunWith(RobolectricTestRunner.class)
+public class LinuxTerminalPreferenceControllerTest {
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private SwitchPreference mPreference;
+    @Mock
+    private PreferenceScreen mPreferenceScreen;
+    @Mock
+    private PackageManager mPackageManager;
+    @Mock
+    private ApplicationInfo mApplicationInfo;
+
+    private String mTerminalPackageName = "com.android.virtualization.terminal";
+    private LinuxTerminalPreferenceController mController;
+
+    @Before
+    public void setup() throws Exception {
+        MockitoAnnotations.initMocks(this);
+        doReturn(mPackageManager).when(mContext).getPackageManager();
+        doReturn(mApplicationInfo).when(mPackageManager).getApplicationInfo(
+                eq(mTerminalPackageName), any());
+
+        mController = spy(new LinuxTerminalPreferenceController(mContext));
+        doReturn(true).when(mController).isAvailable();
+        doReturn(mTerminalPackageName).when(mController).getTerminalPackageName();
+        when(mPreferenceScreen.findPreference(mController.getPreferenceKey()))
+                .thenReturn(mPreference);
+        mController.displayPreference(mPreferenceScreen);
+    }
+
+    @Test
+    public void isAvailable_whenPackageNameIsNull_returnsFalse() throws Exception {
+        mController = spy(new LinuxTerminalPreferenceController(mContext));
+        doReturn(null).when(mController).getTerminalPackageName();
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isAvailable_whenAppDoesNotExist_returnsFalse() throws Exception {
+        doThrow(new NameNotFoundException()).when(mPackageManager).getApplicationInfo(
+                eq(mTerminalPackageName), any());
+
+        mController = spy(new LinuxTerminalPreferenceController(mContext));
+
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOnTerminal() {
+        mController.onPreferenceChange(null, true);
+
+        verify(mPackageManager).setApplicationEnabledSetting(
+                mTerminalPackageName,
+                PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+                /* flags= */ 0);
+    }
+
+    @Test
+    public void onPreferenceChanged_turnOffTerminal() {
+        mController.onPreferenceChange(null, false);
+
+        verify(mPackageManager).setApplicationEnabledSetting(
+                mTerminalPackageName,
+                PackageManager.COMPONENT_ENABLED_STATE_DEFAULT,
+                /* flags= */ 0);
+    }
+
+    @Test
+    public void updateState_preferenceShouldBeChecked() {
+        when(mPackageManager.getApplicationEnabledSetting(mTerminalPackageName))
+                .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(true);
+    }
+
+    @Test
+    public void updateState_preferenceShouldNotBeChecked() {
+        when(mPackageManager.getApplicationEnabledSetting(mTerminalPackageName))
+                .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
+        mController.updateState(mPreference);
+
+        verify(mPreference).setChecked(false);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java
index e5940b6..d1c32a2 100644
--- a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateDetailsFragmentTest.java
@@ -16,16 +16,26 @@
 
 package com.android.settings.display;
 
+import static android.hardware.devicestate.DeviceState.PROPERTY_EMULATED_ONLY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FEATURE_REAR_DISPLAY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN;
 import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED;
 
 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.when;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.res.Resources;
+import android.hardware.devicestate.DeviceState;
+import android.hardware.devicestate.DeviceStateManager;
 
 import com.android.settings.R;
 import com.android.settingslib.core.AbstractPreferenceController;
@@ -34,29 +44,61 @@
 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.List;
+import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 public class DeviceStateAutoRotateDetailsFragmentTest {
-    private static final int FOLDED_STATE = 0;
-    private static final int HALF_FOLDED_STATE = 1;
-    private static final int UNFOLDED_STATE = 2;
-    private static final int REAR_DISPLAY_STATE = 3;
+    private static final DeviceState DEVICE_STATE_FOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 0, "FOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
+                    .build());
+    private static final DeviceState DEVICE_STATE_HALF_FOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 1, "HALF_FOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN))
+                    .build());
+    private static final DeviceState DEVICE_STATE_UNFOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 2, "UNFOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN))
+                    .build());
+    private static final DeviceState DEVICE_STATE_REAR_DISPLAY = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 3, "REAR_DISPLAY")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY,
+                            PROPERTY_FEATURE_REAR_DISPLAY, PROPERTY_EMULATED_ONLY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
+                    .build());
 
     private final DeviceStateAutoRotateDetailsFragment mFragment =
             spy(new DeviceStateAutoRotateDetailsFragment());
     private final Context mContext = spy(RuntimeEnvironment.application);
     private final Resources mResources = spy(mContext.getResources());
+    @Mock
+    private DeviceStateManager mDeviceStateManager;
 
     @Before
     public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
         when(mContext.getResources()).thenReturn(mResources);
         when(mContext.getApplicationContext()).thenReturn(mContext);
         when(mFragment.getContext()).thenReturn(mContext);
         when(mFragment.getResources()).thenReturn(mResources);
+        doReturn(mDeviceStateManager).when(mContext).getSystemService(DeviceStateManager.class);
         setUpPostureMappings();
     }
 
@@ -75,8 +117,10 @@
     @Test
     public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() {
         enableDeviceStateSettableRotationStates(
-                new String[]{FOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
-                        UNFOLDED_STATE + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED},
+                new String[]{DEVICE_STATE_FOLDED.getIdentifier() + ":"
+                        + DEVICE_STATE_ROTATION_LOCK_LOCKED,
+                        DEVICE_STATE_UNFOLDED.getIdentifier() + ":"
+                                + DEVICE_STATE_ROTATION_LOCK_LOCKED},
                 new String[]{"Folded", "Unfolded"});
 
         List<AbstractPreferenceController> preferenceControllers =
@@ -112,18 +156,22 @@
                 .resetStateForTesting(mResources);
     }
 
+    // Sets up posture mappings for PosturesHelper
     private void setUpPostureMappings() {
         when(mResources.getIntArray(
                 com.android.internal.R.array.config_foldedDeviceStates)).thenReturn(
-                new int[]{FOLDED_STATE});
+                    new int[]{DEVICE_STATE_FOLDED.getIdentifier()});
         when(mResources.getIntArray(
                 com.android.internal.R.array.config_halfFoldedDeviceStates)).thenReturn(
-                new int[]{HALF_FOLDED_STATE});
+                    new int[]{DEVICE_STATE_HALF_FOLDED.getIdentifier()});
         when(mResources.getIntArray(
                 com.android.internal.R.array.config_openDeviceStates)).thenReturn(
-                new int[]{UNFOLDED_STATE});
+                    new int[]{DEVICE_STATE_UNFOLDED.getIdentifier()});
         when(mResources.getIntArray(
                 com.android.internal.R.array.config_rearDisplayDeviceStates)).thenReturn(
-                new int[]{REAR_DISPLAY_STATE});
+                    new int[]{DEVICE_STATE_REAR_DISPLAY.getIdentifier()});
+        when(mDeviceStateManager.getSupportedDeviceStates()).thenReturn(
+                List.of(DEVICE_STATE_FOLDED, DEVICE_STATE_HALF_FOLDED, DEVICE_STATE_UNFOLDED,
+                        DEVICE_STATE_REAR_DISPLAY));
     }
 }
diff --git a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java
index d364a3b..cb1be85 100644
--- a/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/DeviceStateAutoRotateSettingControllerTest.java
@@ -21,10 +21,13 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.verify;
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
+import android.hardware.devicestate.DeviceState;
+import android.hardware.devicestate.DeviceStateManager;
 
 import androidx.preference.Preference;
 import androidx.preference.PreferenceManager;
@@ -41,6 +44,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.robolectric.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
@@ -56,15 +60,16 @@
 })
 public class DeviceStateAutoRotateSettingControllerTest {
 
-    private static final int DEFAULT_DEVICE_STATE = 1;
+    private static final DeviceState DEFAULT_DEVICE_STATE = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 1, "DEFAULT").build());
     private static final String DEFAULT_DEVICE_STATE_DESCRIPTION = "Device state description";
     private static final int DEFAULT_ORDER = -10;
 
-    private final Context mContext = RuntimeEnvironment.application;
-    private final DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager =
-            DeviceStateRotationLockSettingsManager.getInstance(mContext);
+    private final Context mContext = Mockito.spy(RuntimeEnvironment.application);
+    private DeviceStateRotationLockSettingsManager mAutoRotateSettingsManager;
 
     @Mock private MetricsFeatureProvider mMetricsFeatureProvider;
+    @Mock private DeviceStateManager mDeviceStateManager;
 
     private DeviceStateAutoRotateSettingController mController;
 
@@ -72,9 +77,15 @@
     public void setUp() {
         MockitoAnnotations.initMocks(this);
 
+        doReturn(mContext).when(mContext).getApplicationContext();
+        doReturn(mDeviceStateManager).when(mContext).getSystemService(DeviceStateManager.class);
+        doReturn(List.of(DEFAULT_DEVICE_STATE)).when(
+                mDeviceStateManager).getSupportedDeviceStates();
+        mAutoRotateSettingsManager =
+                DeviceStateRotationLockSettingsManager.getInstance(mContext);
         mController = new DeviceStateAutoRotateSettingController(
                 mContext,
-                DEFAULT_DEVICE_STATE,
+                DEFAULT_DEVICE_STATE.getIdentifier(),
                 DEFAULT_DEVICE_STATE_DESCRIPTION,
                 DEFAULT_ORDER,
                 mMetricsFeatureProvider
@@ -128,20 +139,22 @@
     public void getPreferenceKey_returnsKeyBasedOnDeviceState() {
         String key = mController.getPreferenceKey();
 
-        String expectedKey = "auto_rotate_device_state_" + DEFAULT_DEVICE_STATE;
+        String expectedKey = "auto_rotate_device_state_" + DEFAULT_DEVICE_STATE.getIdentifier();
         assertThat(key).isEqualTo(expectedKey);
     }
 
     @Test
     public void isChecked_settingForStateIsUnlocked_returnsTrue() {
-        mAutoRotateSettingsManager.updateSetting(DEFAULT_DEVICE_STATE, /* rotationLocked= */ false);
+        mAutoRotateSettingsManager.updateSetting(
+                DEFAULT_DEVICE_STATE.getIdentifier(), /* rotationLocked= */ false);
 
         assertThat(mController.isChecked()).isTrue();
     }
 
     @Test
     public void isChecked_settingForStateIsLocked_returnsFalse() {
-        mAutoRotateSettingsManager.updateSetting(DEFAULT_DEVICE_STATE, /* rotationLocked= */ true);
+        mAutoRotateSettingsManager.updateSetting(
+                DEFAULT_DEVICE_STATE.getIdentifier(), /* rotationLocked= */ true);
 
         assertThat(mController.isChecked()).isFalse();
     }
@@ -150,7 +163,8 @@
     public void setChecked_true_deviceStateSettingIsUnlocked() {
         mController.setChecked(true);
 
-        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(DEFAULT_DEVICE_STATE);
+        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(
+                DEFAULT_DEVICE_STATE.getIdentifier());
 
         assertThat(rotationLocked).isFalse();
     }
@@ -159,7 +173,8 @@
     public void setChecked_false_deviceStateSettingIsLocked() {
         mController.setChecked(false);
 
-        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(DEFAULT_DEVICE_STATE);
+        boolean rotationLocked = mAutoRotateSettingsManager.isRotationLocked(
+                DEFAULT_DEVICE_STATE.getIdentifier());
 
         assertThat(rotationLocked).isTrue();
     }
@@ -169,7 +184,8 @@
         mController.setChecked(true);
 
         verify(mMetricsFeatureProvider).action(mContext,
-                SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE);
+                SettingsEnums.ACTION_ENABLE_AUTO_ROTATION_DEVICE_STATE,
+                DEFAULT_DEVICE_STATE.getIdentifier());
     }
 
     @Test
@@ -177,7 +193,8 @@
         mController.setChecked(false);
 
         verify(mMetricsFeatureProvider).action(mContext,
-                SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE, DEFAULT_DEVICE_STATE);
+                SettingsEnums.ACTION_DISABLE_AUTO_ROTATION_DEVICE_STATE,
+                DEFAULT_DEVICE_STATE.getIdentifier());
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/display/DisplayScreenTest.kt b/tests/robotests/src/com/android/settings/display/DisplayScreenTest.kt
index 6a7c238..342aa54 100644
--- a/tests/robotests/src/com/android/settings/display/DisplayScreenTest.kt
+++ b/tests/robotests/src/com/android/settings/display/DisplayScreenTest.kt
@@ -21,9 +21,9 @@
 import com.android.internal.widget.LockPatternUtils
 import com.android.settings.flags.Flags
 import com.android.settings.testutils.FakeFeatureFactory
+import com.android.settings.testutils.SystemProperty
 import com.android.settingslib.preference.CatalystScreenTestCase
 import com.google.common.truth.Truth.assertThat
-import org.junit.Ignore
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.ArgumentMatchers.anyInt
@@ -42,8 +42,8 @@
 
     private val mockResources = mock<Resources>()
 
-    private val contextWrapper =
-        object : ContextWrapper(context) {
+    private val context =
+        object : ContextWrapper(appContext) {
             override fun getResources(): Resources = mockResources
         }
 
@@ -56,26 +56,26 @@
     fun isAvailable_configTrue_shouldReturnTrue() {
         mockResources.stub { on { getBoolean(anyInt()) } doReturn true }
 
-        assertThat(preferenceScreenCreator.isAvailable(contextWrapper)).isTrue()
+        assertThat(preferenceScreenCreator.isAvailable(context)).isTrue()
     }
 
     @Test
     fun isAvailable_configFalse_shouldReturnFalse() {
         mockResources.stub { on { getBoolean(anyInt()) } doReturn false }
 
-        assertThat(preferenceScreenCreator.isAvailable(contextWrapper)).isFalse()
+        assertThat(preferenceScreenCreator.isAvailable(context)).isFalse()
     }
 
-    @Ignore("robolectric.createActivityContexts cause other test failure")
     override fun migration() {
         // avoid UnsupportedOperationException when getDisplay from context
-        System.setProperty("robolectric.createActivityContexts", "true")
+        SystemProperty("robolectric.createActivityContexts", "true").use {
+            val lockPatternUtils =
+                mock<LockPatternUtils> { on { isSecure(anyInt()) } doReturn true }
+            FakeFeatureFactory.setupForTest().securityFeatureProvider.stub {
+                on { getLockPatternUtils(any()) } doReturn lockPatternUtils
+            }
 
-        val lockPatternUtils = mock<LockPatternUtils> { on { isSecure(anyInt()) } doReturn true }
-        FakeFeatureFactory.setupForTest().securityFeatureProvider.stub {
-            on { getLockPatternUtils(any()) } doReturn lockPatternUtils
+            super.migration()
         }
-
-        super.migration()
     }
 }
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
index 63395d1..e2542b0 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotateControllerTest.java
@@ -33,6 +33,8 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
+import android.hardware.devicestate.DeviceState;
+import android.hardware.devicestate.DeviceStateManager;
 import android.os.UserHandle;
 import android.provider.Settings;
 
@@ -56,6 +58,8 @@
 import org.robolectric.annotation.Config;
 import org.robolectric.shadow.api.Shadow;
 
+import java.util.List;
+
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {ShadowSensorPrivacyManager.class, ShadowSystemSettings.class})
 public class SmartAutoRotateControllerTest {
@@ -67,21 +71,30 @@
     private PackageManager mPackageManager;
     @Mock
     private Preference mPreference;
+    @Mock
+    private DeviceStateManager mDeviceStateManager;
     private ContentResolver mContentResolver;
-    private final DeviceStateRotationLockSettingsManager mDeviceStateAutoRotateSettingsManager =
-            DeviceStateRotationLockSettingsManager.getInstance(RuntimeEnvironment.application);
+    private DeviceStateRotationLockSettingsManager mDeviceStateAutoRotateSettingsManager;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
         final Context context = Mockito.spy(RuntimeEnvironment.application);
         mContentResolver = RuntimeEnvironment.application.getContentResolver();
+
         when(context.getPackageManager()).thenReturn(mPackageManager);
         when(context.getContentResolver()).thenReturn(mContentResolver);
         doReturn(PACKAGE_NAME).when(mPackageManager).getRotationResolverPackageName();
         doReturn(PackageManager.PERMISSION_GRANTED).when(mPackageManager).checkPermission(
                 Manifest.permission.CAMERA, PACKAGE_NAME);
+        // Necessary for the DeviceStateRotationLockSettingsManager setup
+        doReturn(context).when(context).getApplicationContext();
+        doReturn(mDeviceStateManager).when(context).getSystemService(DeviceStateManager.class);
+        doReturn(getDeviceStateList()).when(mDeviceStateManager).getSupportedDeviceStates();
+        mDeviceStateAutoRotateSettingsManager = DeviceStateRotationLockSettingsManager.getInstance(
+                context);
         mController = Mockito.spy(new SmartAutoRotateController(context, "test_key"));
+
         when(mController.isCameraLocked()).thenReturn(false);
         when(mController.isPowerSaveMode()).thenReturn(false);
         doReturn(mController.getPreferenceKey()).when(mPreference).getKey();
@@ -183,4 +196,13 @@
                 Shadow.extract(mDeviceStateAutoRotateSettingsManager);
         shadowManager.setRotationLockedForAllStates(false);
     }
+
+    /**
+     * Returns a list that includes a singular default {@link DeviceState}. To be returned when
+     * {@link DeviceStateManager#getSupportedDeviceStates()} is called.
+     */
+    private List<DeviceState> getDeviceStateList() {
+        return List.of(new DeviceState(
+                new DeviceState.Configuration.Builder(0 /* identifier */, "DEFAULT").build()));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
index 3fa4582..1615538 100644
--- a/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/display/SmartAutoRotatePreferenceFragmentTest.java
@@ -16,6 +16,13 @@
 
 package com.android.settings.display;
 
+import static android.hardware.devicestate.DeviceState.PROPERTY_EMULATED_ONLY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FEATURE_REAR_DISPLAY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN;
+import static android.hardware.devicestate.DeviceState.PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN;
 import static android.provider.Settings.Secure.DEVICE_STATE_ROTATION_LOCK_LOCKED;
 
 import static com.android.settings.display.SmartAutoRotatePreferenceFragment.AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY;
@@ -39,6 +46,8 @@
 import android.content.pm.ResolveInfo;
 import android.content.pm.ServiceInfo;
 import android.content.res.Resources;
+import android.hardware.devicestate.DeviceState;
+import android.hardware.devicestate.DeviceStateManager;
 import android.view.View;
 
 import androidx.preference.Preference;
@@ -61,6 +70,7 @@
 import org.robolectric.annotation.Config;
 
 import java.util.List;
+import java.util.Set;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
@@ -70,10 +80,35 @@
 })
 public class SmartAutoRotatePreferenceFragmentTest {
 
-    private static final int STATE_FOLDED = 0;
-    private static final int STATE_HALF_FOLDED = 1;
-    private static final int STATE_UNFOLDED = 2;
-    private static final int STATE_REAR_DISPLAY = 3;
+    private static final DeviceState DEVICE_STATE_FOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 0, "FOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
+                    .build());
+    private static final DeviceState DEVICE_STATE_HALF_FOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 1, "HALF_FOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_HALF_OPEN))
+                    .build());
+    private static final DeviceState DEVICE_STATE_UNFOLDED = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 2, "UNFOLDED")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_INNER_PRIMARY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_OPEN))
+                    .build());
+    private static final DeviceState DEVICE_STATE_REAR_DISPLAY = new DeviceState(
+            new DeviceState.Configuration.Builder(/* identifier= */ 3, "REAR_DISPLAY")
+                    .setSystemProperties(Set.of(
+                            PROPERTY_FOLDABLE_DISPLAY_CONFIGURATION_OUTER_PRIMARY,
+                            PROPERTY_FEATURE_REAR_DISPLAY, PROPERTY_EMULATED_ONLY))
+                    .setPhysicalProperties(Set.of(
+                            PROPERTY_FOLDABLE_HARDWARE_CONFIGURATION_FOLD_IN_CLOSED))
+                    .build());
 
     private static final String PACKAGE_NAME = "package_name";
 
@@ -96,6 +131,9 @@
     @Mock
     private Preference mRotateMainSwitchPreference;
 
+    @Mock
+    private DeviceStateManager mDeviceStateManager;
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -105,6 +143,7 @@
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getContentResolver()).thenReturn(mContentResolver);
         when(mContext.getApplicationContext()).thenReturn(mContext);
+        doReturn(mDeviceStateManager).when(mContext).getSystemService(DeviceStateManager.class);
         doReturn(PACKAGE_NAME).when(mPackageManager).getRotationResolverPackageName();
         doReturn(PackageManager.PERMISSION_GRANTED).when(mPackageManager).checkPermission(
                 Manifest.permission.CAMERA, PACKAGE_NAME);
@@ -130,14 +169,7 @@
         when(mFragment.findPreference(AUTO_ROTATE_MAIN_SWITCH_PREFERENCE_KEY))
                 .thenReturn(mRotateMainSwitchPreference);
 
-        when(mResources.getIntArray(com.android.internal.R.array.config_foldedDeviceStates))
-                .thenReturn(new int[] {STATE_FOLDED});
-        when(mResources.getIntArray(com.android.internal.R.array.config_halfFoldedDeviceStates))
-                .thenReturn(new int[] {STATE_HALF_FOLDED});
-        when(mResources.getIntArray(com.android.internal.R.array.config_openDeviceStates))
-                .thenReturn(new int[] {STATE_UNFOLDED});
-        when(mResources.getIntArray(com.android.internal.R.array.config_rearDisplayDeviceStates))
-                .thenReturn(new int[] {STATE_REAR_DISPLAY});
+        setUpPostureMappings();
     }
 
     @Test
@@ -195,8 +227,8 @@
     public void createPreferenceControllers_settableDeviceStates_returnsDeviceStateControllers() {
         enableDeviceStateSettableRotationStates(
                 new String[] {
-                    STATE_FOLDED + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
-                    STATE_UNFOLDED + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED
+                    DEVICE_STATE_FOLDED.getIdentifier() + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED,
+                    DEVICE_STATE_UNFOLDED.getIdentifier() + ":" + DEVICE_STATE_ROTATION_LOCK_LOCKED
                 },
                 new String[] {"Folded", "Unfolded"});
 
@@ -236,4 +268,23 @@
         DeviceStateRotationLockSettingsManager.getInstance(mContext)
                 .resetStateForTesting(mResources);
     }
+
+    // Sets up posture mappings for PosturesHelper
+    private void setUpPostureMappings() {
+        when(mResources.getIntArray(
+                com.android.internal.R.array.config_foldedDeviceStates)).thenReturn(
+                    new int[]{DEVICE_STATE_FOLDED.getIdentifier()});
+        when(mResources.getIntArray(
+                com.android.internal.R.array.config_halfFoldedDeviceStates)).thenReturn(
+                    new int[]{DEVICE_STATE_HALF_FOLDED.getIdentifier()});
+        when(mResources.getIntArray(
+                com.android.internal.R.array.config_openDeviceStates)).thenReturn(
+                    new int[]{DEVICE_STATE_UNFOLDED.getIdentifier()});
+        when(mResources.getIntArray(
+                com.android.internal.R.array.config_rearDisplayDeviceStates)).thenReturn(
+                    new int[]{DEVICE_STATE_REAR_DISPLAY.getIdentifier()});
+        when(mDeviceStateManager.getSupportedDeviceStates()).thenReturn(
+                List.of(DEVICE_STATE_FOLDED, DEVICE_STATE_HALF_FOLDED, DEVICE_STATE_UNFOLDED,
+                        DEVICE_STATE_REAR_DISPLAY));
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
index 1bc00a1..f3848b3 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetailTest.java
@@ -17,10 +17,10 @@
 package com.android.settings.fuelgauge;
 
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
-import static com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.nullable;
@@ -49,13 +49,13 @@
 
 import com.android.settings.R;
 import com.android.settings.SettingsActivity;
+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.ConvertUtils;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
 import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.PrimarySwitchPreference;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.applications.instantapps.InstantAppDataProvider;
@@ -87,12 +87,12 @@
         })
 public class AdvancedPowerUsageDetailTest {
 
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static final String APP_LABEL = "app label";
     private static final String SUMMARY = "summary";
-    private static final String[] PACKAGE_NAME = {"com.android.app"};
+    private static final String PACKAGE_NAME = "com.android.app";
+    private static final String INITIATING_PACKAGE_NAME = "com.android.vending";
     private static final String USAGE_PERCENT = "16%";
     private static final int ICON_ID = 123;
     private static final int UID = 1;
@@ -100,39 +100,43 @@
     private static final long FOREGROUND_SERVICE_TIME_MS = 123;
     private static final long BACKGROUND_TIME_MS = 100;
     private static final long SCREEN_ON_TIME_MS = 321;
-    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private FragmentActivity mActivity;
 
     @Mock private EntityHeaderController mEntityHeaderController;
-    @Mock private LayoutPreference mHeaderPreference;
     @Mock private ApplicationsState mState;
     @Mock private ApplicationsState.AppEntry mAppEntry;
     @Mock private BatteryEntry mBatteryEntry;
     @Mock private PackageManager mPackageManager;
     @Mock private InstallSourceInfo mInstallSourceInfo;
+    @Mock private LayoutPreference mLayoutPreference;
     @Mock private AppOpsManager mAppOpsManager;
     @Mock private LoaderManager mLoaderManager;
-    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
+    private int mTestMode;
     private Context mContext;
-    private PrimarySwitchPreference mAllowBackgroundUsagePreference;
     private AdvancedPowerUsageDetail mFragment;
     private SettingsActivity mTestActivity;
     private FakeFeatureFactory mFeatureFactory;
     private MetricsFeatureProvider mMetricsFeatureProvider;
     private BatteryDiffEntry mBatteryDiffEntry;
     private Bundle mBundle;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     @Before
-    public void setUp() {
+    public void setUp() throws Exception {
         mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getPackageName()).thenReturn("foo");
+        when(mContext.getPackageName()).thenReturn(PACKAGE_NAME);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
         mFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = mFeatureFactory.metricsFeatureProvider;
 
+        prepareTestBatteryOptimizationUtils();
         mFragment = spy(new AdvancedPowerUsageDetail());
+        mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
+        doReturn(mLayoutPreference).when(mFragment).findPreference(any());
         mBundle = spy(new Bundle());
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mActivity).when(mFragment).getActivity();
@@ -195,7 +199,6 @@
         when(mBatteryDiffEntry.getAppLabel()).thenReturn(APP_LABEL);
         when(mBatteryDiffEntry.getAppIconId()).thenReturn(ICON_ID);
 
-        mFragment.mHeaderPreference = mHeaderPreference;
         mFragment.mState = mState;
         mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
         mFragment.mLogStringBuilder = new StringBuilder();
@@ -219,10 +222,6 @@
                 .startActivityAsUser(captor.capture(), nullable(UserHandle.class));
         doAnswer(callable).when(mActivity).startActivity(captor.capture());
         doAnswer(callable).when(mContext).startActivity(captor.capture());
-
-        mAllowBackgroundUsagePreference = new PrimarySwitchPreference(mContext);
-        mAllowBackgroundUsagePreference.setKey(KEY_ALLOW_BACKGROUND_USAGE);
-        mFragment.mAllowBackgroundUsagePreference = mAllowBackgroundUsagePreference;
     }
 
     @After
@@ -320,17 +319,15 @@
                 .isEqualTo(SCREEN_ON_TIME_MS);
         assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_POWER_USAGE_PERCENT))
                 .isEqualTo(USAGE_PERCENT);
-        assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME))
-                .isEqualTo(null);
+        assertThat(mBundle.getString(AdvancedPowerUsageDetail.EXTRA_SLOT_TIME)).isNull();
     }
 
-
     @Test
     public void startBatteryDetailPage_noBatteryUsage_hasBasicData() {
         final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
 
         AdvancedPowerUsageDetail.startBatteryDetailPage(
-                mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
+                mActivity, mFragment, PACKAGE_NAME, UserHandle.OWNER);
 
         verify(mActivity).startActivity(captor.capture());
 
@@ -338,7 +335,7 @@
                         captor.getValue()
                                 .getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGUMENTS)
                                 .getString(AdvancedPowerUsageDetail.EXTRA_PACKAGE_NAME))
-                .isEqualTo(PACKAGE_NAME[0]);
+                .isEqualTo(PACKAGE_NAME);
 
         assertThat(
                         captor.getValue()
@@ -351,62 +348,21 @@
     public void startBatteryDetailPage_batteryEntryNotExisted_extractUidFromPackageName()
             throws PackageManager.NameNotFoundException {
         mBundle.clear();
-        doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
+        doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME, 0 /* no flag */);
 
         AdvancedPowerUsageDetail.startBatteryDetailPage(
-                mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
+                mActivity, mFragment, PACKAGE_NAME, UserHandle.OWNER);
 
         assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
     }
 
     @Test
-    public void initFooter_isValidPackageName_hasCorrectString() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
+    public void onPause_optimizationModeIsChanged_logPreference() throws Exception {
+        mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(PACKAGE_NAME);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn(INITIATING_PACKAGE_NAME);
 
-        mFragment.initFooter();
-
-        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
-                .isEqualTo("This app requires optimized battery usage.");
-    }
-
-    @Test
-    public void initFooter_isSystemOrDefaultApp_hasCorrectString() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-
-        mFragment.initFooter();
-
-        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
-                .isEqualTo("This app requires unrestricted battery usage.");
-    }
-
-    @Test
-    public void initFooter_hasCorrectString() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
-        mFragment.initFooter();
-
-        assertThat(mAllowBackgroundUsagePreference.getSummary().toString())
-                .isEqualTo("Enable for real-time updates, disable to save battery");
-    }
-
-    @Test
-    public void onPause_optimizationModeChanged_logPreference()
-            throws PackageManager.NameNotFoundException, InterruptedException {
-        final String packageName = "testPackageName";
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = restrictedMode;
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
-        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
-        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
-
-        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, true);
-        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
+        mBatteryOptimizeUtils.setAppUsageState(BatteryOptimizeUtils.MODE_OPTIMIZED, Action.APPLY);
         mFragment.onPause();
 
         TimeUnit.SECONDS.sleep(1);
@@ -415,27 +371,18 @@
                         SettingsEnums.LEAVE_APP_BATTERY_USAGE,
                         SettingsEnums.ACTION_APP_BATTERY_USAGE_ALLOW_BACKGROUND,
                         SettingsEnums.FUELGAUGE_POWER_USAGE_DETAIL,
-                        packageName,
+                        PACKAGE_NAME,
                         /* consumed battery */ 0);
     }
 
     @Test
-    public void onPause_optimizationModeIsNotChanged_notInvokeLogging()
-            throws PackageManager.NameNotFoundException, InterruptedException {
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = restrictedMode;
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
-        when(mContext.getPackageManager()).thenReturn(mPackageManager);
-        when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
-        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
+    public void onPause_optimizationModeIsNotChanged_notInvokeLogging() throws Exception {
+        mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(PACKAGE_NAME);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn(INITIATING_PACKAGE_NAME);
 
-        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, true);
-        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
-        mFragment.onPreferenceChange(mAllowBackgroundUsagePreference, false);
-        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
+        mBatteryOptimizeUtils.setAppUsageState(BatteryOptimizeUtils.MODE_OPTIMIZED, Action.APPLY);
+        mBatteryOptimizeUtils.setAppUsageState(BatteryOptimizeUtils.MODE_RESTRICTED, Action.APPLY);
         mFragment.onPause();
 
         TimeUnit.SECONDS.sleep(1);
@@ -446,4 +393,16 @@
     public void shouldSkipForInitialSUW_returnTrue() {
         assertThat(mFragment.shouldSkipForInitialSUW()).isTrue();
     }
+
+    private void prepareTestBatteryOptimizationUtils() {
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME));
+        Answer<Void> setTestMode =
+                invocation -> {
+                    mTestMode = invocation.getArgument(0);
+                    return null;
+                };
+        doAnswer(setTestMode).when(mBatteryOptimizeUtils).setAppUsageState(anyInt(), any());
+        Answer<Integer> getTestMode = invocation -> mTestMode;
+        doAnswer(getTestMode).when(mBatteryOptimizeUtils).getAppOptimizationMode();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java
deleted file mode 100644
index 261a315..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/AllowBackgroundPreferenceControllerTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * 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;
-
-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.when;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-
-import com.android.settingslib.widget.MainSwitchPreference;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class AllowBackgroundPreferenceControllerTest {
-    private static final int UID = 12345;
-    private static final String PACKAGE_NAME = "com.android.app";
-
-    private AllowBackgroundPreferenceController mController;
-    private MainSwitchPreference mMainSwitchPreference;
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    @Mock private PackageManager mMockPackageManager;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        Context context = spy(RuntimeEnvironment.application);
-        BatteryUtils.getInstance(context).reset();
-        doReturn(UID)
-                .when(mMockPackageManager)
-                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
-
-        mController = new AllowBackgroundPreferenceController(context, UID, PACKAGE_NAME);
-        mMainSwitchPreference = new MainSwitchPreference(RuntimeEnvironment.application);
-        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
-        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
-    }
-
-    @Test
-    public void testUpdateState_isValidPackage_prefEnabled() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isTrue();
-        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_invalidPackage_prefDisabled() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isFalse();
-        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultAppAndRestrictedStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_RESTRICTED);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
-        assertThat(mMainSwitchPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mMainSwitchPreference.isEnabled()).isFalse();
-        assertThat(mMainSwitchPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_isRestrictedStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_RESTRICTED);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
-        assertThat(mMainSwitchPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mMainSwitchPreference);
-
-        assertThat(mMainSwitchPreference.isEnabled()).isTrue();
-        assertThat(mMainSwitchPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_samePrefKey_verifyAction() {
-        mMainSwitchPreference.setKey(
-                AllowBackgroundPreferenceController.KEY_ALLOW_BACKGROUND_USAGE);
-        mController.handlePreferenceTreeClick(mMainSwitchPreference);
-
-        assertThat(mController.handlePreferenceTreeClick(mMainSwitchPreference)).isTrue();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_incorrectPrefKey_noAction() {
-        assertThat(mController.handlePreferenceTreeClick(mMainSwitchPreference)).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceControllerTest.java
new file mode 100644
index 0000000..190446e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundUsageAllowabilityPreferenceControllerTest.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2024 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;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
+import com.android.settingslib.PrimarySwitchPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class BackgroundUsageAllowabilityPreferenceControllerTest {
+    private static final int UID = 12345;
+    private static final String PACKAGE_NAME = "com.android.app";
+
+    private int mTestMode;
+    private Context mContext;
+    private BackgroundUsageAllowabilityPreferenceController mBackgroundUsageController;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
+
+    @Mock DashboardFragment mDashboardFragment;
+    @Mock PrimarySwitchPreference mBackgroundUsageAllowabilityPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        prepareTestBatteryOptimizationUtils();
+        mBackgroundUsageController =
+                spy(
+                        new BackgroundUsageAllowabilityPreferenceController(
+                                mContext,
+                                mDashboardFragment,
+                                /* preferenceKey= */ "test",
+                                mBatteryOptimizeUtils));
+        mBackgroundUsageController.mBackgroundUsageAllowabilityPreference =
+                mBackgroundUsageAllowabilityPreference;
+    }
+
+    @Test
+    public void initPreferences_immutableOptimized_setExpectedContent() {
+        doReturn(false).when(mBatteryOptimizeUtils).isOptimizeModeMutable();
+        doReturn(true).when(mBatteryOptimizeUtils).isDisabledForOptimizeModeOnly();
+
+        mBackgroundUsageController.initPreferences();
+
+        verify(mBackgroundUsageAllowabilityPreference).setEnabled(false);
+        verify(mBackgroundUsageAllowabilityPreference).setSwitchEnabled(false);
+        verify(mBackgroundUsageAllowabilityPreference)
+                .setSummary(
+                        mContext.getString(
+                                R.string.manager_battery_usage_footer_limited,
+                                mContext.getString(R.string.manager_battery_usage_optimized_only)));
+        verify(mBackgroundUsageAllowabilityPreference, never())
+                .setOnPreferenceChangeListener(any());
+        verify(mBackgroundUsageAllowabilityPreference, never()).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void initPreferences_immutableUnrestricted_setExpectedContent() {
+        doReturn(false).when(mBatteryOptimizeUtils).isOptimizeModeMutable();
+        doReturn(false).when(mBatteryOptimizeUtils).isDisabledForOptimizeModeOnly();
+        doReturn(true).when(mBatteryOptimizeUtils).isSystemOrDefaultApp();
+
+        mBackgroundUsageController.initPreferences();
+
+        verify(mBackgroundUsageAllowabilityPreference).setEnabled(false);
+        verify(mBackgroundUsageAllowabilityPreference).setSwitchEnabled(false);
+        verify(mBackgroundUsageAllowabilityPreference)
+                .setSummary(
+                        mContext.getString(
+                                R.string.manager_battery_usage_footer_limited,
+                                mContext.getString(
+                                        R.string.manager_battery_usage_unrestricted_only)));
+        verify(mBackgroundUsageAllowabilityPreference, never())
+                .setOnPreferenceChangeListener(any());
+        verify(mBackgroundUsageAllowabilityPreference, never()).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void initPreferences_mutableMode_setExpectedContent() {
+        doReturn(true).when(mBatteryOptimizeUtils).isOptimizeModeMutable();
+        doReturn(false).when(mBatteryOptimizeUtils).isDisabledForOptimizeModeOnly();
+        doReturn(false).when(mBatteryOptimizeUtils).isSystemOrDefaultApp();
+
+        mBackgroundUsageController.initPreferences();
+
+        verify(mBackgroundUsageAllowabilityPreference).setEnabled(true);
+        verify(mBackgroundUsageAllowabilityPreference).setSwitchEnabled(true);
+        verify(mBackgroundUsageAllowabilityPreference)
+                .setSummary(
+                        mContext.getString(
+                                R.string.manager_battery_usage_allow_background_usage_summary));
+        verify(mBackgroundUsageAllowabilityPreference).setOnPreferenceChangeListener(any());
+        verify(mBackgroundUsageAllowabilityPreference).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void updatePreferences_setIntoUnrestrictedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_UNRESTRICTED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void updatePreferences_setIntoOptimizedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void updatePreferences_setIntoRestrictedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void handleBatteryOptimizeModeUpdated_modeChange_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.handleBatteryOptimizeModeUpdated(
+                BatteryOptimizeUtils.MODE_OPTIMIZED);
+
+        verify(mBatteryOptimizeUtils)
+                .setAppUsageState(BatteryOptimizeUtils.MODE_OPTIMIZED, Action.APPLY);
+        assertThat(mTestMode).isEqualTo(BatteryOptimizeUtils.MODE_OPTIMIZED);
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void handleBatteryOptimizeModeUpdated_modeNotChange_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.handleBatteryOptimizeModeUpdated(
+                BatteryOptimizeUtils.MODE_RESTRICTED);
+
+        verify(mBatteryOptimizeUtils, never()).setAppUsageState(anyInt(), any());
+        assertThat(mTestMode).isEqualTo(BatteryOptimizeUtils.MODE_RESTRICTED);
+        verify(mBackgroundUsageController, never()).updatePreferences(mTestMode);
+    }
+
+    private void prepareTestBatteryOptimizationUtils() {
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME));
+        Answer<Void> setTestMode =
+                invocation -> {
+                    mTestMode = invocation.getArgument(0);
+                    return null;
+                };
+        doAnswer(setTestMode).when(mBatteryOptimizeUtils).setAppUsageState(anyInt(), any());
+        Answer<Integer> getTestMode = invocation -> mTestMode;
+        doAnswer(getTestMode).when(mBatteryOptimizeUtils).getAppOptimizationMode();
+    }
+
+    private void verifyPreferences(int mode) {
+        boolean isAllowBackground = mode != BatteryOptimizeUtils.MODE_RESTRICTED;
+        verify(mBackgroundUsageAllowabilityPreference).setChecked(isAllowBackground);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceControllerTest.java
new file mode 100644
index 0000000..2ddc7eb
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizationModePreferenceControllerTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2024 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;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
+import android.content.Context;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.SelectorWithWidgetPreference;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.mockito.stubbing.Answer;
+import org.robolectric.RobolectricTestRunner;
+
+@RunWith(RobolectricTestRunner.class)
+public class BatteryOptimizationModePreferenceControllerTest {
+    private static final int UID = 12345;
+    private static final String PACKAGE_NAME = "com.android.app";
+
+    private int mTestMode;
+    private Context mContext;
+    private BatteryOptimizationModePreferenceController mBackgroundUsageController;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
+
+    @Mock MainSwitchPreference mBackgroundUsageAllowabilityPreference;
+    @Mock SelectorWithWidgetPreference mOptimizedPreference;
+    @Mock SelectorWithWidgetPreference mUnrestrictedPreference;
+
+    @Before
+    public void setUp() throws Exception {
+        MockitoAnnotations.initMocks(this);
+
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        prepareTestBatteryOptimizationUtils();
+        mBackgroundUsageController =
+                spy(
+                        new BatteryOptimizationModePreferenceController(
+                                mContext, "test", mBatteryOptimizeUtils));
+        mBackgroundUsageController.mBackgroundUsageAllowabilityPreference =
+                mBackgroundUsageAllowabilityPreference;
+        mBackgroundUsageController.mOptimizedPreference = mOptimizedPreference;
+        mBackgroundUsageController.mUnrestrictedPreference = mUnrestrictedPreference;
+    }
+
+    @Test
+    public void initPreferences_mutableMode_setEnabled() {
+        doReturn(true).when(mBatteryOptimizeUtils).isOptimizeModeMutable();
+
+        mBackgroundUsageController.initPreferences();
+
+        verify(mBackgroundUsageAllowabilityPreference).setEnabled(true);
+        verify(mOptimizedPreference).setEnabled(true);
+        verify(mUnrestrictedPreference).setEnabled(true);
+        verify(mBackgroundUsageAllowabilityPreference, never()).setOnPreferenceClickListener(any());
+        verify(mBackgroundUsageAllowabilityPreference).setOnPreferenceChangeListener(any());
+        verify(mOptimizedPreference).setOnPreferenceClickListener(any());
+        verify(mUnrestrictedPreference).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void initPreferences_immutableMode_setDisabledAndSkipSetListeners() {
+        doReturn(false).when(mBatteryOptimizeUtils).isOptimizeModeMutable();
+
+        mBackgroundUsageController.initPreferences();
+
+        verify(mBackgroundUsageAllowabilityPreference).setEnabled(false);
+        verify(mOptimizedPreference).setEnabled(false);
+        verify(mUnrestrictedPreference).setEnabled(false);
+        verify(mBackgroundUsageAllowabilityPreference, never()).setOnPreferenceClickListener(any());
+        verify(mBackgroundUsageAllowabilityPreference, never())
+                .setOnPreferenceChangeListener(any());
+        verify(mOptimizedPreference, never()).setOnPreferenceClickListener(any());
+        verify(mUnrestrictedPreference, never()).setOnPreferenceClickListener(any());
+    }
+
+    @Test
+    public void updatePreferences_setIntoUnrestrictedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_UNRESTRICTED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void updatePreferences_setIntoOptimizedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void updatePreferences_setIntoRestrictedMode_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.updatePreferences(mTestMode);
+
+        verifyPreferences(mTestMode);
+    }
+
+    @Test
+    public void handleBatteryOptimizeModeUpdated_modeChange_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.handleBatteryOptimizeModeUpdated(
+                BatteryOptimizeUtils.MODE_OPTIMIZED);
+
+        verify(mBatteryOptimizeUtils)
+                .setAppUsageState(
+                        BatteryOptimizeUtils.MODE_OPTIMIZED,
+                        BatteryOptimizeHistoricalLogEntry.Action.APPLY);
+        assertThat(mTestMode).isEqualTo(BatteryOptimizeUtils.MODE_OPTIMIZED);
+        verifyPreferences(mBatteryOptimizeUtils.getAppOptimizationMode());
+    }
+
+    @Test
+    public void handleBatteryOptimizeModeUpdated_modeNotChange_setExpectedPrefStatus() {
+        mTestMode = BatteryOptimizeUtils.MODE_RESTRICTED;
+
+        mBackgroundUsageController.handleBatteryOptimizeModeUpdated(
+                BatteryOptimizeUtils.MODE_RESTRICTED);
+
+        verify(mBatteryOptimizeUtils, never()).setAppUsageState(anyInt(), any());
+        assertThat(mTestMode).isEqualTo(BatteryOptimizeUtils.MODE_RESTRICTED);
+        verify(mBackgroundUsageController, never()).updatePreferences(anyInt());
+    }
+
+    private void prepareTestBatteryOptimizationUtils() {
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME));
+        Answer<Void> setTestMode =
+                invocation -> {
+                    mTestMode = invocation.getArgument(0);
+                    return null;
+                };
+        doAnswer(setTestMode).when(mBatteryOptimizeUtils).setAppUsageState(anyInt(), any());
+        Answer<Integer> getTestMode = invocation -> mTestMode;
+        doAnswer(getTestMode).when(mBatteryOptimizeUtils).getAppOptimizationMode();
+    }
+
+    private void verifyPreferences(int mode) {
+        boolean isAllowBackground = mode != BatteryOptimizeUtils.MODE_RESTRICTED;
+        verify(mBackgroundUsageAllowabilityPreference).setChecked(isAllowBackground);
+        verify(mOptimizedPreference).setEnabled(isAllowBackground);
+        verify(mUnrestrictedPreference).setEnabled(isAllowBackground);
+        verify(mOptimizedPreference).setChecked(mode == BatteryOptimizeUtils.MODE_OPTIMIZED);
+        verify(mUnrestrictedPreference).setChecked(mode == BatteryOptimizeUtils.MODE_UNRESTRICTED);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
index 72b49e2..41e9dca 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryOptimizeUtilsTest.java
@@ -128,6 +128,15 @@
     }
 
     @Test
+    public void testGetAppOptimizationMode_unknownMode_returnOptimized() throws Exception {
+        when(mMockBackend.isAllowlisted(anyString(), anyInt())).thenReturn(true);
+        when(mMockAppOpsManager.checkOpNoThrow(anyInt(), anyInt(), anyString()))
+                .thenReturn(AppOpsManager.MODE_IGNORED);
+
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode()).isEqualTo(MODE_UNRESTRICTED);
+    }
+
+    @Test
     public void testIsSystemOrDefaultApp_isSystemOrDefaultApp_returnTrue() {
         when(mMockBackend.isAllowlisted(anyString(), anyInt())).thenReturn(true);
         when(mMockBackend.isDefaultActiveApp(anyString(), anyInt())).thenReturn(true);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java
deleted file mode 100644
index 6656471..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/OptimizedPreferenceControllerTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-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.when;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class OptimizedPreferenceControllerTest {
-    private static final int UID = 12345;
-    private static final String PACKAGE_NAME = "com.android.app";
-
-    private OptimizedPreferenceController mController;
-    private SelectorWithWidgetPreference mPreference;
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    @Mock PackageManager mMockPackageManager;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        Context context = spy(RuntimeEnvironment.application);
-        BatteryUtils.getInstance(context).reset();
-        doReturn(UID)
-                .when(mMockPackageManager)
-                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
-
-        mController = new OptimizedPreferenceController(context, UID, PACKAGE_NAME);
-        mPreference = new SelectorWithWidgetPreference(RuntimeEnvironment.application);
-        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
-        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
-    }
-
-    @Test
-    public void testUpdateState_invalidPackage_prefEnabled() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultAppAndOptimizeStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isFalse();
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isOptimizedStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_samePrefKey_verifyAction() {
-        mPreference.setKey(mController.KEY_OPTIMIZED_PREF);
-        mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_incorrectPrefKey_noAction() {
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
index 9061117..9f98d78 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerBackgroundUsageDetailTest.java
@@ -17,10 +17,10 @@
 package com.android.settings.fuelgauge;
 
 import static com.android.settings.SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS;
-import static com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.nullable;
@@ -42,16 +42,17 @@
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.UserHandle;
-import android.widget.CompoundButton;
 
 import androidx.fragment.app.FragmentActivity;
 import androidx.loader.app.LoaderManager;
 import androidx.test.core.app.ApplicationProvider;
 
+import com.android.settings.R;
 import com.android.settings.SettingsActivity;
 import com.android.settings.fuelgauge.batteryusage.BatteryEntry;
 import com.android.settings.testutils.FakeFeatureFactory;
 import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
+import com.android.settings.testutils.shadow.ShadowHelpUtils;
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.applications.ApplicationsState;
@@ -59,8 +60,6 @@
 import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
 import com.android.settingslib.widget.FooterPreference;
 import com.android.settingslib.widget.LayoutPreference;
-import com.android.settingslib.widget.MainSwitchPreference;
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
 
 import org.junit.After;
 import org.junit.Before;
@@ -83,36 +82,33 @@
 @Config(
         shadows = {
             ShadowEntityHeaderController.class,
+            ShadowHelpUtils.class,
             com.android.settings.testutils.shadow.ShadowFragment.class,
         })
 public class PowerBackgroundUsageDetailTest {
 
-    @Rule
-    public final MockitoRule mMockitoRule = MockitoJUnit.rule();
+    @Rule public final MockitoRule mMockitoRule = MockitoJUnit.rule();
 
     private static final String APP_LABEL = "app label";
     private static final String SUMMARY = "summary";
     private static final int ICON_ID = 123;
     private static final int UID = 1;
-    private static final String KEY_PREF_UNRESTRICTED = "unrestricted_preference";
-    private static final String KEY_PREF_OPTIMIZED = "optimized_preference";
-    private static final String KEY_ALLOW_BACKGROUND_USAGE = "allow_background_usage";
+    private static final String PACKAGE_NAME = "com.android.app";
+    private static final String KEY_PREF_HEADER = "header_view";
+    private static final String KEY_FOOTER_PREFERENCE = "app_usage_footer_preference";
+    private static final String INITIATING_PACKAGE_NAME = "com.android.vending";
 
+    private int mTestMode;
     private Context mContext;
     private PowerBackgroundUsageDetail mFragment;
-    private FooterPreference mFooterPreference;
-    private MainSwitchPreference mMainSwitchPreference;
     private MetricsFeatureProvider mMetricsFeatureProvider;
-    private SelectorWithWidgetPreference mOptimizePreference;
-    private SelectorWithWidgetPreference mUnrestrictedPreference;
     private SettingsActivity mTestActivity;
+    private BatteryOptimizeUtils mBatteryOptimizeUtils;
 
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private FragmentActivity mActivity;
 
     @Mock private EntityHeaderController mEntityHeaderController;
-    @Mock private BatteryOptimizeUtils mBatteryOptimizeUtils;
-    @Mock private LayoutPreference mHeaderPreference;
     @Mock private ApplicationsState mState;
     @Mock private Bundle mBundle;
     @Mock private LoaderManager mLoaderManager;
@@ -120,21 +116,26 @@
     @Mock private BatteryEntry mBatteryEntry;
     @Mock private PackageManager mPackageManager;
     @Mock private AppOpsManager mAppOpsManager;
-    @Mock private CompoundButton mMockSwitch;
     @Mock private InstallSourceInfo mInstallSourceInfo;
+    @Mock private LayoutPreference mLayoutPreference;
+    @Mock private FooterPreference mFooterPreference;
 
     @Before
     public void setUp() throws Exception {
         mContext = spy(ApplicationProvider.getApplicationContext());
-        when(mContext.getPackageName()).thenReturn("foo");
+        when(mContext.getPackageName()).thenReturn(PACKAGE_NAME);
         when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(mInstallSourceInfo);
 
         final FakeFeatureFactory fakeFeatureFactory = FakeFeatureFactory.setupForTest();
         mMetricsFeatureProvider = fakeFeatureFactory.metricsFeatureProvider;
 
+        prepareTestBatteryOptimizationUtils();
         mFragment = spy(new PowerBackgroundUsageDetail());
+        mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
         mFragment.mLogStringBuilder = new StringBuilder();
+        doReturn(mLayoutPreference).when(mFragment).findPreference(KEY_PREF_HEADER);
+        doReturn(mFooterPreference).when(mFragment).findPreference(KEY_FOOTER_PREFERENCE);
         doReturn(mContext).when(mFragment).getContext();
         doReturn(mActivity).when(mFragment).getActivity();
         doReturn(SUMMARY).when(mFragment).getString(anyInt());
@@ -169,9 +170,7 @@
         when(mBatteryEntry.getLabel()).thenReturn(APP_LABEL);
         mBatteryEntry.mIconId = ICON_ID;
 
-        mFragment.mHeaderPreference = mHeaderPreference;
         mFragment.mState = mState;
-        mFragment.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
         mAppEntry.info = mock(ApplicationInfo.class);
 
         mTestActivity = spy(new SettingsActivity());
@@ -191,23 +190,12 @@
                 .when(mActivity)
                 .startActivityAsUser(captor.capture(), nullable(UserHandle.class));
         doAnswer(callable).when(mActivity).startActivity(captor.capture());
-
-        mFooterPreference = spy(new FooterPreference(mContext));
-        mMainSwitchPreference = spy(new MainSwitchPreference(mContext));
-        mMainSwitchPreference.setKey(KEY_ALLOW_BACKGROUND_USAGE);
-        mOptimizePreference = spy(new SelectorWithWidgetPreference(mContext));
-        mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
-        mUnrestrictedPreference = spy(new SelectorWithWidgetPreference(mContext));
-        mUnrestrictedPreference.setKey(KEY_PREF_UNRESTRICTED);
-        mFragment.mFooterPreference = mFooterPreference;
-        mFragment.mMainSwitchPreference = mMainSwitchPreference;
-        mFragment.mOptimizePreference = mOptimizePreference;
-        mFragment.mUnrestrictedPreference = mUnrestrictedPreference;
     }
 
     @After
     public void reset() {
         ShadowEntityHeaderController.reset();
+        ShadowHelpUtils.reset();
     }
 
     @Test
@@ -258,91 +246,64 @@
     }
 
     @Test
-    public void initFooter_hasCorrectString() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
+    public void initFooter_setExpectedFooterContent() {
         mFragment.initFooter();
 
-        assertThat(mFooterPreference.getTitle().toString())
-                .isEqualTo("Changing how an app uses your battery can affect its performance.");
+        verify(mFooterPreference)
+                .setTitle(mContext.getString(R.string.manager_battery_usage_footer));
+        verify(mFooterPreference).setLearnMoreAction(any());
+        verify(mFooterPreference)
+                .setLearnMoreText(mContext.getString(R.string.manager_battery_usage_link_a11y));
     }
 
     @Test
-    public void onSwitchChanged_fromUnrestrictedModeSetDisabled_becomeRestrictedMode() {
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = optimizedMode;
+    public void onPause_optimizationModeIsChanged_logPreference() throws Exception {
+        mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(PACKAGE_NAME);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn(INITIATING_PACKAGE_NAME);
 
-        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ false);
-
-        verify(mOptimizePreference).setEnabled(false);
-        verify(mUnrestrictedPreference).setEnabled(false);
-        verify(mFragment).onRadioButtonClicked(null);
-        verify(mMainSwitchPreference).setChecked(false);
-        assertThat(mFragment.getSelectedPreference()).isEqualTo(restrictedMode);
-        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
-    }
-
-    @Test
-    public void onSwitchChanged_fromRestrictedModeSetEnabled_becomeOptimizedMode() {
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = restrictedMode;
-
-        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
-
-        verify(mOptimizePreference).setEnabled(true);
-        verify(mUnrestrictedPreference).setEnabled(true);
-        verify(mFragment).onRadioButtonClicked(mOptimizePreference);
-        verify(mMainSwitchPreference).setChecked(true);
-        verify(mOptimizePreference).setChecked(true);
-        assertThat(mFragment.getSelectedPreference()).isEqualTo(optimizedMode);
-        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
-    }
-
-    @Test
-    public void onPause_optimizationModeChanged_logPreference() throws Exception {
-        final String packageName = "testPackageName";
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = restrictedMode;
-        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
-        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
-
-        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
-        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
+        mTestMode = BatteryOptimizeUtils.MODE_UNRESTRICTED;
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .isEqualTo(BatteryOptimizeUtils.MODE_UNRESTRICTED);
         mFragment.onPause();
 
         TimeUnit.SECONDS.sleep(1);
         verify(mMetricsFeatureProvider)
                 .action(
                         SettingsEnums.LEAVE_POWER_USAGE_MANAGE_BACKGROUND,
-                        SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
+                        SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED,
                         SettingsEnums.FUELGAUGE_POWER_USAGE_MANAGE_BACKGROUND,
-                        packageName,
+                        PACKAGE_NAME,
                         /* consumed battery */ 0);
     }
 
     @Test
     public void onPause_optimizationModeIsNotChanged_notInvokeLogging() throws Exception {
-        final String packageName = "testPackageName";
-        final int restrictedMode = BatteryOptimizeUtils.MODE_RESTRICTED;
-        final int optimizedMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
-        mFragment.mOptimizationMode = restrictedMode;
-        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(packageName);
-        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn("com.android.vending");
+        mFragment.mOptimizationMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        when(mBatteryOptimizeUtils.getPackageName()).thenReturn(PACKAGE_NAME);
+        when(mInstallSourceInfo.getInitiatingPackageName()).thenReturn(INITIATING_PACKAGE_NAME);
 
-        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ true);
-        verify(mBatteryOptimizeUtils).setAppUsageState(optimizedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(optimizedMode);
-        mFragment.onCheckedChanged(mMockSwitch, /* isChecked= */ false);
-        verify(mBatteryOptimizeUtils).setAppUsageState(restrictedMode, Action.APPLY);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(restrictedMode);
+        mTestMode = BatteryOptimizeUtils.MODE_UNRESTRICTED;
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .isEqualTo(BatteryOptimizeUtils.MODE_UNRESTRICTED);
+        mTestMode = BatteryOptimizeUtils.MODE_OPTIMIZED;
+        assertThat(mBatteryOptimizeUtils.getAppOptimizationMode())
+                .isEqualTo(BatteryOptimizeUtils.MODE_OPTIMIZED);
         mFragment.onPause();
 
         TimeUnit.SECONDS.sleep(1);
         verifyNoInteractions(mMetricsFeatureProvider);
     }
+
+    private void prepareTestBatteryOptimizationUtils() {
+        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(mContext, UID, PACKAGE_NAME));
+        Answer<Void> setTestMode =
+                invocation -> {
+                    mTestMode = invocation.getArgument(0);
+                    return null;
+                };
+        doAnswer(setTestMode).when(mBatteryOptimizeUtils).setAppUsageState(anyInt(), any());
+        Answer<Integer> getTestMode = invocation -> mTestMode;
+        doAnswer(getTestMode).when(mBatteryOptimizeUtils).getAppOptimizationMode();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java
deleted file mode 100644
index 0c6f7da..0000000
--- a/tests/robotests/src/com/android/settings/fuelgauge/UnrestrictedPreferenceControllerTest.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright (C) 2021 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.fuelgauge;
-
-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.when;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-
-import com.android.settingslib.widget.SelectorWithWidgetPreference;
-
-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;
-
-@RunWith(RobolectricTestRunner.class)
-public class UnrestrictedPreferenceControllerTest {
-    private static final int UID = 12345;
-    private static final String PACKAGE_NAME = "com.android.app";
-
-    private UnrestrictedPreferenceController mController;
-    private SelectorWithWidgetPreference mPreference;
-    private BatteryOptimizeUtils mBatteryOptimizeUtils;
-
-    @Mock PackageManager mMockPackageManager;
-
-    @Before
-    public void setUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
-        Context context = spy(RuntimeEnvironment.application);
-        BatteryUtils.getInstance(context).reset();
-        doReturn(UID)
-                .when(mMockPackageManager)
-                .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
-
-        mController = new UnrestrictedPreferenceController(context, UID, PACKAGE_NAME);
-        mPreference = new SelectorWithWidgetPreference(RuntimeEnvironment.application);
-        mBatteryOptimizeUtils = spy(new BatteryOptimizeUtils(context, UID, PACKAGE_NAME));
-        mController.mBatteryOptimizeUtils = mBatteryOptimizeUtils;
-    }
-
-    @Test
-    public void testUpdateState_isValidPackage_prefEnabled() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isTrue();
-        assertThat(mPreference.isEnabled()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_invalidPackage_prefDisabled() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(true);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(false);
-
-        mController.updateState(mPreference);
-
-        assertThat(mBatteryOptimizeUtils.isOptimizeModeMutable()).isFalse();
-        assertThat(mPreference.isEnabled()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultAppAndUnrestrictedStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_isSystemOrDefaultApp_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isDisabledForOptimizeModeOnly()).thenReturn(false);
-        when(mBatteryOptimizeUtils.isSystemOrDefaultApp()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isFalse();
-        assertThat(mPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testUpdateState_isUnrestrictedStates_prefChecked() {
-        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_UNRESTRICTED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isTrue();
-        assertThat(mPreference.isChecked()).isTrue();
-    }
-
-    @Test
-    public void testUpdateState_prefUnchecked() {
-        when(mBatteryOptimizeUtils.isOptimizeModeMutable()).thenReturn(true);
-        when(mBatteryOptimizeUtils.getAppOptimizationMode())
-                .thenReturn(BatteryOptimizeUtils.MODE_OPTIMIZED);
-
-        mController.updateState(mPreference);
-
-        assertThat(mPreference.isEnabled()).isTrue();
-        assertThat(mPreference.isChecked()).isFalse();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_samePrefKey_verifyAction() {
-        mPreference.setKey(mController.KEY_UNRESTRICTED_PREF);
-        mController.handlePreferenceTreeClick(mPreference);
-
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isTrue();
-    }
-
-    @Test
-    public void testHandlePreferenceTreeClick_incorrectPrefKey_noAction() {
-        assertThat(mController.handlePreferenceTreeClick(mPreference)).isFalse();
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreenTest.kt b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreenTest.kt
new file mode 100644
index 0000000..a034e52
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batterysaver/BatterySaverScreenTest.kt
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2024 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.batterysaver
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class BatterySaverScreenTest : CatalystScreenTestCase() {
+
+    override val preferenceScreenCreator = BatterySaverScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_BATTERY_SAVER_SCREEN
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(BatterySaverScreen.KEY)
+    }
+}
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 2f20b42..1fed13f 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java
@@ -110,7 +110,6 @@
         mDataProcessManager =
                 new DataProcessManager(
                         mContext,
-                        /* handler= */ null,
                         mUserIdsSeries,
                         /* isFromPeriodJob= */ false,
                         /* rawStartTimestamp= */ 0L,
@@ -131,7 +130,6 @@
         final DataProcessManager dataProcessManager =
                 new DataProcessManager(
                         mContext,
-                        /* handler= */ null,
                         mUserIdsSeries,
                         /* callbackFunction= */ null);
         assertThat(dataProcessManager.getShowScreenOnTime()).isFalse();
@@ -257,7 +255,6 @@
         final DataProcessManager dataProcessManager =
                 new DataProcessManager(
                         mContext,
-                        /* handler= */ null,
                         mUserIdsSeries,
                         /* isFromPeriodJob= */ false,
                         /* rawStartTimestamp= */ 2L,
@@ -349,7 +346,6 @@
         assertThat(
                         DataProcessManager.getBatteryLevelData(
                                 mContext,
-                                /* handler= */ null,
                                 mUserIdsSeries,
                                 /* isFromPeriodJob= */ false,
                                 /* asyncResponseDelegate= */ null))
@@ -357,7 +353,6 @@
         assertThat(
                         DataProcessManager.getBatteryLevelData(
                                 mContext,
-                                /* handler= */ null,
                                 mUserIdsSeries,
                                 /* isFromPeriodJob= */ true,
                                 /* asyncResponseDelegate= */ null))
@@ -379,7 +374,6 @@
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
-                        /* handler= */ null,
                         mUserIdsSeries,
                         /* isFromPeriodJob= */ false,
                         /* asyncResponseDelegate= */ null);
@@ -408,7 +402,6 @@
         final BatteryLevelData resultData =
                 DataProcessManager.getBatteryLevelData(
                         mContext,
-                        /* handler= */ null,
                         mUserIdsSeries,
                         /* isFromPeriodJob= */ false,
                         /* asyncResponseDelegate= */ null);
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt
new file mode 100644
index 0000000..80a6b2e
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryScreenTest.kt
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2024 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.ContextWrapper
+import android.content.res.Resources
+import android.platform.test.annotations.DisableFlags
+import android.platform.test.annotations.EnableFlags
+import androidx.fragment.app.testing.FragmentScenario
+import androidx.preference.PreferenceFragmentCompat
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settings.testutils.shadow.ShadowUtils
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.After
+import org.junit.Test
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+import org.robolectric.annotation.Config
+
+@Config(shadows = [ShadowUtils::class])
+class PowerUsageSummaryScreenTest : CatalystScreenTestCase() {
+
+    override val preferenceScreenCreator = PowerUsageSummaryScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_POWER_USAGE_SUMMARY_SCREEN
+
+    private val mockResources = mock<Resources>()
+
+    private val context =
+        object : ContextWrapper(appContext) {
+            override fun getResources(): Resources = mockResources
+        }
+
+    @After
+    fun tearDown() {
+        ShadowUtils.reset()
+    }
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(PowerUsageSummaryScreen.KEY)
+    }
+
+    @Test
+    fun isAvailable_configTrue_shouldReturnTrue() {
+        mockResources.stub { on { getBoolean(anyInt()) } doReturn true }
+
+        assertThat(preferenceScreenCreator.isAvailable(context)).isTrue()
+    }
+
+    @Test
+    fun isAvailable_configFalse_shouldReturnFalse() {
+        mockResources.stub { on { getBoolean(anyInt()) } doReturn false }
+
+        assertThat(preferenceScreenCreator.isAvailable(context)).isFalse()
+    }
+
+    @Test
+    @EnableFlags(Flags.FLAG_HOMEPAGE_REVAMP)
+    fun getIcon_whenHomePageRevampFlagOn() {
+        assertThat(preferenceScreenCreator.getIcon(context))
+            .isEqualTo(R.drawable.ic_settings_battery_filled)
+    }
+
+    @Test
+    @DisableFlags(Flags.FLAG_HOMEPAGE_REVAMP)
+    fun getIcon_whenHomePageRevampFlagOff() {
+        assertThat(preferenceScreenCreator.getIcon(context))
+            .isEqualTo(R.drawable.ic_settings_battery_white)
+    }
+
+    override fun migration() {
+        ShadowUtils.setIsBatteryPresent(false)
+
+        super.migration()
+    }
+
+    override fun launchFragmentScenario(fragmentClass: Class<PreferenceFragmentCompat>) =
+        FragmentScenario.launch(
+            fragmentClass,
+            themeResId = R.style.Theme_CollapsingToolbar_Settings,
+        )
+}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
index 19d5e59..0473228 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/PowerUsageSummaryTest.java
@@ -37,13 +37,13 @@
 import android.os.Bundle;
 import android.provider.Settings;
 
+import androidx.fragment.app.FragmentActivity;
 import androidx.loader.app.LoaderManager;
 import androidx.loader.content.Loader;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
-import com.android.settings.SettingsActivity;
 import com.android.settings.fuelgauge.BatteryBroadcastReceiver;
 import com.android.settings.fuelgauge.BatteryInfo;
 import com.android.settings.fuelgauge.BatteryUtils;
@@ -82,7 +82,7 @@
         sAdditionalBatteryInfoIntent = new Intent("com.example.app.ADDITIONAL_BATTERY_INFO");
     }
 
-    @Mock private SettingsActivity mSettingsActivity;
+    @Mock private FragmentActivity mActivity;
     @Mock private LoaderManager mLoaderManager;
     @Mock private Loader<BatteryTip> mBatteryTipLoader;
     @Mock private Loader<BatteryInfo> mBatteryInfoLoader;
@@ -106,7 +106,7 @@
         mFragment = spy(new TestFragment(mRealContext, mLoaderManager));
         mFragment.initFeatureProvider();
         doNothing().when(mFragment).restartBatteryStatsLoader(anyInt());
-        when(mFragment.getActivity()).thenReturn(mSettingsActivity);
+        when(mFragment.getActivity()).thenReturn(mActivity);
         when(mFeatureFactory.powerUsageFeatureProvider.getAdditionalBatteryInfoIntent())
                 .thenReturn(sAdditionalBatteryInfoIntent);
         mFragment.mBatteryUtils = Mockito.spy(new BatteryUtils(mRealContext));
diff --git a/tests/robotests/src/com/android/settings/gestures/ButtonNavigationSettingsAssistControllerTest.java b/tests/robotests/src/com/android/settings/gestures/ButtonNavigationSettingsAssistControllerTest.java
index d961cdf..493fb01 100644
--- a/tests/robotests/src/com/android/settings/gestures/ButtonNavigationSettingsAssistControllerTest.java
+++ b/tests/robotests/src/com/android/settings/gestures/ButtonNavigationSettingsAssistControllerTest.java
@@ -16,6 +16,8 @@
 
 package com.android.settings.gestures;
 
+import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;
+
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.Mockito.mock;
@@ -23,6 +25,7 @@
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
+import android.content.pm.PackageManager;
 import android.content.res.Resources;
 import android.provider.Settings;
 
@@ -40,13 +43,16 @@
             "assistant_long_press_home_gesture";
 
     private Context mContext;
+    private PackageManager mPackageManager;
     private Resources mResources;
     private ButtonNavigationSettingsAssistController mController;
 
     @Before
     public void setUp() {
         mContext = spy(ApplicationProvider.getApplicationContext());
+        mPackageManager = mock(PackageManager.class);
         mResources = mock(Resources.class);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
         when(mContext.getResources()).thenReturn(mResources);
 
         mController = new ButtonNavigationSettingsAssistController(
@@ -97,4 +103,23 @@
                 Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED, -1)).isEqualTo(1);
     }
 
+    @Test
+    public void onPreferenceChange_preferenceChecked_valueTrue() {
+        mController.onPreferenceChange(null, true);
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED, -1)).isEqualTo(1);
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceUnchecked_valueFalse() {
+        mController.onPreferenceChange(null, false);
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.ASSIST_LONG_PRESS_HOME_ENABLED, -1)).isEqualTo(0);
+    }
+
+    @Test
+    public void isAvailable_hasContextualSearchSystemFeature_shouldReturnFalse() {
+        when(mPackageManager.hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)).thenReturn(true);
+        assertThat(mController.isAvailable()).isFalse();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/gestures/NavigationSettingsContextualSearchControllerTest.java b/tests/robotests/src/com/android/settings/gestures/NavigationSettingsContextualSearchControllerTest.java
new file mode 100644
index 0000000..a4744db
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/gestures/NavigationSettingsContextualSearchControllerTest.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import static android.app.contextualsearch.ContextualSearchManager.FEATURE_CONTEXTUAL_SEARCH;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.provider.Settings;
+
+import androidx.test.core.app.ApplicationProvider;
+
+import com.android.settings.testutils.shadow.ShadowDeviceConfig;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = ShadowDeviceConfig.class)
+public class NavigationSettingsContextualSearchControllerTest {
+
+    private static final String KEY_PRESS_HOLD_FOR_SEARCH = "search_gesture_press_hold";
+
+    private NavigationSettingsContextualSearchController mController;
+    private Context mContext;
+    private PackageManager mPackageManager;
+
+    @Before
+    public void setUp() {
+        mContext = spy(ApplicationProvider.getApplicationContext());
+        mPackageManager = mock(PackageManager.class);
+        when(mContext.getPackageManager()).thenReturn(mPackageManager);
+        mController = new NavigationSettingsContextualSearchController(
+                mContext, KEY_PRESS_HOLD_FOR_SEARCH);
+    }
+
+    @Test
+    public void isAvailable_hasContextualSearchSystemFeature_shouldReturnTrue() {
+        when(mPackageManager.hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)).thenReturn(true);
+        assertThat(mController.isAvailable()).isTrue();
+    }
+
+    @Test
+    public void isAvailable_doesNotHaveContextualSearchSystemFeature_shouldReturnFalse() {
+        when(mPackageManager.hasSystemFeature(FEATURE_CONTEXTUAL_SEARCH)).thenReturn(false);
+        assertThat(mController.isAvailable()).isFalse();
+    }
+
+    @Test
+    public void isChecked_noDefault_true() {
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void isChecked_valueFalse_shouldReturnFalse() {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, 0);
+        assertThat(mController.isChecked()).isFalse();
+    }
+
+    @Test
+    public void isChecked_valueTrue_shouldReturnTrue() {
+        Settings.Secure.putInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, 1);
+        assertThat(mController.isChecked()).isTrue();
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceChecked_valueTrue() {
+        mController.onPreferenceChange(null, true);
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, -1)).isEqualTo(1);
+    }
+
+    @Test
+    public void onPreferenceChange_preferenceUnchecked_valueFalse() {
+        mController.onPreferenceChange(null, false);
+        assertThat(Settings.Secure.getInt(mContext.getContentResolver(),
+                Settings.Secure.SEARCH_ALL_ENTRYPOINTS_ENABLED, -1)).isEqualTo(0);
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysControllerTest.java
index d16f697..b385b2f 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityBounceKeysControllerTest.java
@@ -57,7 +57,7 @@
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     @Rule
     public MockitoRule mMockitoRule = MockitoJUnit.rule();
-    private static final String PREFERENCE_KEY = "accessibility_bounce_keys";
+    private static final String PREFERENCE_KEY = "keyboard_a11y_page_bounce_keys";
     @Mock
     private Preference mPreference;
     private Context mContext;
@@ -116,8 +116,8 @@
     public void handlePreferenceTreeClick_performClickOn200_updatesBounceKeysThreshold() {
         mKeyboardAccessibilityBounceKeysController.handlePreferenceTreeClick(mPreference);
         AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
-        RadioGroup radioGroup = alertDialog.findViewById(R.id.bounce_key_value_group);
-        radioGroup.check(R.id.bounce_key_value_200);
+        RadioGroup radioGroup = alertDialog.findViewById(R.id.input_setting_keys_value_group);
+        radioGroup.check(R.id.input_setting_keys_value_200);
 
         alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
         ShadowLooper.idleMainLooper();
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysControllerTest.java
index 5922497..fdb4ab9 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityMouseKeysControllerTest.java
@@ -50,7 +50,7 @@
         mContext = RuntimeEnvironment.application;
         mKeyboardAccessibilityMouseKeysController = new KeyboardAccessibilityMouseKeysController(
                 mContext,
-                "accessibility_mouse_keys");
+                "keyboard_a11y_page_mouse_keys");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysControllerTest.java
index 5f6908a..9f82b75 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilitySlowKeysControllerTest.java
@@ -18,39 +18,59 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.Mockito.when;
+
 import android.content.Context;
 import android.hardware.input.InputSettings;
 import android.platform.test.annotations.DisableFlags;
 import android.platform.test.annotations.EnableFlags;
 import android.platform.test.flag.junit.SetFlagsRule;
+import android.widget.RadioGroup;
 
+import androidx.appcompat.app.AlertDialog;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.keyboard.Flags;
+import com.android.settings.testutils.shadow.ShadowAlertDialogCompat;
 
 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.RobolectricTestRunner;
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowLooper;
 
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowFragment.class,
+        ShadowAlertDialogCompat.class,
 })
 public class KeyboardAccessibilitySlowKeysControllerTest {
     @Rule
     public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+    private static final String PREFERENCE_KEY = "keyboard_a11y_page_slow_keys";
+    @Mock
+    private Preference mPreference;
     private Context mContext;
     private KeyboardAccessibilitySlowKeysController mKeyboardAccessibilitySlowKeysController;
 
     @Before
     public void setUp() {
         mContext = RuntimeEnvironment.application;
+        mContext.setTheme(androidx.appcompat.R.style.Theme_AppCompat);
         mKeyboardAccessibilitySlowKeysController = new KeyboardAccessibilitySlowKeysController(
                 mContext,
-                "accessibility_slow_keys");
+                PREFERENCE_KEY);
+        when(mPreference.getKey()).thenReturn(PREFERENCE_KEY);
     }
 
     @Test
@@ -82,4 +102,28 @@
 
         assertThat(isEnabled).isFalse();
     }
+
+    @Test
+    public void handlePreferenceTreeClick_dialogShows() {
+        mKeyboardAccessibilitySlowKeysController.handlePreferenceTreeClick(mPreference);
+
+        AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+
+        assertThat(alertDialog.isShowing()).isTrue();
+    }
+
+    @Test
+    public void handlePreferenceTreeClick_performClickOn200_updatesSlowKeysThreshold() {
+        mKeyboardAccessibilitySlowKeysController.handlePreferenceTreeClick(mPreference);
+        AlertDialog alertDialog = ShadowAlertDialogCompat.getLatestAlertDialog();
+        RadioGroup radioGroup = alertDialog.findViewById(R.id.input_setting_keys_value_group);
+        radioGroup.check(R.id.input_setting_keys_value_200);
+
+        alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).performClick();
+        ShadowLooper.idleMainLooper();
+
+        assertThat(alertDialog.isShowing()).isFalse();
+        int threshold = InputSettings.getAccessibilitySlowKeysThreshold(mContext);
+        assertThat(threshold).isEqualTo(200);
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysControllerTest.java
index 06cb558..4631f57 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardAccessibilityStickyKeysControllerTest.java
@@ -50,7 +50,7 @@
         mContext = RuntimeEnvironment.application;
         mKeyboardAccessibilityStickyKeysController = new KeyboardAccessibilityStickyKeysController(
                 mContext,
-                "accessibility_sticky_keys");
+                "keyboard_a11y_page_sticky_keys");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysControllerTest.java
index e1b4ffd..d511edc 100644
--- a/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysControllerTest.java
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysControllerTest.java
@@ -51,7 +51,7 @@
     public void setUp() {
         mContext = RuntimeEnvironment.application;
         mKeyboardRepeatKeysController = new KeyboardRepeatKeysController(mContext,
-                "physical_keyboard_repeat_key");
+                "physical_keyboard_repeat_keys");
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceControllerTest.java
new file mode 100644
index 0000000..0f2deac
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysDelayPreferenceControllerTest.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import static com.android.input.flags.Flags.FLAG_KEYBOARD_REPEAT_KEYS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.hardware.input.InputSettings;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+public class KeyboardRepeatKeysDelayPreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private Context mContext;
+    private KeyboardRepeatKeysDelayPreferenceController mRepeatKeysDelayPreferenceController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mRepeatKeysDelayPreferenceController = new KeyboardRepeatKeysDelayPreferenceController(
+                mContext, "repeat_keys_delay_preference");
+    }
+
+    @Test
+    @EnableFlags(FLAG_KEYBOARD_REPEAT_KEYS)
+    public void getAvailabilityStatus_flagIsEnabled_isAvailable() {
+        assertThat(mRepeatKeysDelayPreferenceController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    @DisableFlags(FLAG_KEYBOARD_REPEAT_KEYS)
+    public void getAvailabilityStatus_flagIsDisabled_notSupport() {
+        assertThat(mRepeatKeysDelayPreferenceController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void setSliderPosition_updatesInputSettingValue() {
+        int sliderPosition = 1;
+        mRepeatKeysDelayPreferenceController.setSliderPosition(sliderPosition);
+        assertThat(InputSettings.getRepeatKeysDelay(mContext)).isEqualTo(
+                KeyboardRepeatKeysDelayPreferenceController.REPEAT_KEY_DELAY_VALUE_LIST.get(
+                        sliderPosition));
+    }
+
+    @Test
+    public void getSliderPosition_matchesWithDelayValue() {
+        int timeout = InputSettings.getRepeatKeysDelay(mContext);
+        assertThat(mRepeatKeysDelayPreferenceController.getSliderPosition()).isEqualTo(
+                KeyboardRepeatKeysDelayPreferenceController.REPEAT_KEY_DELAY_VALUE_LIST.indexOf(
+                        timeout));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceControllerTest.java
new file mode 100644
index 0000000..f192c0c
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/inputmethod/KeyboardRepeatKeysTimeOutPreferenceControllerTest.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2024 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.inputmethod;
+
+import static com.android.input.flags.Flags.FLAG_KEYBOARD_REPEAT_KEYS;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.content.Context;
+import android.hardware.input.InputSettings;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
+
+import com.android.settings.core.BasePreferenceController;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+import org.robolectric.annotation.Config;
+
+@RunWith(RobolectricTestRunner.class)
+@Config(shadows = {
+        com.android.settings.testutils.shadow.ShadowFragment.class,
+})
+public class KeyboardRepeatKeysTimeOutPreferenceControllerTest {
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    private Context mContext;
+    private KeyboardRepeatKeysTimeOutPreferenceController
+            mKeyboardRepeatKeysTimeOutPreferenceController;
+
+    @Before
+    public void setUp() {
+        mContext = RuntimeEnvironment.application;
+        mKeyboardRepeatKeysTimeOutPreferenceController =
+                new KeyboardRepeatKeysTimeOutPreferenceController(mContext,
+                        "repeat_keys_timeout_preference");
+    }
+
+    @Test
+    @EnableFlags(FLAG_KEYBOARD_REPEAT_KEYS)
+    public void getAvailabilityStatus_flagIsEnabled_isAvailable() {
+        assertThat(mKeyboardRepeatKeysTimeOutPreferenceController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.AVAILABLE);
+    }
+
+    @Test
+    @DisableFlags(FLAG_KEYBOARD_REPEAT_KEYS)
+    public void getAvailabilityStatus_flagIsDisabled_notSupport() {
+        assertThat(mKeyboardRepeatKeysTimeOutPreferenceController.getAvailabilityStatus())
+                .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);
+    }
+
+    @Test
+    public void setSliderPosition_updatesInputSettingValue() {
+        int sliderPosition = 1;
+        mKeyboardRepeatKeysTimeOutPreferenceController.setSliderPosition(sliderPosition);
+        assertThat(InputSettings.getRepeatKeysTimeout(mContext)).isEqualTo(
+                KeyboardRepeatKeysTimeOutPreferenceController.REPEAT_KEY_TIMEOUT_VALUE_LIST.get(
+                        sliderPosition));
+    }
+
+    @Test
+    public void getSliderPosition_matchesWithTimeoutValue() {
+        int timeout = InputSettings.getRepeatKeysTimeout(mContext);
+        assertThat(mKeyboardRepeatKeysTimeOutPreferenceController.getSliderPosition()).isEqualTo(
+                KeyboardRepeatKeysTimeOutPreferenceController.REPEAT_KEY_TIMEOUT_VALUE_LIST.indexOf(
+                        timeout));
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/location/LocationScreenTest.kt b/tests/robotests/src/com/android/settings/location/LocationScreenTest.kt
new file mode 100644
index 0000000..1d1696d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/location/LocationScreenTest.kt
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2024 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.location
+
+import android.content.Context
+import android.content.ContextWrapper
+import android.location.LocationManager
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.R
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class LocationScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = LocationScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_LOCATION_SETTINGS
+
+    private val mockLocationManager = mock<LocationManager>()
+
+    private val context =
+            object : ContextWrapper(appContext) {
+                override fun getSystemService(name: String): Any =
+                    when (name) {
+                        Context.LOCATION_SERVICE -> mockLocationManager
+                        else -> super.getSystemService(name)
+                    }
+            }
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(LocationScreen.KEY)
+    }
+
+    @Test
+    fun getSummary_enableLocation_shouldReturnLoading() {
+        mockLocationManager.stub { on { isLocationEnabled } doReturn true }
+
+        assertThat(preferenceScreenCreator.getSummary(context)).isEqualTo(
+                context.getString(R.string.location_settings_loading_app_permission_stats))
+    }
+
+    @Test
+    fun getSummary_disableLocation_shouldReturnLocationOff() {
+        mockLocationManager.stub { on { isLocationEnabled } doReturn false }
+
+        assertThat(preferenceScreenCreator.getSummary(context)).isEqualTo(
+                context.getString(R.string.location_settings_summary_location_off))
+    }
+
+    override fun migration() {
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/network/AdaptiveConnectivityScreenTest.kt b/tests/robotests/src/com/android/settings/network/AdaptiveConnectivityScreenTest.kt
new file mode 100644
index 0000000..f575fe7
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/AdaptiveConnectivityScreenTest.kt
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.network
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class AdaptiveConnectivityScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = AdaptiveConnectivityScreen()
+    override val flagName
+        get() = Flags.FLAG_CATALYST_ADAPTIVE_CONNECTIVITY
+
+    override fun migration() {}
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(AdaptiveConnectivityScreen.KEY)
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/network/MobileNetworkListScreenTest.kt b/tests/robotests/src/com/android/settings/network/MobileNetworkListScreenTest.kt
new file mode 100644
index 0000000..1d7a1d9
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/MobileNetworkListScreenTest.kt
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+
+@RunWith(AndroidJUnit4::class)
+class MobileNetworkListScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = MobileNetworkListScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_MOBILE_NETWORK_LIST
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(MobileNetworkListScreen.KEY)
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkDashboardScreenTest.kt b/tests/robotests/src/com/android/settings/network/NetworkDashboardScreenTest.kt
new file mode 100644
index 0000000..8318e09
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/NetworkDashboardScreenTest.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settings.testutils.shadow.ShadowConnectivityManager
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.annotation.Config
+
+@RunWith(AndroidJUnit4::class)
+@Config(shadows = [ShadowConnectivityManager::class])
+class NetworkDashboardScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = NetworkDashboardScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_NETWORK_PROVIDER_AND_INTERNET_SCREEN
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(NetworkDashboardScreen.KEY)
+    }
+
+    override fun migration() {
+        // Avoid thread hanging when TetheringManager.isTetheringSupported
+        ShadowConnectivityManager.getShadow().setTetheringSupported(true)
+
+        super.migration()
+    }
+}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderScreenTest.kt b/tests/robotests/src/com/android/settings/network/NetworkProviderScreenTest.kt
new file mode 100644
index 0000000..d8888c5
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderScreenTest.kt
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network
+
+import android.content.ContextWrapper
+import android.content.res.Resources
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settings.flags.Flags
+import com.android.settingslib.preference.CatalystScreenTestCase
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentMatchers.anyInt
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+import org.mockito.kotlin.stub
+
+@RunWith(AndroidJUnit4::class)
+class NetworkProviderScreenTest : CatalystScreenTestCase() {
+    override val preferenceScreenCreator = NetworkProviderScreen()
+
+    override val flagName: String
+        get() = Flags.FLAG_CATALYST_INTERNET_SETTINGS
+
+    private val mockResources = mock<Resources>()
+
+    private val context =
+        object : ContextWrapper(appContext) {
+            override fun getResources(): Resources = mockResources
+        }
+
+    @Test
+    fun key() {
+        assertThat(preferenceScreenCreator.key).isEqualTo(NetworkProviderScreen.KEY)
+    }
+
+    @Test
+    fun isAvailable_showInternetSettings_shouldReturnTrue() {
+        mockResources.stub { on { getBoolean(anyInt()) } doReturn true }
+
+        assertThat(preferenceScreenCreator.isAvailable(context)).isTrue()
+    }
+
+    @Test
+    fun isAvailable_notShowInternetSettings_shouldReturnFalse() {
+        mockResources.stub { on { getBoolean(anyInt()) } doReturn false }
+
+        assertThat(preferenceScreenCreator.isAvailable(context)).isFalse()
+    }
+
+    override fun migration() {}
+}
diff --git a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
index 400f73f..df399d7 100644
--- a/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/network/NetworkProviderSettingsTest.java
@@ -70,6 +70,7 @@
 
 import com.android.settings.AirplaneModeEnabler;
 import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFeatureProvider;
 import com.android.settings.datausage.DataUsagePreference;
 import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
 import com.android.settings.testutils.shadow.ShadowFragment;
@@ -98,6 +99,7 @@
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 import org.robolectric.shadows.ShadowToast;
+import org.robolectric.util.ReflectionHelpers;
 
 import java.util.List;
 
@@ -190,6 +192,9 @@
                 .when(mFirstWifiEntryPreferenceCategory).getKey();
         mNetworkProviderSettings.mFirstWifiEntryPreferenceCategory =
                 mFirstWifiEntryPreferenceCategory;
+
+        ReflectionHelpers.setField(mNetworkProviderSettings, "mDashboardFeatureProvider",
+                mock(DashboardFeatureProvider.class));
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java b/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
deleted file mode 100644
index d8895d5..0000000
--- a/tests/robotests/src/com/android/settings/network/apn/ApnEditorTest.java
+++ /dev/null
@@ -1,625 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.network.apn;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.content.res.Resources;
-import android.database.Cursor;
-import android.net.Uri;
-import android.os.PersistableBundle;
-import android.os.UserManager;
-import android.telephony.CarrierConfigManager;
-import android.view.KeyEvent;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.preference.EditTextPreference;
-import androidx.preference.ListPreference;
-import androidx.preference.MultiSelectListPreference;
-import androidx.preference.SwitchPreference;
-
-import com.android.settings.R;
-import com.android.settings.network.ProxySubscriptionManager;
-import com.android.settings.network.apn.ApnEditor.ApnData;
-
-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.Mockito;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = {
-        com.android.settings.testutils.shadow.ShadowFragment.class,
-})
-public class ApnEditorTest {
-
-    private static final Object[] APN_DATA = {
-            0, /* ID */
-            "apn_name" /* apn name */,
-            "apn.com" /* apn */,
-            "" /* proxy */,
-            "" /* port */,
-            "" /* username */,
-            "" /* server */,
-            "" /* password */,
-            "" /* MMSC */,
-            "123" /* MCC */,
-            "456" /* MNC */,
-            "123456" /* operator numeric */,
-            "" /* MMS proxy */,
-            "" /* MMS port */,
-            0 /* Authentication type */,
-            "default,supl,ia" /* APN type */,
-            "IP" /* APN protocol */,
-            1 /* APN enable/disable */,
-            0 /* Bearer */,
-            0 /* Bearer BITMASK*/,
-            "IPV6" /* APN roaming protocol */,
-            "None" /* MVNO type */,
-            "", /* MVNO value */
-    };
-
-    private static final int CURSOR_INTEGER_INDEX = 0;
-    private static final int CURSOR_STRING_INDEX = 1;
-
-    private static final Uri APN_URI = Uri.parse("Apn://row/1");
-
-    @Mock
-    private Cursor mCursor;
-
-    @Mock
-    private FragmentActivity mActivity;
-    @Mock
-    private UserManager mUserManager;
-    @Mock
-    private ProxySubscriptionManager mProxySubscriptionMgr;
-    @Mock
-    private CarrierConfigManager mCarrierConfigManager;
-    @Captor
-    private ArgumentCaptor<Uri> mUriCaptor;
-
-    private ApnEditor mApnEditorUT;
-    private Context mContext;
-    private Resources mResources;
-    private PersistableBundle mBundle = new PersistableBundle();
-
-    @Before
-    public void setUp() {
-        MockitoAnnotations.initMocks(this);
-        mContext = spy(RuntimeEnvironment.application);
-
-        mResources = mContext.getResources();
-        mApnEditorUT = spy(new ApnEditor());
-
-        doReturn(mActivity).when(mApnEditorUT).getActivity();
-        doReturn(mResources).when(mApnEditorUT).getResources();
-        doNothing().when(mApnEditorUT).finish();
-        doNothing().when(mApnEditorUT).showError();
-        doReturn(mContext).when(mApnEditorUT).getContext();
-        doReturn(mContext.getTheme()).when(mActivity).getTheme();
-        doReturn(mContext.getContentResolver()).when(mActivity).getContentResolver();
-
-        doReturn(mUserManager).when(mContext).getSystemService(UserManager.class);
-        doReturn(true).when(mUserManager).isAdminUser();
-        doReturn(false).when(mUserManager)
-                .hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
-        doReturn(mCarrierConfigManager).when(mContext)
-                .getSystemService(Context.CARRIER_CONFIG_SERVICE);
-        doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
-
-        setMockPreference(mContext);
-        mApnEditorUT.mApnData = new FakeApnData(APN_DATA);
-        mApnEditorUT.sNotSet = "Not Set";
-    }
-
-    @Test
-    public void testApnEditor_doesNotUseManagedQuery() {
-        mApnEditorUT.getApnDataFromUri(Mockito.mock(Uri.class));
-
-        verify(mActivity, never()).managedQuery(
-                any(Uri.class),
-                any(String[].class),
-                any(String.class),
-                any(String.class));
-
-        verify(mActivity, never()).managedQuery(
-                any(Uri.class),
-                any(String[].class),
-                any(String.class),
-                any(String[].class),
-                any(String.class));
-    }
-
-    @Test
-    public void getApnDataFromUri_emptyCursor_returnsNull() {
-        var mockContentResolver = mock(ContentResolver.class);
-        var mockCursor = mock(Cursor.class);
-        doReturn(mockContentResolver).when(mActivity).getContentResolver();
-        when(mockContentResolver.query(any(), any(), any(), any(), any())).thenReturn(mockCursor);
-        when(mockCursor.moveToFirst()).thenReturn(false);
-
-        var apnData = mApnEditorUT.getApnDataFromUri(mock(Uri.class));
-
-        assertThat(apnData).isNull();
-    }
-
-    @Test
-    public void testSetStringValue_valueChanged_shouldSetValue() {
-        // GIVEN an APN value which is different than the APN value in database
-        final String apnKey = "apn";
-        final String apnValue = "testing.com";
-        final ContentValues cv = new ContentValues();
-
-        // WHEN try to check and set the apn value
-        final boolean isDiff = mApnEditorUT.setStringValueAndCheckIfDiff(
-                cv, apnKey, apnValue, false /* assumeDiff */, ApnEditor.APN_INDEX);
-
-        // THEN the APN value is different than the one in database, and it has been stored in the
-        // given ContentValues
-        assertThat(isDiff).isTrue();
-        assertThat(apnValue).isEqualTo(cv.getAsString(apnKey));
-    }
-
-    @Test
-    public void testSetStringValue_valueNotChanged_shouldNotSetValue() {
-        // GIVEN an APN value which is same as the APN value in database
-        final String apnKey = "apn";
-        final String apnValue = (String) APN_DATA[ApnEditor.APN_INDEX];
-        final ContentValues cv = new ContentValues();
-
-        // WHEN try to check and set the apn value
-        final boolean isDiff = mApnEditorUT.setStringValueAndCheckIfDiff(
-                cv, apnKey, apnValue, false /* assumeDiff */, ApnEditor.APN_INDEX);
-
-        // THEN the APN value is same as the one in database, and the new APN value is not stored
-        // in the given ContentValues
-        assertThat(isDiff).isFalse();
-        assertThat(cv.get(apnKey)).isNull();
-    }
-
-    @Test
-    public void testSetStringValue_nullValue_shouldNotSetValue_shouldNotSetValue() {
-        // GIVEN a null APN value
-        final String apnKey = "apn";
-        final String apnValue = null;
-        final ContentValues cv = new ContentValues();
-
-        // WHEN try to check and set the apn value
-        final boolean isDiff = mApnEditorUT.setStringValueAndCheckIfDiff(
-                cv, apnKey, apnValue, false /* assumeDiff */, ApnEditor.APN_INDEX);
-
-        // THEN the APN value is different than the one in database, but the null value is not
-        // stored in the given ContentValues
-        assertThat(isDiff).isTrue();
-        assertThat(cv.get(apnKey)).isNull();
-    }
-
-    @Test
-    public void testSetIntValue_valueChanged_shouldSetValue() {
-        // GIVEN a value indicated whether the apn is enabled, and it's different than the value in
-        // the database
-        final String apnEnabledKey = "apn_enabled";
-        final int apnEnabledValue = 0;
-        final ContentValues cv = new ContentValues();
-
-        // WHEN try to check and set the apn enabled
-        final boolean isDiff = mApnEditorUT.setIntValueAndCheckIfDiff(
-                cv,
-                apnEnabledKey,
-                apnEnabledValue,
-                false /* assumeDiff */,
-                ApnEditor.CARRIER_ENABLED_INDEX);
-
-        // THEN the apn enabled field is different than the one in database, and it has been stored
-        // in the given ContentValues
-        assertThat(isDiff).isTrue();
-        assertThat(cv.getAsInteger(apnEnabledKey)).isEqualTo(apnEnabledValue);
-    }
-
-    @Test
-    public void testSetIntValue_valueNotChanged_shouldNotSetValue() {
-        // GIVEN a value indicated whether the apn is enabled, and it's same as the one in the
-        // database
-        final String apnEnabledKey = "apn_enabled";
-        final int apnEnabledValue = (int) APN_DATA[ApnEditor.CARRIER_ENABLED_INDEX];
-        final ContentValues cv = new ContentValues();
-
-        // WHEN try to check and set the apn enabled
-        final boolean isDiff = mApnEditorUT.setIntValueAndCheckIfDiff(
-                cv,
-                apnEnabledKey,
-                apnEnabledValue,
-                false /* assumeDiff */,
-                ApnEditor.CARRIER_ENABLED_INDEX);
-
-        // THEN the apn enabled field is same as the one in the database, and the filed is not
-        // stored in the given ContentValues
-        assertThat(isDiff).isFalse();
-        assertThat(cv.get(apnEnabledKey)).isNull();
-    }
-
-    @Test
-    public void testValidateApnData_validData_shouldReturnNull() {
-        // GIVEN a valid apn data
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN validate the apn data
-        final String errMsg = mApnEditorUT.validateApnData();
-
-        // THEN the error message should be null
-        assertThat(errMsg).isNull();
-    }
-
-    @Test
-    public void testValidateApn_apnNameNotSet_shouldReturnErrorMessage() {
-        // GIVEN a apn data without the apn name
-        mApnEditorUT.mApnData.mData[ApnEditor.NAME_INDEX] = "";
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // THEN validate the apn data
-        final String errMsg = mApnEditorUT.validateApnData();
-
-        // THEN the error message indicated the apn name not set is returned
-        assertThat(errMsg).isEqualTo(mResources.getString(R.string.error_name_empty));
-    }
-
-    @Test
-    public void testValidateApnData_apnNotSet_shouldReturnErrorMessage() {
-        // GIVEN a apn data without the apn
-        mApnEditorUT.mApnData.mData[ApnEditor.APN_INDEX] = "";
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // THEN validate the apn data
-        final String errMsg = mApnEditorUT.validateApnData();
-
-        // THEN the error message indicated the apn not set is returned
-        assertThat(errMsg).isEqualTo(mResources.getString(R.string.error_apn_empty));
-    }
-
-    @Test
-    public void testValidateApnData_mccInvalid_shouldReturnErrorMessage() {
-        // The length of the mcc should be 3
-        mApnEditorUT.mApnData.mData[ApnEditor.MCC_INDEX] = "1324";
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN validate the apn data
-        final String errMsg = mApnEditorUT.validateApnData();
-
-        // THEN the error message indicated the mcc invalid is returned
-        assertThat(errMsg).isEqualTo(mResources.getString(R.string.error_mcc_not3));
-    }
-
-    @Test
-    public void testValidateApnData_mncInvalid_shouldReturnErrorMessage() {
-        // GIVEN an apn data with invalid mnc
-        // The length of the mnc should be 2 or 3
-        mApnEditorUT.mApnData.mData[ApnEditor.MNC_INDEX] = "1324";
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN validate the apn data
-        final String errMsg = mApnEditorUT.validateApnData();
-
-        // THEN the error message indicated the mnc invalid is returned
-        assertThat(errMsg).isEqualTo(mResources.getString(R.string.error_mnc_not23));
-    }
-
-    @Test
-    public void testSaveApnData_pressBackButtonWithValidApnData_shouldSaveApnData() {
-        // GIVEN a valid apn data
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN press the back button
-        final KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
-        mApnEditorUT.onKey(new View(mContext), KeyEvent.KEYCODE_BACK, event);
-
-        // THEN the apn data is saved and the apn editor is closed
-        verify(mApnEditorUT).validateAndSaveApnData();
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void testSaveApnData_pressSaveButtonWithValidApnData_shouldSaveApnData() {
-        // GIVEN a valid apn data
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN press the save button
-        MenuItem item = Mockito.mock(MenuItem.class);
-        // Menu.FIRST + 1 indicated the SAVE option in ApnEditor
-        doReturn(Menu.FIRST + 1).when(item).getItemId();
-        mApnEditorUT.onOptionsItemSelected(item);
-
-        // THEN the apn data is saved and the apn editor is closed
-        verify(mApnEditorUT).validateAndSaveApnData();
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void testSaveApnData_apnDataInvalid_shouldNotSaveApnData() {
-        // GIVEN an invalid apn data
-        // The valid apn data should contains a non-empty apn name
-        mApnEditorUT.mApnData.mData[ApnEditor.NAME_INDEX] = "";
-        mApnEditorUT.fillUI(true /* firstTime */);
-
-        // WHEN press the save button
-        final MenuItem item = Mockito.mock(MenuItem.class);
-        // Menu.FIRST + 1 indicated the SAVE option in ApnEditor
-        doReturn(Menu.FIRST + 1).when(item).getItemId();
-        mApnEditorUT.onOptionsItemSelected(item);
-
-        // THEN the error dialog is shown
-        verify(mApnEditorUT).validateAndSaveApnData();
-        verify(mApnEditorUT).showError();
-    }
-
-    @Test
-    public void testDeleteApnData_shouldDeleteData() {
-        // GIVEN a valid apn data correspond a row in database
-        final Uri apnUri = Uri.parse("content://telephony/carriers/1");
-        mApnEditorUT.mApnData = new FakeApnData(APN_DATA, apnUri);
-        mApnEditorUT.fillUI(true /* firstTime */);
-        ContentResolver mockContentResolver = Mockito.mock(ContentResolver.class);
-        doReturn(mockContentResolver).when(mActivity).getContentResolver();
-
-        // WHEN press the save button
-        final MenuItem item = Mockito.mock(MenuItem.class);
-        // Menu.FIRST indicated the DELETE option in ApnEditor
-        doReturn(Menu.FIRST).when(item).getItemId();
-        mApnEditorUT.onOptionsItemSelected(item);
-
-        // THEN the apn data is deleted and the apn editor is closed
-        verify(mockContentResolver).delete(mUriCaptor.capture(), any(), any());
-        assertThat(apnUri).isEqualTo(mUriCaptor.getValue());
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void testDeleteApnData_shouldNotPresentMenuWhenNotSupportAdding() {
-        mBundle.putBoolean(CarrierConfigManager.KEY_ALLOW_ADDING_APNS_BOOL, false);
-
-        MenuItem item = Mockito.mock(MenuItem.class);
-        Menu menu = Mockito.mock(Menu.class);
-        doReturn(item).when(menu).add(anyInt(), anyInt(), anyInt(), anyInt());
-
-        mApnEditorUT.getCarrierCustomizedConfig(mContext);
-        mApnEditorUT.onCreateOptionsMenu(menu, null);
-
-        verify(menu, times(0)).add(anyInt(), eq(ApnEditor.MENU_DELETE), anyInt(), anyInt());
-    }
-
-    @Test(expected = ClassCastException.class)
-    public void testApnData_invalidIntegerType_throwsInvalidTypeException() {
-        // GIVEN a ApnData constructed from cursor
-        initCursor();
-        final ApnData data = new ApnData(APN_URI, mCursor);
-
-        // WHEN get a string from an integer column
-        // THEN the InvalidTypeException is threw
-        data.getString(CURSOR_INTEGER_INDEX);
-    }
-
-    @Test(expected = ClassCastException.class)
-    public void testApnData_invalidStringType_throwsInvalidTypeException() {
-        // GIVEN a ApnData constructed from cursor
-        initCursor();
-        final ApnData data = new ApnData(APN_URI, mCursor);
-
-        // WHEN get a integer from a string column
-        // THEN the InvalidTypeException is threw
-        data.getInteger(CURSOR_STRING_INDEX);
-    }
-
-    @Test
-    public void testApnData_validIntegerType_returnCorrectValue() {
-        // GIVEN a ApnData constructed from cursor
-        initCursor();
-        final ApnData data = new ApnData(APN_URI, mCursor);
-
-        // WHEN get integer from an integer column
-        final int val = data.getInteger(CURSOR_INTEGER_INDEX);
-
-        // THEN the integer is returned correctly
-        assertThat(val).isEqualTo(mCursor.getInt(CURSOR_INTEGER_INDEX));
-    }
-
-    @Test
-    public void testApnData_validStringType_returnCorrectValue() {
-        // GIVEN a ApnData constructed from cursor
-        initCursor();
-        final ApnData data = new ApnData(APN_URI, mCursor);
-
-        // WHEN get string from a string column
-        final String str = data.getString(CURSOR_STRING_INDEX);
-
-        // THEN the integer is returned correctly
-        assertThat(str).isEqualTo(mCursor.getString(CURSOR_STRING_INDEX));
-    }
-
-    @Test
-    public void testApnData_nullValueColumn_returnNull() {
-        // GIVEN a empty ApnData
-        final ApnData data = new ApnData(3);
-
-        // WHEN get string value from a null column
-        final String str = data.getString(0);
-
-        // THEN the null value is returned
-        assertThat(str).isNull();
-    }
-
-    @Test
-    public void formatInteger_shouldParseString() {
-        assertThat(ApnEditor.formatInteger("42")).isEqualTo("42");
-        assertThat(ApnEditor.formatInteger("01")).isEqualTo("01");
-        assertThat(ApnEditor.formatInteger("001")).isEqualTo("001");
-    }
-
-    @Test
-    public void formatInteger_shouldIgnoreNonIntegers() {
-        assertThat(ApnEditor.formatInteger("not an int")).isEqualTo("not an int");
-    }
-
-    @Test
-    public void onCreate_notAdminUser_shouldFinish() {
-        doReturn(false).when(mUserManager).isAdminUser();
-
-        mApnEditorUT.onCreate(null);
-
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void onCreate_hasUserRestriction_shouldFinish() {
-        doReturn(true).when(mUserManager)
-                .hasUserRestriction(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS);
-
-        mApnEditorUT.onCreate(null);
-
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void onCreate_noAction_shouldFinishAndNoCrash() {
-        ProxySubscriptionManager proxySubscriptionMgr = mock(ProxySubscriptionManager.class);
-        mApnEditorUT.mProxySubscriptionMgr = proxySubscriptionMgr;
-        doReturn(new Intent()).when(mActivity).getIntent();
-        doNothing().when(mApnEditorUT).addPreferencesFromResource(anyInt());
-
-        mApnEditorUT.onCreate(null);
-
-        verify(mApnEditorUT).finish();
-    }
-
-    @Test
-    public void testOnViewStateRestored_customizedValueWithoutDefault_shouldShowCustomized() {
-        mApnEditorUT.mDefaultApnProtocol = "IP";
-        mApnEditorUT.mApnData.mData[ApnEditor.PROTOCOL_INDEX] = null;
-        mApnEditorUT.mProtocol.setEntryValues(new CharSequence[]{"IP", "IPV6", "IPV4V6"});
-
-        mApnEditorUT.onViewStateRestored(null);
-
-        assertThat(mApnEditorUT.mProtocol.getSummary()).isEqualTo("IPv4");
-    }
-
-    @Test
-    public void testOnViewStateRestored_customizedValueWithDefault_shouldShowDefault() {
-        mApnEditorUT.mDefaultApnProtocol = "IP";
-        mApnEditorUT.mApnData.mData[ApnEditor.PROTOCOL_INDEX] = "IPV6";
-        mApnEditorUT.mProtocol.setEntryValues(new CharSequence[]{"IP", "IPV6", "IPV4V6"});
-
-        mApnEditorUT.onViewStateRestored(null);
-
-        assertThat(mApnEditorUT.mProtocol.getSummary()).isEqualTo("IPv6");
-    }
-
-    @Test
-    public void getUserEnteredApnType_emptyApnType_shouldReturnDefault() {
-        // case 1
-        // GIVEN read only APN types with DUN
-        mApnEditorUT.mReadOnlyApnTypes = new String [] {"dun"};
-        // GIVEN read specificApnTypeForEmptyInput with DEFAULT,DUN
-        mApnEditorUT.mDefaultApnTypes = new String [] {"default", "dun"};
-
-        // Input empty in TYPE
-        mApnEditorUT.mApnData.mData[ApnEditor.TYPE_INDEX] = "";
-        mApnEditorUT.onViewStateRestored(null);
-
-        // THEN APN type should be default
-        assertThat(mApnEditorUT.getUserEnteredApnType()).isEqualTo("default");
-
-        // case 2
-        // GIVEN read only APN types with DUN
-        mApnEditorUT.mReadOnlyApnTypes = new String [] {"dun"};
-        // GIVEN read specificApnTypeForEmptyInput with DEFAULT
-        mApnEditorUT.mDefaultApnTypes = new String [] {"default"};
-
-        // Input empty in TYPE
-        mApnEditorUT.mApnData.mData[ApnEditor.TYPE_INDEX] = "";
-        mApnEditorUT.onViewStateRestored(null);
-
-        // THEN APN type should be default
-        assertThat(mApnEditorUT.getUserEnteredApnType()).isEqualTo("default");
-    }
-
-    private void initCursor() {
-        doReturn(2).when(mCursor).getColumnCount();
-        doReturn(2).when(mCursor).getInt(CURSOR_INTEGER_INDEX);
-        doReturn("str").when(mCursor).getString(CURSOR_STRING_INDEX);
-        doReturn(Cursor.FIELD_TYPE_INTEGER).when(mCursor).getType(CURSOR_INTEGER_INDEX);
-        doReturn(Cursor.FIELD_TYPE_STRING).when(mCursor).getType(CURSOR_STRING_INDEX);
-    }
-
-    private void setMockPreference(Context context) {
-        mApnEditorUT.mName = new EditTextPreference(context);
-        mApnEditorUT.mApn = new EditTextPreference(context);
-        mApnEditorUT.mProxy = new EditTextPreference(context);
-        mApnEditorUT.mPort = new EditTextPreference(context);
-        mApnEditorUT.mUser = new EditTextPreference(context);
-        mApnEditorUT.mServer = new EditTextPreference(context);
-        mApnEditorUT.mPassword = new EditTextPreference(context);
-        mApnEditorUT.mMmsc = new EditTextPreference(context);
-        mApnEditorUT.mMcc = new EditTextPreference(context);
-        mApnEditorUT.mMnc = new EditTextPreference(context);
-        mApnEditorUT.mMmsProxy = new EditTextPreference(context);
-        mApnEditorUT.mMmsPort = new EditTextPreference(context);
-        mApnEditorUT.mAuthType = new ListPreference(context);
-        mApnEditorUT.mApnType = new EditTextPreference(context);
-        mApnEditorUT.mProtocol = new ListPreference(context);
-        mApnEditorUT.mRoamingProtocol = new ListPreference(context);
-        mApnEditorUT.mCarrierEnabled = new SwitchPreference(context);
-        mApnEditorUT.mBearerMulti = new MultiSelectListPreference(context);
-        mApnEditorUT.mMvnoType = new ListPreference(context);
-        mApnEditorUT.mMvnoMatchData = new EditTextPreference(context);
-    }
-
-    private final class FakeApnData extends ApnData {
-        FakeApnData(Object[] data) {
-            super(data.length);
-            System.arraycopy(data, 0, mData, 0, data.length);
-        }
-
-        FakeApnData(Object[] data, Uri uri) {
-            this(data);
-            mUri = uri;
-        }
-    }
-}
diff --git a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
index c6511ef..3626608 100644
--- a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceControllerTest.java
@@ -39,6 +39,7 @@
 import org.robolectric.RuntimeEnvironment;
 import org.robolectric.annotation.Config;
 
+// LINT.IfChange
 @RunWith(RobolectricTestRunner.class)
 @Config(shadows = {
         com.android.settings.testutils.shadow.ShadowFragment.class,
@@ -123,3 +124,4 @@
         assertThat(System.getInt(mContentResolver, System.DTMF_TONE_WHEN_DIALING, 1)).isEqualTo(0);
     }
 }
+// LINT.ThenChange(DialPadTonePreferenceTest.kt)
diff --git a/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt
new file mode 100644
index 0000000..63e8e3d
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/notification/DialPadTonePreferenceTest.kt
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2024 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.notification
+
+import android.content.Context
+import android.content.ContextWrapper
+import android.provider.Settings.System.DTMF_TONE_WHEN_DIALING
+import android.telephony.TelephonyManager
+import androidx.preference.SwitchPreferenceCompat
+import androidx.test.core.app.ApplicationProvider
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.android.settingslib.datastore.SettingsSystemStore
+import com.android.settingslib.preference.DefaultPreferenceBindingFactory
+import com.google.common.truth.Truth.assertThat
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.kotlin.doReturn
+import org.mockito.kotlin.mock
+
+// LINT.IfChange
+@RunWith(AndroidJUnit4::class)
+class DialPadTonePreferenceTest {
+    private var telephonyManager: TelephonyManager? = null
+
+    private val context =
+        object : ContextWrapper(ApplicationProvider.getApplicationContext()) {
+            override fun getSystemService(name: String): Any? =
+                when (name) {
+                    Context.TELEPHONY_SERVICE -> telephonyManager
+                    else -> super.getSystemService(name)
+                }
+        }
+
+    private val dialPadTonePreference = DialPadTonePreference()
+
+    @Test
+    fun isAvailable_voiceCapable_shouldReturnTrue() {
+        telephonyManager = mock { on { isVoiceCapable } doReturn true }
+
+        assertThat(dialPadTonePreference.isAvailable(context)).isTrue()
+    }
+
+    @Test
+    fun isAvailable_noVoicCapable_shouldReturnFalse() {
+        telephonyManager = mock { on { isVoiceCapable } doReturn false }
+
+        assertThat(dialPadTonePreference.isAvailable(context)).isFalse()
+    }
+
+    @Test
+    fun performClick_shouldPreferenceChangeToChecked() {
+        enableDialPadTone(false)
+
+        val preference = getSwitchPreference().apply { performClick() }
+
+        assertThat(preference.isChecked).isTrue()
+    }
+
+    @Test
+    fun performClick_shouldPreferenceChangeToUnchecked() {
+        enableDialPadTone(true)
+
+        val preference = getSwitchPreference().apply { performClick() }
+
+        assertThat(preference.isChecked).isFalse()
+    }
+
+    @Test
+    fun dialToneEnabled_shouldCheckedPreference() {
+        enableDialPadTone(true)
+
+        assertThat(getSwitchPreference().isChecked).isTrue()
+    }
+
+    @Test
+    fun dialToneDisabled_shouldUncheckedPreference() {
+        enableDialPadTone(false)
+
+        assertThat(getSwitchPreference().isChecked).isFalse()
+    }
+
+    private fun getSwitchPreference(): SwitchPreferenceCompat =
+        DefaultPreferenceBindingFactory.getPreferenceBinding(dialPadTonePreference).run {
+            val preference = createWidget(context)
+            bind(preference, dialPadTonePreference)
+            preference as SwitchPreferenceCompat
+        }
+
+    private fun enableDialPadTone(enabled: Boolean) =
+        SettingsSystemStore.get(context).setBoolean(DTMF_TONE_WHEN_DIALING, enabled)
+}
+// LINT.ThenChange(DialPadTonePreferenceControllerTest.java)
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
index fcd1e42..7de69a7 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccessibilityManager.java
@@ -24,6 +24,8 @@
 import android.util.ArrayMap;
 import android.view.accessibility.AccessibilityManager;
 
+import com.android.internal.accessibility.common.ShortcutConstants;
+
 import org.robolectric.annotation.Implementation;
 import org.robolectric.annotation.Implements;
 
@@ -71,4 +73,14 @@
             @NonNull List<AccessibilityShortcutInfo> installedAccessibilityShortcutList) {
         mInstalledAccessibilityShortcutList = installedAccessibilityShortcutList;
     }
+
+    /**
+     * Implements the hidden method
+     * {@link AccessibilityManager#getAccessibilityShortcutTargets}.
+     */
+    @Implementation
+    public List<String> getAccessibilityShortcutTargets(
+            @ShortcutConstants.UserShortcutType int shortcutType) {
+        return List.of();
+    }
 }
diff --git a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
index 4440bc9..f34042d 100644
--- a/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/calling/WifiCallingSettingsForSubTest.java
@@ -90,6 +90,7 @@
     private static final String PREFERENCE_NO_OPTIONS_DESC = "no_options_description";
     private static final String TEST_EMERGENCY_ADDRESS_CARRIER_APP =
             "com.android.settings/.wifi.calling.TestEmergencyAddressCarrierApp";
+    private static final String PREFERENCE_EMERGENCY_ADDRESS = "emergency_address_key";
 
     private TestFragment mFragment;
     private Context mContext;
@@ -138,6 +139,7 @@
         doReturn(mContext.getResources()).when(mFragment).getResources();
         doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen();
         doReturn(mTelephonyManager).when(mTelephonyManager).createForSubscriptionId(anyInt());
+        doReturn(mock(LifecycleOwner.class)).when(mFragment).getViewLifecycleOwner();
         final Bundle bundle = new Bundle();
         when(mFragment.getArguments()).thenReturn(bundle);
         doNothing().when(mFragment).addPreferencesFromResource(anyInt());
@@ -380,19 +382,22 @@
 
         @Override
         public <T extends Preference> T findPreference(CharSequence key) {
-            if (SWITCH_BAR.equals(key)) {
+            if (SWITCH_BAR.contentEquals(key)) {
                 return (T) mSwitchPref;
             }
-            if (BUTTON_WFC_MODE.equals(key)) {
+            if (BUTTON_WFC_MODE.contentEquals(key)) {
                 return (T) mButtonWfcMode;
             }
-            if (BUTTON_WFC_ROAMING_MODE.equals(key)) {
+            if (BUTTON_WFC_ROAMING_MODE.contentEquals(key)) {
                 return (T) mButtonWfcRoamingMode;
             }
-            if (PREFERENCE_NO_OPTIONS_DESC.equals(key)) {
+            if (PREFERENCE_NO_OPTIONS_DESC.contentEquals(key)) {
                 return (T) mDescriptionView;
             }
-            return (T) mock(ListWithEntrySummaryPreference.class);
+            if (PREFERENCE_EMERGENCY_ADDRESS.contentEquals(key)) {
+                return (T) mUpdateAddress;
+            }
+            return null;
         }
 
         @Override
diff --git a/tests/robotests/testutils/com/android/settings/testutils/SystemProperty.kt b/tests/robotests/testutils/com/android/settings/testutils/SystemProperty.kt
new file mode 100644
index 0000000..9c2574e
--- /dev/null
+++ b/tests/robotests/testutils/com/android/settings/testutils/SystemProperty.kt
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.testutils
+
+/**
+ * Helper class to override system properties.
+ *
+ * [System.setProperty] changes the static state in the JVM, which is shared by all tests. Hence,
+ * there is chance that test cases are dependent/interfered due to system property unexpectedly.
+ * This helper class backs up the old properties when invoking [override] and restore the old
+ * properties in [close] to avoid flaky testing.
+ */
+class SystemProperty(overrides: Map<String, String?> = mapOf()) : AutoCloseable {
+    private val oldProperties = mutableMapOf<String, String?>()
+
+    constructor(key: String, value: String?) : this(mapOf(key to value))
+
+    init {
+        override(overrides)
+    }
+
+    fun override(key: String, value: String?) = override(mapOf(key to value))
+
+    fun override(overrides: Map<String, String?>) {
+        // back up system properties for the overrides
+        for (key in overrides.keys) {
+            // only back up the oldest property
+            if (!oldProperties.containsKey(key)) {
+                oldProperties[key] = System.getProperty(key)
+            }
+        }
+        overrides.overrideProperties()
+    }
+
+    override fun close() {
+        // restore the backed up properties
+        oldProperties.overrideProperties()
+        oldProperties.clear()
+    }
+
+    private fun Map<String, String?>.overrideProperties() {
+        for ((key, value) in this) {
+            if (value != null) {
+                System.setProperty(key, value)
+            } else {
+                System.clearProperty(key)
+            }
+        }
+    }
+}
diff --git a/tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt b/tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt
index e7fc3ed..a5d0461 100644
--- a/tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt
+++ b/tests/screenshot/src/com/android/settings/tests/screenshot/biometrics/fingerprint/Injector.kt
@@ -44,6 +44,7 @@
 import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
 import com.android.systemui.biometrics.shared.model.toFingerprintSensor
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.asStateFlow
@@ -73,7 +74,10 @@
 
   var accessibilityInteractor =
     object : AccessibilityInteractor {
-      override val isAccessibilityEnabled: Flow<Boolean> = flowOf(true)
+      override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = flowOf(true)
+      override val isEnabled: Boolean
+        get() = true
+      override fun announce(clazz: Class<*>, announcement: CharSequence?) {}
     }
 
   var foldStateInteractor =
diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
index 4d53260..75c1913 100644
--- a/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
+++ b/tests/spa_unit/src/com/android/settings/network/telephony/MmsMessagePreferenceControllerTest.kt
@@ -17,6 +17,7 @@
 package com.android.settings.network.telephony
 
 import android.content.Context
+import android.telephony.CarrierConfigManager
 import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
 import android.telephony.TelephonyManager
 import android.telephony.data.ApnSetting
@@ -26,6 +27,7 @@
 import com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE
 import com.android.settings.network.telephony.MmsMessagePreferenceController.Companion.MmsMessageSearchItem
 import com.google.common.truth.Truth.assertThat
+import org.junit.Before
 import org.junit.Test
 import org.junit.runner.RunWith
 import org.mockito.kotlin.doReturn
@@ -63,6 +65,21 @@
         getDefaultDataSubId = { defaultDataSubId },
     )
 
+    @Before
+    fun setUp() {
+        CarrierConfigRepository.resetForTest()
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_1_ID,
+            key = CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL,
+            value = true,
+        )
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_2_ID,
+            key = CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL,
+            value = true,
+        )
+    }
+
     @Test
     fun getAvailabilityStatus_invalidSubscription_unavailable() {
         controller.init(INVALID_SUBSCRIPTION_ID)
@@ -165,6 +182,27 @@
     }
 
     @Test
+    fun getAvailabilityStatus_carrierConfigEnabledMmsFalse_unavailable() {
+        defaultDataSubId = SUB_2_ID
+        mockTelephonyManager2.stub {
+            on { isDataEnabled } doReturn false
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_2_ID,
+            key = CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL,
+            value = false,
+        )
+        controller.init(SUB_2_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
     fun searchIsAvailable_notDefaultDataAndDataOnAndAutoDataSwitchOn_unavailable() {
         mockTelephonyManager1.stub {
             on { isDataEnabled } doReturn true
@@ -201,6 +239,27 @@
     }
 
     @Test
+    fun searchIsAvailable_carrierConfigEnabledMmsFalse_unavailable() {
+        defaultDataSubId = SUB_2_ID
+        mockTelephonyManager2.stub {
+            on { isDataEnabled } doReturn false
+            on {
+                isMobileDataPolicyEnabled(TelephonyManager.MOBILE_DATA_POLICY_AUTO_DATA_SWITCH)
+            } doReturn true
+        }
+        CarrierConfigRepository.setBooleanForTest(
+            subId = SUB_2_ID,
+            key = CarrierConfigManager.KEY_MMS_MMS_ENABLED_BOOL,
+            value = false,
+        )
+        controller.init(SUB_2_ID)
+
+        val availabilityStatus = controller.getAvailabilityStatus()
+
+        assertThat(availabilityStatus).isEqualTo(CONDITIONALLY_UNAVAILABLE)
+    }
+
+    @Test
     fun isChecked_whenMmsNotAlwaysAllowed_returnFalse() {
         mockTelephonyManager2.stub {
             on {
diff --git a/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt b/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
index 04cece8..a8c5e68 100644
--- a/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
+++ b/tests/unit/src/com/android/settings/fingerprint2/enrollment/viewmodel/FingerprintEnrollFindSensorViewModelV2Test.kt
@@ -39,6 +39,7 @@
 import com.android.settings.testutils2.FakeFingerprintManagerInteractor
 import com.android.systemui.biometrics.shared.model.toFingerprintSensor
 import com.google.common.truth.Truth.assertThat
+import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.flow.Flow
 import kotlinx.coroutines.flow.MutableStateFlow
@@ -106,7 +107,10 @@
       )
     accessibilityInteractor =
       object : AccessibilityInteractor {
-        override val isAccessibilityEnabled: Flow<Boolean> = flowOf(false)
+        override fun isEnabledFlow(scope: CoroutineScope): Flow<Boolean> = flowOf(true)
+        override val isEnabled: Boolean
+          get() = true
+        override fun announce(clazz: Class<*>, announcement: CharSequence?) {}
       }
     foldStateInteractor =
       object : FoldStateInteractor {
diff --git a/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt b/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt
index 95f69da..385de30 100644
--- a/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt
+++ b/tests/unit/src/com/android/settings/fuelgauge/batteryusage/AppOptModeSharedPreferencesUtilsTest.kt
@@ -228,7 +228,7 @@
     @Test
     fun updateBatteryOptimizationMode_updateToOptimizedMode_verifyAction() {
         whenever(testBatteryOptimizeUtils?.isOptimizeModeMutable).thenReturn(true)
-        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true))
+        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode())
             .thenReturn(MODE_UNRESTRICTED)
 
         val currentOptMode =
@@ -246,9 +246,9 @@
     }
 
     @Test
-    fun updateBatteryOptimizationMode_optimizationModeNotChanged_verifyAction() {
+    fun updateBatteryOptimizationMode_optimizationModeImmutable_verifyAction() {
         whenever(testBatteryOptimizeUtils?.isOptimizeModeMutable).thenReturn(false)
-        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true))
+        whenever(testBatteryOptimizeUtils?.appOptimizationMode)
             .thenReturn(MODE_UNRESTRICTED)
 
         val currentOptMode =
@@ -268,7 +268,7 @@
     @Test
     fun updateBatteryOptimizationMode_updateToSameOptimizationMode_verifyAction() {
         whenever(testBatteryOptimizeUtils?.isOptimizeModeMutable).thenReturn(true)
-        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true)).thenReturn(MODE_RESTRICTED)
+        whenever(testBatteryOptimizeUtils?.appOptimizationMode).thenReturn(MODE_RESTRICTED)
 
         val currentOptMode =
             AppOptModeSharedPreferencesUtils.updateBatteryOptimizationMode(
@@ -286,7 +286,7 @@
 
     private fun insertAppOptModeEventForTest(expirationTime: Long, mode: Int = MODE_OPTIMIZED) {
         whenever(testBatteryOptimizeUtils?.isOptimizeModeMutable).thenReturn(true)
-        whenever(testBatteryOptimizeUtils?.getAppOptimizationMode(true)).thenReturn(mode)
+        whenever(testBatteryOptimizeUtils?.appOptimizationMode).thenReturn(mode)
         AppOptModeSharedPreferencesUtils.updateAppOptModeExpirationInternal(
             context,
             mutableListOf(UID),
diff --git a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
index adc8dc0..ab57f4b 100644
--- a/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/EnabledNetworkModePreferenceControllerTest.java
@@ -18,7 +18,6 @@
 
 import static androidx.lifecycle.Lifecycle.Event.ON_START;
 
-import static com.android.settings.network.telephony.MobileNetworkUtils.getRafFromNetworkType;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.CDMA;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.EVDO;
 import static com.android.settings.network.telephony.TelephonyConstants.RadioAccessFamily.GSM;
@@ -37,6 +36,7 @@
 import android.content.Context;
 import android.os.PersistableBundle;
 import android.telephony.CarrierConfigManager;
+import android.telephony.RadioAccessFamily;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -304,7 +304,7 @@
     public void onPreferenceChange_updateSuccess() {
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
         doReturn(true).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
-                getRafFromNetworkType(
+                RadioAccessFamily.getRafFromNetworkType(
                         TelephonyManagerConstants.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
 
         mController.updateState(mPreference);
@@ -321,7 +321,8 @@
     public void onPreferenceChange_updateFail() {
         mockEnabledNetworkMode(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA);
         doReturn(false).when(mTelephonyManager).setPreferredNetworkTypeBitmask(
-                getRafFromNetworkType(TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
+                RadioAccessFamily.getRafFromNetworkType(
+                        TelephonyManagerConstants.NETWORK_MODE_LTE_GSM_WCDMA));
 
         mController.updateState(mPreference);
         mController.onViewCreated(new TestLifecycleOwner());
@@ -438,7 +439,7 @@
     }
 
     private void mockAccessFamily(int networkMode) {
-        doReturn(MobileNetworkUtils.getRafFromNetworkType(networkMode))
+        doReturn((long) RadioAccessFamily.getRafFromNetworkType(networkMode))
                 .when(mTelephonyManager)
                 .getSupportedRadioAccessFamily();
     }
diff --git a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
index f22ad3b..663945d 100644
--- a/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/PreferredNetworkModePreferenceControllerTest.java
@@ -30,6 +30,7 @@
 
 import android.content.Context;
 import android.os.PersistableBundle;
+import android.telephony.RadioAccessFamily;
 import android.telephony.ServiceState;
 import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
@@ -111,7 +112,7 @@
 
         verify(mTelephonyManager, times(1)).setAllowedNetworkTypesForReason(
                 TelephonyManager.ALLOWED_NETWORK_TYPES_REASON_USER,
-                MobileNetworkUtils.getRafFromNetworkType(
+                RadioAccessFamily.getRafFromNetworkType(
                         TelephonyManagerConstants.NETWORK_MODE_LTE_TDSCDMA));
     }
 }
diff --git a/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java b/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java
index 0e51733..a3f82b5 100644
--- a/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java
+++ b/tests/unit/src/com/android/settings/security/SecurityDashboardActivityTest.java
@@ -31,6 +31,7 @@
 import android.content.Intent;
 import android.content.pm.PackageManager;
 
+import androidx.test.annotation.UiThreadTest;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.platform.app.InstrumentationRegistry;
 
@@ -90,6 +91,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void noAvailableAlternativeFragmentAvailable_defaultFragmentSet() {
         when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
                 .thenReturn(false);
@@ -99,6 +101,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void alternativeFragmentAvailable_alternativeFragmentSet() {
         when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
                 .thenReturn(true);
@@ -110,6 +113,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void noAvailableAlternativeFragmentAvailable_alternativeFragmentNotValid() {
         when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
                 .thenReturn(false);
@@ -118,6 +122,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void alternativeFragmentAvailable_alternativeFragmentIsValid() {
         when(mSecuritySettingsFeatureProvider.hasAlternativeSecuritySettingsFragment())
                 .thenReturn(true);
@@ -128,6 +133,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void onCreate_whenSafetyCenterEnabled_redirectsToSafetyCenter() {
         when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(true);
         final ArgumentCaptor<Intent> intentCaptor = ArgumentCaptor.forClass(Intent.class);
@@ -139,6 +145,7 @@
     }
 
     @Test
+    @UiThreadTest
     public void onCreate_whenSafetyCenterDisabled_doesntRedirectToSafetyCenter() {
         when(mSafetyCenterManagerWrapper.isEnabled(any(Context.class))).thenReturn(false);